Repository navigation
Gap ledger isolation: background sessions isolate before editing, lanes park work as WIP commits, the strict sandbox names its allowlist - #1160
Open
seathatflowsinourveins wants to merge 1 commit into
Conversation
…lanes park work as WIP commits, the strict sandbox names its allowlist
From the practice gap ledger of 2026-10-15. Each row was ruled ADOPT, and the
co-op's gpt-6-astra lane re-checked each one and agreed:
- worktrees route (B4-0003): background sessions (claude --bg, agent view)
are now in scope. worktree.bgIsolation defaults to "worktree" and blocks
Edit and Write in the main checkout until the session calls EnterWorktree
(agent-view.md:551, settings-reference.md:5275-5281, fetched
2026-10-15T11:41:33Z). The notes record:
- the documented exceptions (agent-view.md:553-559);
- that the key blocks only Edit and Write (worktrees.md:95);
- when the subagent guard arrived. The block itself dates from 2.1.154
(anthropics/claude-code@94506ff0 CHANGELOG.md:5037). 2.1.288 added the
reminder that tells a blocked subagent how to proceed
(Piebald-AI/claude-code-system-prompts@0b7ce11f CHANGELOG.md:216);
- d4's measured context. Its --bg copy 33888fe1 never entered a worktree
and wrote only outside the working directory, so the block itself was
not measured.
- worktrees route (B2-0003): a lane parks unfinished work as a WIP commit
on its own branch, not with git stash, because every worktree shares
refs/stash (git/git v2.53.0 Documentation/git-worktree.adoc:298-302).
Measured on the host's git 2.53.0 in a scratch repository, and the new
test repeats the measurement.
- sandbox route (C1-0022): network.strictAllowlist now comes with an
explicit network.allowedDomains. Under strictAllowlist the allowlist is
allowedDomains plus WebFetch(domain:...) allow rules (sandboxing.md:575),
so a strict arm with no list denies every sandboxed network call. The
list comes from M1's network arm (probes-20261009.json:382-383) and is
frozen through M1 before rollout. The host change is a proposal for the
command center (/var/tmp/ccnp-floor/hostdiff-C1-0022.md) and was not
applied. This commit leaves the sandbox notes line, which #1129 edits,
alone.
tests/test_native_practice_ledger_isolation.py: 6 of its 10 tests failed on
a scratch export of 4204520. The other four pin the stash measurement,
the bgIsolation default, the cited M1 lines and the page render. The
native-practice modules ran 110 tests OK (3 opt-in skips). validate rc 0.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
5 tasks done
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
isolationlayer page: B2-0003 and B4-0003 (slotworktrees) and C1-0022 (slotsandbox). The command center dispatched the ledger on 2026-10-15, and each row was confirmed by a second-family gpt-6-astra re-check.420452059lane:foundationslots.jsonandisolation.md;sha256_when_labeled, plussandboxandworktreesadded to its existingroutedifference list, since the routes changed;tests/test_native_practice_ledger_isolation.py(new);manifests/evidence.json.Rows:
git stash, because every worktree of a repository shares onerefs/stash.git stash popthere applied it and emptied the stack.Documentation/git-worktree.adoc:298-302documents the shared refs.claude --bg, agent view) isolate before editing.worktree.bgIsolationdefaults to"worktree", which blocks Edit and Write in the main checkout until the session calls EnterWorktree; a shellcpor redirect is not blocked.network.strictAllowlistcomes with an explicitnetwork.allowedDomains(sandboxing.md:575).api.github.com,github.com,127.0.0.1andlocalhost. It is frozen through an M1 re-run at 2.1.300 before rollout.SOTA sources
c8e2b810…)worktree.bgIsolation) and :2598-2604 (sandbox.network.allowedDomains) (8ba90434…)f3feed62…)a50825b4…)CHANGELOG.md:5037,:5283Documentation/git-worktree.adoc:298-302CHANGELOG.md:216, andsystem-prompts/system-reminder-subagent-write-blocked-pending-worktree-isolation.md:4-9(a lead, checked against the installed 2.1.300 binary)evidence/artifacts/claude-native-practice-20261009/probes-20261009.json:382-383, :393, :399(the M1 network arm);docs/decisions/2026-10-11-final-stack-review-corrections.md:559Evidence-class table
native_provensource_reviewsource_review+syntheticLocal commands run
Follow-ups
allowedDomainsandstrictAllowlistdisposition rows staybaseline-unreviewed.Checklist
🤖 Generated with Claude Code