Skip to content

Commit 9fcccd4

Browse files
aledbfclaude
andcommitted
docs: refresh divergences for threaded context and open
- Remove the "context cancellation of build/compose subprocesses is not wired" accepted-limitation: it was resolved when the command context was threaded through the runner (docker.Client/ComposeClient now use exec.CommandContext), and note in the self-containment stance that a deadline/cancel/Ctrl-C now aborts an in-flight build/compose subprocess. - List the Go-only `open` command in DIVERGENCES and add an `up . && open .` example to the README's Go-only section. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent c4245ff commit 9fcccd4

2 files changed

Lines changed: 9 additions & 8 deletions

File tree

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@ devcontainer up --workspace-folder . --cache-image ghcr.io/acme/app-devcontainer
9898

9999
# Pass BuildKit build secrets (RUN --mount=type=secret,id=…) without baking them into a layer
100100
devcontainer build --workspace-folder . --secrets-file secrets.json
101+
102+
# Provision here, then open VS Code attached to the container (reconnects, doesn't rebuild)
103+
devcontainer up . && devcontainer open .
101104
```
102105

103106
Everything else — `up`, `build`, `exec`, `read-configuration`, `set-up`,

docs/DIVERGENCES.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ touches a compared surface, reflected in the parity matrix.
1515
`check` and `setup` (host preflight/remediation), `up --cache-image` (boot from a
1616
prebuilt image, skip build + feature install), `read-configuration --cache-key`
1717
(deterministic content hash; additive — default output is byte-identical to TS),
18-
`build --secrets-file` (BuildKit build secrets; TS `build` has no such flag), and the
19-
automatic credential bridge that hands the CLI's resolved auth to `docker build`.
18+
`build --secrets-file` (BuildKit build secrets; TS `build` has no such flag), `open`
19+
(launch VS Code attached to the workspace's dev container via a vscode-remote:// URI),
20+
and the automatic credential bridge that hands the CLI's resolved auth to `docker build`.
2021
- **`--override-config` deep-merges** the override onto the base config, whereas TS
2122
replaces the config wholesale (`readDocument(overrideConfigFile ?? configFile)`). With
2223
no readable base, the override stands alone — identical to TS. This lets an orchestrator
@@ -57,18 +58,15 @@ touches a compared surface, reflected in the parity matrix.
5758
library would regress buildx or pull the heavy buildkit client), `docker compose` (its
5859
output is not in the compared stream, so a library adds large deps for zero parity
5960
gain), interactive `docker exec -it`, and the credential-helper protocol (external
60-
executables by design).
61+
executables by design). These shell-outs receive the command's `context.Context` (via
62+
`exec.CommandContext`), so a deadline/cancel — or `Ctrl-C` — aborts an in-flight
63+
`build`/`compose` subprocess rather than orphaning it.
6164

6265
## Accepted limitations
6366

6467
Known gaps that are deliberately not closed; each is a conscious trade-off, not an
6568
oversight.
6669

67-
- **Programmatic context cancellation of build/compose subprocesses is not wired.** The
68-
`docker build`/`docker compose` shell-outs run under `context.Background()`, so a
69-
ctx deadline/cancel does not abort an in-flight subprocess. Interactive `Ctrl-C` still
70-
aborts it (SIGINT reaches the child via the shared process group). Wiring the command
71-
`ctx` through the runner is a possible future refinement.
7270
- **Byte-for-byte tarball parity is unattainable** because of `mtime` differences; tarball
7371
contents are compared by parsed structure, not raw bytes.
7472
- **Cloud registry auth matrix is out of default CI scope.** The hermetic auth paths

0 commit comments

Comments
 (0)