Repository navigation
fix(agent-chat): scope ACP plans to their turn and refresh activity - #15898
Conversation
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… key Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Warning Review limit reachedNext included review available in 8 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 (4)
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 per-turn fold boundary, activity key state inputs, normalization exports, summary behavior, and the focused regression coverage. I found no additional issues.
Fixed: I scoped plan replacement after the latest user event and keyed plan activity by status and priority without including entry text.
Left: I left the duplicated server and browser AgentEvent unions in place because consolidating their ownership needs a separate design and migration.
|
Merge receipt for
|
|
Review, posted after the merge. Auto-merge took this before the review landed, so this is a read of the merged commit rather than a gate. Both findings I raised on #15889 are addressed, and the shapes are right: the turn start is found by walking back to the last One defect the change introduced, on main now:
Fixed: nothing in this PR, it is merged. Left: the one-line fix and its two test cases are in #15907 (a positional |
ecba57a fix(sidebar): cut with an ellipsis character so a reference cannot re-parse (manaflow-ai#15893) 6d2b5d1 feat(terminal): browser-style navigation layout and a terminalAlternateScreen shortcut key (manaflow-ai#14863) 0d3fdb1 test: print the simulator pipe output when the EOF assertion fails (manaflow-ai#15857) 46fe41a Fix cloud dogfood pause link-down journey (manaflow-ai#15918) 7d246ed fix: open existing Cloud workspace rows optimistically (manaflow-ai#15747) 1b06f84 fix(agent-chat): show ACP paths and diffs for tool calls (manaflow-ai#15908) b413b7a fix(agent-chat): preserve earlier ACP plans during updates (manaflow-ai#15907) 8b75678 Persist Cloud display membership across clients (manaflow-ai#15748) 547340a fix(cloud): carry the machine author from /api/vm to the machine row's snapshot (manaflow-ai#15309) e30de3d test: probe cloud agent status in Cloud VM journey (manaflow-ai#15875) 296537c docs(agent-chat): correct provider claims and pin ACP argv (manaflow-ai#15901) e1dc959 Count the renamed Agent spawn tool as a subagent in the pi bridge (manaflow-ai#15865) 14fae18 dogfood: record the hover steps as trees, not frames (manaflow-ai#15845) 4da3bb3 fix(agent-chat): scope ACP plans to their turn and refresh activity (manaflow-ai#15898) 64ec56d feat(terminal): right-click a link to choose where it opens (manaflow-ai#15325) efb762c Make unsupported remote browser warning dismissible (manaflow-ai#15726) 666c77f Cloud Machines sidebar: add persistent create buttons (manaflow-ai#15680) # Conflicts: # .github/workflows/cloud-vm-dogfood.yml
Summary
This follow-up to #15889 fixes two review findings in ACP plan handling. A plan update now replaces only the plan in the current turn, using the last
userevent as the boundary shared byfoldEventandgroupTurns. A plan in a later turn therefore remains in that later turn instead of replacing an earlier plan in place.activityTailKeynow includes each plan entry's status and priority, while excluding entry text. An in-place status change therefore refreshes the activity row without making long task text part of the key. The genericsummarizeTurnActivitycount remains sensible because each turn has one current plan snapshot and the expanded activity shows its entries.The ACP normalization helpers are private because the adapter is their only consumer. The server event union in
agent-chat/types.tsand the browser copy inagent-chat/src/session.tsremain hand-synced by design for this follow-up. The next structural fix should give one module ownership of the union and have the other re-export it, or add a parity test that catches drift when a new event variant is added.Testing
f5024d4e534:cd agent-chat && bun test test/plan-scope.test.tsreturned2 fail, including the later-turn plan count of[1, 0]and identical1:unknownactivity keys.1daa7434362: the same command returned2 pass,0 fail,5 expect() calls.cd agent-chat && bun install && bun run check:41 pass,0 fail,109 expect() callsacross 12 Bun test files and 22 scripts.python3 scripts/verify-local.py: selected 15 of 16 checks; all 15 selected checks passed. Native compilation, app tests, and app launch were not selected for this TypeScript-only change../scripts/localize-changes: localization audit passed with 0 changed web message keys and 0 catalog parity errors.Changelog
Fixed: A second ACP plan in a conversation no longer replaces the first plan in place.
🤖 Generated with Claude Code
Summary by cubic
Fixes two review findings in ACP plan handling: plans now stay within the turn where they arrive, and activity rows refresh when a plan entry's status changes.
userevent as the boundary shared byfoldEventandgroupTurns; a later-turn plan no longer replaces an earlier plan in place.activityTailKeynow includes each plan entry's status and priority while excluding entry text, so a status change refreshes the row without making long task text part of the key.agent-chat/types.tsand the browser copy inagent-chat/src/session.tsremain hand-synced by design.Testing
plan-scope.test.tscovers per-turn plan scope and plan activity keys.Written for commit 1daa743. Summary will update on new commits.