Repository navigation
Adopt an idle outside session from the agents board (#597) - #606
Merged
Merged
Conversation
Adds the adopt route, the Adopt and Interrupt and adopt row actions on one shared action builder, the relay-recovery chip, and the outside-adopt journey. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ws G6.107, G6.108 (#597) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Unset CLAUDE_CODE_ENTRYPOINT and CLAUDECODE for this journey only, so relay sees an interactive command-line session. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
For this journey only, start claude with no prompt argument and send the prompt once the input box shows, so relay's child-process veto sees the MCP servers start before the first reply. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…thetic answer (#597) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Owner
Author
|
merge-check: merged. approved, target, contract, evidence, owner, weakening |
Owner
Author
|
Merged: approved, target, contract, evidence, owner, weakening PASS; ci, verified NA. |
This was referenced Oct 21, 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 #597
PR 2 of 2 for #597 (epic #596). The agents board gets Adopt on an idle, adoptable live outside row and Interrupt and adopt on a working one. Both share one row-action builder with Drop in, Resume and View read-only.
POST /api/outside-sessions/:id/adoptwith body{interrupt}. Eve checks the id shape and the boolean, then makes onerelayTransport.fetch('POST', '/api/sessions/adopt', {outsideId, interrupt})with no scope. That is the owner-class path Drop in uses, never the chief-of-staff scope.claudeSessionIdis dropped from the answer.adoptable === true. A row that is not adoptable shows relay's reason in one line from a fixed text table. A door refusal shows a one-line toast and the button comes back.Drop in to <name>. After Interrupt and adopt, relay's recovery message carries the chip "Sent by relay after it took over".none) and a clause on G6.93.docs/api.mddocuments the route and the row fields.outside-adoptcovers the simple path. It launches the outside Claude as a person's terminal would: no agent entrypoint variables, and the prompt typed into the ready input box. It waits for the reply in the transcript.Contract amendment 1 (in the issue): the route selftest is dropped, and its checks live in the Playwright spec through fakerelay.
Known, outside this PR
model_unknown. Sooutside-adoptFAILs there until relay fixes it. That matters for Close child: session adoption (eve) #598's verification run.child_process) while its MCP server lives.Minor review notes (not fixed)
g6-outside-adopt.spec.js:337: the ended-row test's line check matches/can't be adopted/only. The button check is sound, and the code keeps ended rows out twice.g6-outside-adopt.spec.js:419: the busy-refusal toast check matches only theCan't adopt:prefix. The{"interrupt":false}body check holds.docs/api.md:402: it sayscos_list_sessionsoutside rows carryadoptable/adoptReason. Onlycos_session_statusdoes.journeys-cos-outside.js:178: a missing input box ends as "did not reply", not as its own BLOCKED.Fix attempts: T1 product 0. The
outside-adoptjourney took 3: launch env, a typed prompt, and the transcript reply wait. The third ran on the default model. Spec 1: the world shape. Tokens: about 1.2M across subagents.Review: no blocking (round 1, default model; 5 minor in the notes above)
Journey: outside-adopt PASS on a stack at 5e0a04c with real Claude logged in (relay epic 2faa421); FAIL on the default broker stack with relay#562's model_unknown
Real-app check: outside-adopt on a real stack: one tap answered 201 with no claudeSessionId, the outside row left, Drop in showed under Idle, the pane's claude exited, relay audit holds session_adopt ok
Harness weakening: none (adds the outside-adopt journey and one frozen.json entry; other launches unchanged)
Main harness vs head: base harness (epic/596 at d2e6c64) against head 5e0a04c on a stack: outside-thread PASS; head harness: outside-thread PASS
Break-and-restore: removed
r.item.adoptable === truefrom showsAdopt; 3 criterion-5 tests went red; restored, cmp identicalSuite: 865 passed, 0 failed (baseline 841); check:static and check:coverage ok.
🤖 Generated with Claude Code