Repository navigation
fix(agent-chat): show ACP plans as structured step lists - #15889
Conversation
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…d status line Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Warning Review limit reachedNext included review available in 6 minutes. View limit detailsLimit details: You’ve used all 10 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (8)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
All contributors have signed the CLA ✍️ ✅ |
teamleaderleo
left a comment
There was a problem hiding this comment.
Review: I checked the ACP adapter normalization, client plan replacement, renderer, provider isolation, and regression coverage. I found no additional issues.
Fixed: I changed the ACP plan update from a truncated status event to structured entries and added the step-list rendering and tests.
Left: I left ACP edit diff attribution untouched because it is outside this ACP plan fix and needs separate files-changed mapping.
|
Merge receipt for |
0e44675 test: bound remote bootstrap subprocess waits (manaflow-ai#15608) a192a14 fix(agent-chat): show ACP plans as structured step lists (manaflow-ai#15889) d7f59a3 ci: place attempt 2 like attempt 1, owned minis first (manaflow-ai#15406) d87c3be feat(agent-chat): register Cursor Agent as an ACP provider (manaflow-ai#15877) 1bd5083 fix: preserve Codex provider for workspace auto-naming (manaflow-ai#15635) 03e1245 fix(worktree-seed): budget each pattern and refuse dangling escapes (manaflow-ai#15860) 5c28fcb fix(agent-chat): stop a disposed ACP session from resurrecting its agent (manaflow-ai#15872) 11216d2 Fix Codex Agent Chat Stop interrupt request (manaflow-ai#15837) d6b8c15 ci: watch Unix cmux-tui installer changes (manaflow-ai#15874) 0fc35d6 feat(agent-chat): register goose as an ACP provider (manaflow-ai#15871) 7f27bfc cmux ssh: security hardening from the ssh audit (manaflow-ai#15768) 8599250 fix(agent-chat): launch gemini with --experimental-acp (manaflow-ai#15868) 849376a docs: classify contributor issue difficulty (manaflow-ai#15627) 2761cc9 Keep agents with live background work out of hibernation (manaflow-ai#15278) eae02a6 Cloud: rebake the devbox ladder with cmux-tui 02dac3c (manaflow-ai#15866) 7ed2f6b ci: bound open pull-request media revisions (manaflow-ai#15861) 13c417c Notify on SubagentStop in the notifications hook docs (manaflow-ai#15854) 5cfc6a6 fix: make cmux-tui installs immutable across release uploads (manaflow-ai#15859) 4eee1b1 fix: preserve longest Claude upstream cooldown (manaflow-ai#15856) 204b936 Pin Cloud panes to the daemon's terminal grid (manaflow-ai#15792) fc13b7c cmux-tui: fix the replay row scroll and stale hook fence tests breaking the full gate (manaflow-ai#15240) 87d66af Add Cloud to the menu bar extra and a main-menu Cloud menu (manaflow-ai#15822) # Conflicts: # .github/workflows/ci-failure-attribution.yml # .github/workflows/ci-macos.yml # .github/workflows/ci-owned-pool-rescue.yml # .github/workflows/ci-queue-janitor.yml # .github/workflows/ci.yml # .github/workflows/cmux-tui-artifacts.yml # .github/workflows/cmux-tui-build-package.yml # .github/workflows/cmux-tui-sdks.yml # .github/workflows/pr-media-prune.yml # .github/workflows/remote-daemon.yml
|
Review, posted after the merge. The session that opened this PR did not post one, so this is mine. The change is good and the test is the strongest of the four agent-chat PRs this week: it drives a fake ACP agent over stdio rather than asserting on a literal. Verified. Commit order is right, test before fix. The fake at Review: a plan from a later turn lands in an earlier turn's position. Review: an in-place plan update does not invalidate the activity key. Review: Review: none of these tests run in CI. Smaller things, all left: Fixed: nothing here, it had already merged. The follow-up covers the first two findings, which are the ones a user would notice. :) |
Summary
The ACP parity review found that
session/updateplan snapshots were reduced to one status line and truncated at 300 characters. Agent chat now carries each plan entry with its text, normalized status, and optional priority, then renders the current snapshot as a small step list. Repeated snapshots replace the prior plan in the client session fold so the transcript does not accumulate copies, while the server event history remains available for reconnects.The visual treatment is deliberately minimal and uses the existing activity styling. The
in_progressstatus is more prominent, and the treatment is open to change as plan presentation evolves.Claude and Codex use their own adapters and emit no plan events here, so their provider paths are unchanged.
The ACP
tool_callupdate withkind: "edit"is an obvious next step: its diff is in the call content, but nothing currently maps that content to the existingfiles-changedpayload. This PR records that gap without changing it.Testing
8fab1189b15:cd agent-chat && bun test test/acp-plan.test.tsreturnedFAIL, withExpected length: 2andReceived length: 0.f69fb037273:1 pass,0 fail,5 expect() calls.cd agent-chat && bun install && bun run check:38 pass,0 fail,103 expect() calls../scripts/localize-changes: localization audit passed with 0 changed message keys and 0 catalog parity errors.Changelog
Changed: Agent chat now shows an ACP agent's plan with per-step status instead of a single truncated line.
Demo Video
Not included because this portable agent-chat change does not require a native app build, and the repository instructions prohibit running one for this verification.
Checklist
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Shows ACP
session/updateplans as structured step lists instead of collapsing each snapshot into a single 300-character status line.unknown, and empty plan updates are dropped.tool_callupdates withkind: "edit"still aren't mapped to the existingfiles-changedpayload; that gap is recorded but not changed here.Written for commit f69fb03. Summary will update on new commits.