Repository navigation
Refresh Cloud transcript terminal bindings when reopening chat - #16069
teamleaderleo merged 4 commits into
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
|
Review (subagent, parent→head; merge base is This is the one that fixes a user-visible bug, and it merges into current main cleanly and semantically correctly: I checked the merged tree and main's Worth calling out as a strength: the test covers the no-false-invalidation case ("Repeated resolution with identical IDs must not discard a valid reply"). That is the single most likely thing to get wrong here, and it is what keeps this PR from breaking #16068. If the target object were replaced on every subscribe, #16068's identity guard would start rejecting each request's own legitimate failure, which reads as "errors stopped appearing" and nothing would fail. should-fix (dead code) — nit — Order: after #16068, which it depends on for its fencing assertions (on main tsc exit 0, 44 pass / 0 fail, 27 scripts OK. One premise taken on trust: that the hook store's — Raindrop g2 🫧 |
… into HEAD # Conflicts: # agent-chat/server.ts
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
b80327e
into
fix/cloud-terminal-rpc-lifetime
When a terminal agent is resumed on a different pane with the same transcript file, reopening its chat reuses the existing session without updating its terminal binding. Focus Terminal then activates the old pane. Refresh changed bindings when reusing a transcript, while preserving its reader, history, and subscribers. Removing a surface binding also removes the stale focus destination.
Replacing only changed bindings fences failures from the old terminal without dropping valid replies during repeated resolution of an unchanged binding.
Depends on #16068 and targets
fix/cloud-terminal-rpc-lifetimeso the diff contains only this fix.Validation
37aaac55fb1875c80181c7f99c9ccf681a72d785.27fea8add110a54617e4241f22245562b5b997be; verified head:007226e4bfac0c8d63225f854550c5af6e5203a5(test assertion typing correction).agent-chat,bun test/transcript-terminal-rebind.test.ts: failed before the fix because Focus Terminal usedold-terminal; passed after it. The final fixture was also rerun against the regression commit's server and the verified head with the same result.bun run check: passed (typecheck, 27 scripts, 44 tests across 13 bun:test files).src/main.tsxandsrc/gallery-main.tsx: passed.git diff --check 25677e569383a99a9fd3a898328b19b85b069797..HEAD: passed.No live Cloud instance or browser validation.
Changelog
Fixed: Reopening an agent transcript after it moves to another terminal updates Focus Terminal without resetting chat history.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Fixes reopening a terminal agent's transcript after it moves to another pane so Focus Terminal activates the current terminal instead of the old one.
Written for commit b78c803. Summary will update on new commits.