You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fleet(#1376): real-ssh two-engine e2e test — AC2/AC3 proof, CI-gated #1383
Problem — AC2 (distinct-hosts resolver proof) and AC3 (real SSH transport, not a stub) from #1340 are unmet — the unit tests prove the resolver in isolation, but no test proves end-to-end "attach → traffic lands on the peer's engine over real SSH." Approach — One CI-gated integration test: two local engines on two ports, ssh -L to localhost, assert engine/SSE traffic lands on the attached peer (distinct marker) while /amicode/roster lands on the keeper. Scope — in: the real-ssh two-engine e2e test, CI configuration. out: resolver logic (Slice 1), attach lifecycle (Slice 2), serving advertisement (Slice 4).
Acceptance Criteria
Two engine instances run on distinct local ports during the test
An ssh -L forward connects the test client to the "peer" engine
Engine + SSE requests through the resolver land on the attached peer's engine (verified by a distinct response marker)
/amicode/roster requests land on the keeper (verified by a distinct response marker)
The test is CI-gated (runs in the main test suite, not opt-in)
New integration test file (this IS the test). Model on the AC4 p95 harness from #1353 which already ran over real ssh -N in CI. The two engines can be lightweight mock HTTP servers that return distinct markers — they don't need to be full opencode instances.
Key Decisions
Real SSH, not mocked. AC3 is explicit: "not a stub." ssh -L to localhost is the minimal real-transport path.
Important
Problem — AC2 (distinct-hosts resolver proof) and AC3 (real SSH transport, not a stub) from #1340 are unmet — the unit tests prove the resolver in isolation, but no test proves end-to-end "attach → traffic lands on the peer's engine over real SSH."
Approach — One CI-gated integration test: two local engines on two ports,
ssh -Lto localhost, assert engine/SSE traffic lands on the attached peer (distinct marker) while/amicode/rosterlands on the keeper.Scope — in: the real-ssh two-engine e2e test, CI configuration. out: resolver logic (Slice 1), attach lifecycle (Slice 2), serving advertisement (Slice 4).
Acceptance Criteria
ssh -Lforward connects the test client to the "peer" engine/amicode/rosterrequests land on the keeper (verified by a distinct response marker)Testing Decisions
New integration test file (this IS the test). Model on the AC4 p95 harness from #1353 which already ran over real
ssh -Nin CI. The two engines can be lightweight mock HTTP servers that return distinct markers — they don't need to be full opencode instances.Key Decisions
ssh -Ltolocalhostis the minimal real-transport path.Constraints & Invariants
ssh -Nchildren).Prior Art
amicode_service_attach_switch_latency.test.ts).attachment_transport.tsssh -Lforward.Source
Part of #1376. Blocked by #1378 (FleetPlane + resolver wiring) and #1381 (attach/detach lifecycle).