Repository navigation
relay#594: an unsandboxed adopted Claude asks before running tools - #595
Merged
barelyworkingcode merged 2 commits intoOct 22, 2026
Merged
barelyworkingcode merged 2 commits into
barelyworkingcode merged 2 commits into
Conversation
…oval Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Owner
Author
|
Merged under merge-check: approved, target, contract, evidence, owner, weakening. |
This was referenced Oct 22, 2026
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.
Closes #594
Child of #585. An adopted Claude in no project ran headless, and headless forced
bypassPermissionsin three places, so it ran every tool without asking. Anunsandboxedheadless session now keeps its own permission mode (defaultfrom the adopt); sessions in a project keep bypass, since their sandbox bounds them. Docs:session-adoption.md,session-host.md,THREAT-MODEL.md3f with promise rowTM3f.5, and theG1.54claim inFEATURES.md.Fix attempts: 1 (the test needed one setup fix, a
mountercredential, that showed only once the fix let the call reach the ask). Tokens: about 460k across planner, test writer, dev and reviewer.Review notes (minor, not fixed):
relay session modesets bypass" is narrow: eve'sset_permission_modeover/wsreaches the same setter. Both are owner actions.npWriteHookcopies the hook-settings block fromg1aSetup; a shared helper would remove the copy.npAskAndDenyis redundant with the exact match after it.Red on main: n/a: the bug exists only on the epic branch. Red on the epic head fa33abf: TestAdoptNoProjectAsksForApproval and TestAdoptNoProjectAsksAfterHandBack fail at bug594_unsandboxed_permission_test.go:145 and :158, "the turn answered hook: allow: bypassPermissions mode"
Real-app check: seen before: the relay#587 real-app pass on fa33abf, step 4, no permission prompt and relay-sessions logged decision=allow reason="bypassPermissions mode". Gone after: step 4 of the relay#587 verification rerun on the new epic head
Journey: n/a: no devbox journey reaches a permission prompt on an adopted session; the e2e tests and the real-app step 4 cover it
Break-and-restore: put back
if sess.Headless {alone in decidePermission; both no-project tests went red at :145 and :158; restored byte for byte (cmp identical)Review: no blocking findings (default model, round 1)
🤖 Generated with Claude Code