Skip to content

eve#624: Unsandboxed chip on agent rows relay marks - #633

Merged
barelyworkingcode merged 10 commits into
epic/623-projectless-adoptfrom
feat/624-unsandboxed-chip
Oct 22, 2026
Merged

barelyworkingcode merged 10 commits into
epic/623-projectless-adoptfrom
feat/624-unsandboxed-chip

Conversation

@barelyworkingcode

Copy link
Copy Markdown
Owner

Closes #624

PR 2 of 2 for #624: an "Unsandboxed" chip on every agent row that relay marks unsandboxed: true, on sessions and their drop-in terminals. Targets epic/623-projectless-adopt.

Non-obvious decisions

  • The rule lives in AgentBoard.isUnsandboxed. The tab bar and the drop-in marking call it too.
  • The chip is role="img" with aria-label="Unsandboxed", and its id joins the row's aria-describedby, so a screen reader hears it on the row (contract amendment).
  • Fixed before merge: Drop in on a session adopted in no project opened a tab that the tab bar filtered out, because the terminal has no project. TabManager.render() now also shows a project-less terminal that relay marks unsandboxed. Relay's drop-in answer carries no mark, so AgentBoard.dropIn marks the opened terminal from its session until the next terminal_list (contract amendment for public/tab-manager.js).
  • Today no longer lists agents, so criterion 1 names the Agents rail and the phone Agents dialog (amendment).
  • The Pi/Codex "Not in a project" line has no hermetic spec: fakerelay worlds hold only Claude rows (fakerelay: outside rows for Pi and Codex agents relay#591). Its proof is relay's TestAdoptNoProjectPiCodexKeepReason, the unchanged ADOPT_REASONS.no_project, and the Verify and close the projectless-adopt epic (relay) relay#587 devbox pass (amendment).

Minor review notes (not fixed)

  • The journey counts two chips page-wide during the drop-in; the spec places each chip on its row.
  • Long lines in devboxverify/outside-claude.js:69 and the README paragraph.
  • Theoretical: during a drop-in the terminal chip may show from eve's own mark before relay's terminal_list arrives.

Proof

Fix attempts: one review round (two blockers, eight minors), the drop-in defect (two fixes), one journey audit-read fix. Tokens: about 1.0M across subagents.

Review: no blocking findings (round 2, default model)
Journey: outside-adopt-unsandboxed PASS on stack e624, head 0d92544 (log /tmp/c585/e624-dbv-head.log)
Harness weakening: none; outside-adopt and the other journeys are unchanged, the new journey is additive
Main harness vs head: main's devboxverify (952d1f0) against head 0d92544 on stack e624m: SUMMARY pass=47 fail=0 blocked=1 notrun=10 (blocked: no codex daemon)
Break-and-restore: hiding the chip in AgentBoard turned all five @G6.109 specs red, and on a stack outside-adopt-unsandboxed FAIL "the managed row shows no Unsandboxed chip after the adopt"; green after the restore

🤖 Generated with Claude Code

barelyworkingcode and others added 10 commits October 22, 2026 11:20
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@barelyworkingcode
barelyworkingcode merged commit 69fa607 into epic/623-projectless-adopt Oct 22, 2026
@barelyworkingcode

Copy link
Copy Markdown
Owner Author

merge-check: merged. approved, target, contract, evidence, owner
Report: 2. The gates themselves: criterion removed A managed session row on the Agents rail, the phone Agents dialog and Today shows an "Unsandboxed" chip when relay lists it with unsandboxed: true. (issue #624)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant