Repository navigation
cmux NEXT Cloud: test that an ACP chat in a Cloud workspace runs its agent on the VM - #25680
Conversation
…the machine (#25583) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…default folder Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Correctness review (subagent) of the test, and what I did about each finding No blocking findings. The JSON-RPC shapes match
|
|
Bead |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Receipts at head 6cfe386 (owner austinywang, agent Claude Code; base 941ace3)
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Not verified: macOS jobs did not run: compile and app tests were skipped on CI passes on Written by web and size checks: green Shipped in:
|
|
Found 1 test failure on Blacksmith runners: Failure
|
…eds (#26323) Since #26323 the app starts a chat on a Cloud machine only on the Cloud API's vmKind owner answer of the running link. The stand-in machine now runs a stand-in link whose attach answer says owner; a new case checks that with no owner answer no chat starts and the page says why. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Updated to current feat-cmux-next. Head is now 746552f, pushed without force.
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Base red, not from this PR: This PR changes only
The same two tests fail on
The fix belongs in the base's The other old red was cmux-next checks "Default cursor", from PR: #25680 · owner: austinywang · agent: Claude Code (Opus 5.5) · base: 5587de5 · head: 9a4ff7f |
|
Review and status at head 9a4ff7f Review (Claude subagent, correctness first) No blocking findings in Medium:
Minor: tests 2–4 do not assert that this Mac's acpmux stayed idle. The fleet test is still red, and the red is this PR's own (not a base red)
The two refusal tests pass every time. The tests that wait for the machine daemon's agent-session start fail. The 699a3c1 → 71e8a84 diff is only the
Not done
The base reds are documented in #25680 (comment). PR: #25680 · owner: austinywang · agent: Claude Code (Opus 5.5) · base: 5587de5 · head: 9a4ff7f |
|
Review (Codex): SHIP at 90b43ea Fresh independent correctness-first review found no correctness findings in the full diff against 52e78a0. A follow-up review of the runtime evidence found no concrete PR-caused defect remaining to hold ready-to-land. The PR still adds only CloudAgentChatTests.swift. All four CloudAgentChatTests passed in 8.291 seconds at pushed ancestor 42a65e5 in fleet step b4fe428f875e5bf448d3f3cb on aws-m4pro-2. Exit 0; workspace_reset true. The reviewer verified the test file is identical to this head. No assertion or production timeout was relaxed. The earlier Cloud timeouts did not reproduce; worker/runtime variability is plausible, but its cause is unproved. Exact-head runtime execution was blocked by the two NativePopupHost.swift:235/239 sending/data-race compiler errors. Exact base 52e78a0 compile job aaf8bb510022be5b3e6c8344 has identical errors (base run); head compile job 2e94a37b45b099096d826549 and exact-head test-build step a2d15b706efd5292e4a55a9a reproduce them. The ancestor pass is not an exact-head runtime pass. Other evidence:
Limits: reviewer ran no builds/tests. No successful current-head runtime run, live Cloud VM or full CmuxNext suite. This is test-only, risk:low, with no visual change. Details and commands are in the description. |
|
Review (Codex): FIX at 23adfaf The exact-head fleet run found stale fixture expectations, superseding the earlier source-only SHIP review. Step 64a6dadbad022f88b748f474 ran on aws-m4pro-9: CloudAgentChatTests failed 3/4, CloudLinkReconnectingTests passed 5/5, and PlacementDocumentWriteOrderTests failed its pre-operation ordering assertion. The Cloud failures match two intentional base changes: #29107 (c8af668) permits the creator's owner grant on a team VM; #29556 (d3cf70b) auto-trusts an owner's exact HOME/work absent an explicit refusal. The test expected both to be refused. The fetched daemon source key matches this exact head, and the environment is retained; this is not a wrong-binary or missing-environment failure. ready-to-land has been removed. A test-only repair keeps explicit trust coverage in HOME/project, verifies owner-on-team first-send/binding at HOME/work, and checks missing-owner refusal on both plain and team hosts. It will receive exact-head fleet verification and a fresh review after push. |
Keep explicit folder-trust coverage in HOME/project, since the base now auto-trusts an owner's HOME/work (#29556). Verify the creator can start a chat on a team machine (#29107), including the machine session and store binding. Refuse missing owner answers on both plain and team hosts. Reproduced at 23adfaf via cmux-ci step 64a6dadbad022f88b748f474: scripts/ci/package-test-lane.sh suite Packages/macOS/CmuxNext CloudAgentChatTests,CloudLinkReconnectingTests,PlacementDocumentWriteOrderTests Cloud chat failed 3/4 due to these stale expectations; reconnect passed 5/5. Placement's pre-operation ordering assertion also fails independently. Scoped syntax, localization defaults, feature flags and namespace lint pass. The workspace package-group finding is unchanged base debt. Exact-head fleet verification follows the normal push; no local builds.
|
Review (Codex): SHIP at 43267d8 Fresh independent correctness-first review found no correctness findings in the full diff against 0ffea12. The test-only repair matches the current owner/trust rules and preserves the remote execution, VM session/store binding, explicit trust, missing-owner refusal and reconnect/replay oracles. Exact-head cmux-ci step abc7496dac7a68fb0c8843d7 compiled the package and passed on aws-m4pro-8. All five Cloud chat cases and five reconnect tests executed with no skips. Cloud chat: 8.014 seconds; reconnect: 0.624 seconds. Exit 0; terminal receipt confirms workspace_reset true. The reviewer independently inspected those results. The focused command is in the description. The previous head’s stale expectations failed after intentional base changes #29107 and #29556. The fixture now uses HOME/project for explicit trust, tests the creator’s owner grant at HOME/work on a team VM, and refuses missing-owner starts on plain and team hosts. No production behavior or timeout was changed. Static pre-push gates and scoped checks pass except the unchanged base workspace package-group finding. GitHub checks on this head are still queued/running. The prior head’s release-notary failure matches the same guard on feat-cmux-next (links in the description); this PR changes neither those digest scripts nor that highlight. Limits: no live Cloud VM or full CmuxNext suite; the link is a stand-in with two real same-tree daemons. The unrelated base Placement suite was not rerun. Older Cloud timeouts did not reproduce; their cause remains unproved. No local builds/tests ran. |
|
CI classification at The current-head release-notary guard has three shared failures:
The first two failures also appear in the feat-cmux-next guard at 6aef70d31712a12e632de200eb4de2c0082ce3c5. All three, including the identical hook hash, appear in the unrelated stall-watchdog PR guard at 3872f74b1e0fbe98929fa5d545525ad65d3d145f. I read all three logs. The full diff against the merged base adds only CloudAgentChatTests.swift; the release, routing, digest and signing files are unchanged. The exact-head Release compile, ci-status, risk evidence and merge-freeze checks pass. The exact-head fleet test run and independent SHIP review remain valid. ready-to-land is unchanged; awaiting next-autoland's verdict. No additional source change or push was made. |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Fixes #25583
Adds
CloudAgentChatTeststo verify that an ACP chat opened in a Cloud workspace runs its agent on that machine. This is a test-only change: the app connects to two real same-tree cmux-tui daemons, and the machine's acpmux runsfake_agent.pythrough the realAgentTabRemoteHostandRemoteAcpmuxWirepath.The four tests cover five cases:
HOME, and reattaches with replay without starting another session.The stand-in machine daemon requires the owner word, so dropping the app's
vm_kind: "owner"would fail the successful-start cases. Test setup has cleanup on failure and cancellation-aware waits. The suite holds the shared sidebar-document ownership gate, gives both daemons private homes, and disables login import, live catalog fetches and unrelated background probes so the explicit sample harness controls startup.Starting VMs from a chat (#25597) and starting Cloud workspaces from Chief (#25596) remain outside this change.
Validation
Head:
43267d8e81d5457fad1d2dc0dd7d3adddc10ac74; merged base:0ffea12ac93f186eebd694bf9c6cc2f17685fa29. Independent correctness-first review returned SHIP on this exact head after reviewing the executed fleet results. The base merge was conflict-free, and the remote head was checked before each normal push.Run on cmux-ci as class
light:Observed / Not run
abc7496dac7a68fb0c8843d7on aws-m4pro-8 compiled the package and passed both suites: all five Cloud chat cases (four test functions, including both missing-owner arguments) and all five reconnect tests executed with no skips. Cloud chat took 8.014 seconds; reconnect took 0.624 seconds. Exit 0; terminal receipt confirms workspace_reset true.23adfaf7eea4b2671e40c30dd9ba337d749f7c69, step64a6dadbad022f88b748f474failed three Cloud tests because the fixture expected starts now allowed by base Cloud: a machine's creator can start chats on it from the app, team machines included #29107 and cmux-tui: a creator's first chat on their own Cloud machine starts in its work folder with no question #29556 to be refused. The repair keeps explicit trust coverage in HOME/project, verifies the creator’s owner grant and automatic HOME/work trust on a team machine, and refuses missing-owner starts on both host kinds. No production behavior or timeout was changed.No capture: test-only change, no UI changes.
Changelog
none
Need help on this PR? Tag
@codesmith-botwith what you need.