Repository navigation
test: run a structured chat against the packaged headless server - #26527
Conversation
…mplate The chat check loaded the server bundle directly, so a desktop build missing its server template still passed. Materialize the slot from the built template the way the desktop does, and replace the fixed streaming pause with a test-owned acknowledgement so the partial-reply assertion can't race.
…-orcad-esm-import-meta # Conflicts: # config/scripts/build-orcad.mjs
…-orcad-esm-import-meta
…import-meta' into brennanb2025/ssh-chat-packaged-server-e2e # Conflicts: # config/scripts/node-server-change-scope.mjs
Review summary (final head
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to No actionable merge-blocking issue is identified. The reported validation covers Linux and macOS, while Windows/WSL and live-provider or deployment behavior remain outside this test’s scope. Pre-merge checks |
|
…-packaged-server-e2e # Conflicts: # .github/workflows/node-server-tests.yml
Main now sends remote runtime requests over a paired connection rather than a pairing offer, so the test converts the server's offer once when it is ready.
|
Moved onto
|
Stacked on #26450; retarget to main after it merges.
ELI5
SSH Claude chats failed before their first reply because the packaged plain-Node server broke the SDK's module URL. Tests running against application source did not catch that packaging failure. This adds a chat test against a server materialized from the built desktop template, so the same startup failure is caught before users receive a build. There is no new user interface or production behavior in this PR.
What Changed
The test obtains its server slot through the desktop's existing template materializer, starts the real packaged server with pinned Node and isolated configuration, and creates, subscribes to and sends a Claude chat through the real encrypted RPC. It checks a partial reply, the complete reply, a successful completed turn and the provider's launch arguments/environment.
Linux CI builds its host-target template before this test, on eligible PR runs as well as requested template builds. A missing required template or invalid template checksum fails the check. The fixture waits for the RPC subscriber to acknowledge the first partial reply before emitting later frames, with a bounded deadline.
Why
A direct server-slot test can pass even when the template needed for desktop SSH deployment is missing. Using the existing materializer covers the real template-to-slot boundary without creating another packaging implementation. Waiting for an observed partial reply removes the scheduling assumption behind the former 150 ms pause.
Shipping hourly/daily/dev desktop builds must also require and verify the template: that packaging guard belongs to #26451. This PR tests the built template and materialized server; it does not extract a shipping desktop artifact or independently close missing-template shipping failures.
Linked Issue
Related: #26450 (server bundle fix), #26451 (shipping-template requirement), #26464 (packaged host-CLI follow-up).
Visual Proof
N/A — automated headless test coverage; no interface or interaction change.
Testing
createRequirereceivingundefined.9e18690fa29, merged with fix: let managed SSH Claude chats load the agent SDK #26450, which now contains currentmain):orca-ci-checkspasses 24/24.templateoption inconfig/scripts/node-server-test-paths.mjs.--artifactruns leave it out. Those are macOS, Windows, the glibc-floor and musl jobs, and Linux before the template is built, and none has a template.src/main/runtime/orsrc/main/claude/now forces the server-test workflow, so regressions in chat startup on the packaged server are caught.Review
The test uses the execution host's journal and cursor-based read surface, matching that part of the common pattern.
orcacommand from the agent process. Fix CLI delivery and fresh launch environments for managed SSH agents #26464's live SSH check covers that by hand (the agent's ownorca statusreached its server), but no automated test does yet.Agent skill upstream boundary
Checklist