Repository navigation
cmux NEXT Cloud: the agent's chat links to the Cloud session it started - #25625
Conversation
… new chat (#25597) Red before the fix: CloudStartSessionAsks has no started(tab:token:text:gone:reveal:), the card has no done state, and the page store drops a done card. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hine (#25597) After the person's Start, the agent's ask card no longer just disappears: it turns into a done card, "claude runs on Cloud machine dev. Its chat is in that machine's workspace in the sidebar.", with Open Chat (reveals the new chat tab, AppServices.revealTab) and Dismiss. Nothing is shown before the person clicks, so no focus moves. A chat that's gone says so, with Dismiss. The card has a new done state (AgentPaneToolCard.State, toolCardStore.ts) and a gallery variant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…the ask's own card; highlight Review fixes: - endAll() removes done cards: their Open Chat would show a chat of the account that ended. - The tests' card wait passes over a run's working and done cards, so a second ask in the same chat is waited for. - The gallery's done card has the shipped text; a What's New highlight. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Bead |
Review (correctness-first, review subagent), at 9b34d44Verdict then: FIX. The production change was correct, but one new test could not pass. Fixed in a771afb.
The reviewer checked and found these correct: old cards can't overwrite a later ask's card ( My own check at a771afb: I reread the diff and the |
|
Review (claude review subagent): SHIP at a771afb. The re-review of the fix commit found the test race fixed and the |
|
Found 119 test failures on Blacksmith runners: Failures
...and 109 more test failures. View all on Blacksmith: run 40408682419, run 40408682118
|
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Unclear: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: web / Web status; base red: the same failure on the base 0a167e2; does not block |
|
Review (Codex gpt-6-astra xhigh): SHIP at 21f6291. No findings; landing it once its reds check out as base's. |
|
Shipped in:
|
…-notary red on base) test_the_repository_highlights_validate fails on every feat-cmux-next PR: the highlight from #25625 has no tryIt action or docs link. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* docs(next): the Cloud start-session highlight links its docs (release-notary red on base) test_the_repository_highlights_validate fails on every feat-cmux-next PR: the highlight from #25625 has no tryIt action or docs link. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(nightly): read the legacy publish job with its moved step scripts inline #25879 moved "Generate the old feed's appcast" into scripts/ci/nightly-steps/legacy-identity-appcast.sh, so test_the_appcast_comes_from_the_tested_plist no longer found its commands in nightly.yml (ValueError: substring not found) and release-notary went red on feat-cmux-next. Read the workflow through nightly_workflow_text.nightly_text(), as the other nightly workflow tests do. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(nightly): leave test-execution.toml as on the base The pre-commit hook registered two base tests that this PR does not touch; keep this PR to the two red fixes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * release notes: two new fixed highlights get their Try it action (base red) home-composer-border (#26119) and selected-harness-start (#26106) landed with neither an action nor a docs link, which scripts/whats-new/validate.py requires, so release-notary's test_the_repository_highlights_validate is red on feat-cmux-next. The Chief field one opens Home; the harness one starts a new agent chat. Test: python3 scripts/whats-new/test_digest.py: 1 failure before, OK after. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * nightly: the Sparkle key test reads nightly.yml with its moved steps inline (base red) #26196 and #26210 moved two of the four SPARKLE_PRIVATE_KEY="$(./scripts/ci/nightly-sparkle-key.sh)" call sites into scripts/ci/nightly-steps/, so the raw workflow has two and tests/test_nightly_sparkle_key.sh (release-notary) fails its at-least-three check. It now greps nightly_workflow_text.nightly_text(), the expansion the other workflow tests read. Test: bash tests/test_nightly_sparkle_key.sh: FAIL on the base, PASS here. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * cmux-next routing: a test's home-folder Claude settings path is not a repository read (base red) CloudCredentialTransferTests named ".claude/settings.json" under a temp home in one literal; ci-target-graph.py found the repository's own file at that path and listed it as a CmuxNextAppTests read (base autofix c14a002), which cmux-next.yml's pull_request paths do not cover, so Tier routing's test_every_routed_input_triggers_the_workflow is red on feat-cmux-next. The test builds the path from folder and file, and the graph loses the read (literal_reads recomputed: the target's other 14 reads are unchanged). Test: python3 tests/test_cmux_next_route.py: 1 failure on the base, OK here. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * acpmux: the upload-link test names no literal ~/.acpmux state root (base red) Same change as #26087, combined here because each is red on the other's red: check-state-roots counts the inline test module's /home/me/.acpmux/... fixture (since #25840). upload_ids reads only the parent folder, so the test is the same. Test: bash scripts/cmux-next/check-state-roots.sh .: exit 1 on the base, ok here. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * acpmux: collapse the Codex broker's account checks into let chains (clippy base red) #26191 nested two if-lets in codex_auth_broker.rs; clippy -D warnings (collapsible_if) fails on it for every PR that touches acpmux. Same checks, one let chain each. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * release notes: the compact thought-row highlight gets its Try it action (base red) #26270 added it with neither an action nor a docs link, so release-notary's test_the_repository_highlights_validate is red again. Test: python3 scripts/whats-new/test_digest.py: 1 failure before, OK after. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * tests: leave test-execution.toml as the base has it The pre-commit hook registered unrelated tests while committing the base merge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * cmux-next tests: drop the settings-path split; the graph skips .claude paths itself #26248 made ci-target-graph.py ignore .git, .claude and .codex paths a test names, so the one-literal form no longer routes CmuxNextAppTests on the repository's settings file. Back to the base's line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs(next): the Cloud start-session highlight links its docs (release-notary red on base) test_the_repository_highlights_validate fails on every feat-cmux-next PR: the highlight from #25625 has no tryIt action or docs link. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs(next): give the two base highlights release-notary rejects a live action feat-cmux-next's inline-pr-pills and inspector-error-colours highlights have no action or docs line, so scripts/whats-new/test_digest.py (release-notary) fails on the base. Use existing palette actions rather than https://cmux.com/docs/agents, which returns 404. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs(next): give the new Find in Chat highlight a live action (release-notary red on base since 93ff53c) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Leo <cheerleaderleo@outlook.com>
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Fixes #25597
What changes
cmux cloud start-session(#25319, #25414) already lets an ACP agent in a chat ask to start a session on a new or existing Cloud machine. The person clicks Start on the card in the agent's chat. The machine is created or resumed, it appears in the sidebar under its own machine section, and a chat on that machine starts the agent. What was missing was the third part of the acceptance, the chat links to it. On success the card just disappeared, and nothing in the asking chat pointed to where the work went.Now, once the session runs, the card in the asking chat turns into a done card:
AppServices.revealTab, the same way Go To andcmux://links jump to a tab. Nothing is shown until the person clicks, so the agent's run never moves focus (revealing: falseis unchanged).endAll) removes done cards, because their Open Chat would show a chat from the account that ended.donestate inAgentPaneToolCard.Stateand in the page store (toolCardStore.ts). The page draws it like the other states, with the host's text and buttons. A gallery variantagent-pane.tool-cards/startedshows it.CloudSessions.xcstrings(openChat,started,chatGone), in all 21 languages: en and ja aretranslated, the othersneeds_review, as the table's existing keys are.release-notes/next/highlights/cloud-start-session-chat-link.md.Defaults I picked
Changelog
Tests
CloudStartSessionAsksTests: a started run leaves a done card with Open Chat and Dismiss, and nothing is revealed before the click. Open Chat on a closed chat says it is gone. The link belongs to its ask, and a later ask takes the card.endAllremoves a done card. The page receives the state asdone.webviews/.../toolCardStore.test.ts: the store keeps a done card and drops an unknown state.started(…)and.donedon't exist yet. The head passes; results are below.Observed / Not run
python3 scripts/cmux-next/prepush-gate.py(no new violations; an advisoryapp-sizewarning for +30 App lines inCloud/, which is where this verb's code already lives).scripts/web-lint.sh(webviewsbun run check) passed.CloudStartSessionAsksTestsandCloudStartSessionTestspassed (cmux-ci run --class light --script scripts/ci/package-test-lane.sh --arg=suite --arg=Packages/macOS/CmuxNext --arg=CloudStartSessionAsksTests,CloudStartSessionTests, step 2de45cd511265ac4e0a34689 on aws-m4pro-7). Red on the tests-only commit 0a542c2: fails as expected (step 3193b0739e5b27d32cc04e47 on aws-m4pro-7):value of type 'CloudStartSessionAsks' has no member 'started'andCloudStartSessionStringshas nostarted/chatGone.Capture: No capture: the card is the existing agent tool card (
AgentPaneToolCard) with a newdonestate. Its webview rendering is the gallery variantagent-pane.tool-cards/started, and the change has no native UI. Dev build: tag25597-chat-links-cloud-session(fleet job d34ae5a9cca53fdedfb63c57).Review: Review (claude review subagent): SHIP at a771afb. Findings and their fixes are in the PR comments.
🤖 Generated with Claude Code