Repository navigation
Description
Child of #626. The close child (eve).
User story
As the owner, I want eve's half of the host-adopt epic merged only after its checks pass with relay's epic head, so that main never holds half of it.
Acceptance criteria
- Offer Adopt on SSH-host rows that relay marks adoptable #627 is merged to
epic/626-host-adoptwith its review and evidence lines. - A sync PR from
sync/626-mainmergesmaininto the epic branch and saysCloses #628. npx playwright testand the--stackrun pass once on the frozen epic head, on a fresh stack built with relay's frozen epic head.- A
Verified:line on this issue names the final epic head. test/e2e/relay-pin.jsonnames relay's epic head, never relaymain.merge-checkpasses on the epic PR tomain, and eve merges minutes after relay.
What I'd notice
Nothing new. The change appears on main in one step.
Close lines (eve)
- The verification task runs once, on the epic head frozen by line 4:
npx playwright test, thenstack-upon that head and the--stackrun, thenstack-down. Eve: a fresh stack per run. This issue gets theVerified:line. - A push after line 1 means line 1 runs again on the new head. Nothing is planned to push after line 4.
- Every child is merged to the epic branch, with review and evidence lines in place.
mainis merged into the epic branch by a sync PR whose head issync/626-mainand whose body saysCloses #628. Conflicts are resolved on it.- Close Offer Adopt on SSH-host rows that relay marks adoptable #627 with a comment naming its PRs.
merge-checkpasses on the epic PR tomain.- Merge under the joint close task on Epic: adopt an outside Claude session on an SSH host relay#588 (step c), after relay. Confirm
maingreen, close Epic (eve track): offer Adopt on terminal Claude rows on SSH hosts #626 (step d), delete the epic branch. - The run report's final body (
run-report finish, by the coordinator).
Verification task
On the devbox, once, on the frozen epic head after line 4, as step b of the joint close task, after relay's run. No devlock. Never kill or replace the devbox's default tmux server.
-
repo-suite:npx playwright test. -
devboxverify: a freshstack-up e628 --relay <relay checkout at its epic head> --eve <eve checkout at the epic head>,node devboxverify/main.js --checkout <eve checkout> --stack <stack.json>,stack-down e628(also on a failure). -
real-app: the shared devbox pass on Verify and close the host-adopt epic (relay) relay#590 covers eve's screens (Adopt on a host row, the managed host row, the Chief of Staff send, drop in, Interrupt and adopt, thehost_link_losttoast). Name its log here. - Post
Verified: <head sha> · repo-suite: <result> · devboxverify: <result> · real-app: <result> · log: <link or path>here.
Tasks
- Open eve's draft epic PR (
epic/626-host-adopttomain, bodyCloses #628) when Offer Adopt on SSH-host rows that relay marks adoptable #627's first PR merges. - Line 3. Only if relay's epic head moved after Offer Adopt on SSH-host rows that relay marks adoptable #627's pin (relay's sync PR): a pin-only PR
chore/628-relay-pinnaming relay's final epic head,Closes #628, before the sync PR. - Line 4, then report lines 3 and 4 on Epic: adopt an outside Claude session on an SSH host relay#588 (joint close step a).
- Line 1 under joint close step b; lines 5 to 8 under steps c and d. Merges happen on the devbox, never on the Mac.
Contract
This child adds no code. Its PRs are the sync PR, a possible pin-only PR, and eve's epic PR to main (Closes #628). merge-check judges them on the files that differ from main, so the list below is every file of #627, written out. Conflict resolution stays inside it.
File ownership
test/e2e/relay-pin.json(in the pin-only PR, and as Offer Adopt on SSH-host rows that relay marks adoptable #627 left it)public/agent-board.jsdocs/FEATURES.mddocs/api.mddocs/design-chief-of-staff.mdtest/e2e/g6-outside-adopt.spec.jsdevboxverify/journeys-cos-outside.jsdevboxverify/journeys.js(the one run-list line Offer Adopt on SSH-host rows that relay marks adoptable #627 adds)devboxverify/README.mdtest/static/frozen.json
Test surface
The whole Playwright suite and every journey of the --stack run, not a selection, once on the frozen head. outside-adopt-host is a screen journey, so the --stack run skips it and the nightly runs it. Nothing new is written here.
Waits:
- Merges and child state:
merge-checkexit codes andghissue and PR state. stack-up: its process exit and a validstack.json;stack-down: its process exit.- Playwright and devboxverify: their process exits. They hold the browser-test lock; no hand-rolled wait for it.
Budget
0 lines of new code. Conflict resolution only inside the files above; anything else stops and asks.
Amendment 1 (2026-10-22): the ownership list adds devboxverify/journeys.js, to match #627 Amendment 1.
Activity
barelyworkingcode commentedon Oct 22, 2026
Coordinator approval: inherits the approved epic's listed batches, 2026-10-22
barelyworkingcode commentedon Oct 23, 2026
Verified: ae73cfe · repo-suite: 846 passed, 33 skipped · devboxverify: SUMMARY pass=48 fail=0 blocked=1 notrun=11 (fresh stack e628 with relay 1e96e38; outside-adopt-codex BLOCKED: no codex daemon, as on the last verified close) · real-app: shared pass on barelyworkingcode/relay#590, 6 of 7 PASS; step 2 Drop in button absent on the stack's non-Claude model (#642) · log: devbox /tmp/c588/close, /tmp/c588/realapp