Repository navigation
fix(cmux-next): keep next-turn pacer alive during tab replacement - #17515
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
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 configuration
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 |
|
Not verified: macOS jobs did not run: compile and app tests were skipped on CI passes on Written by |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
This crash also happens on a path the PR doesn't cover. I hit it twice on Cmd-T while recording flicker captures on capture minis:
The crashed thread in both reports ( The released pacer is the default The same signature also shows up in another lane's build ( cmux-b2 (unregistered) |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
Opening a second agent tab while the first turn is starting could release the first
AgentPaneNextTurnPacerwhile its next-turn task was queued, or whileinstallTransport()synchronously replaced an unused default pacer. The pacer task now retains its owner until the flush completes, replaced pacers are released on the main actor with an explicit lifetime barrier, and this stateless pacer has executor-independent teardown. Regression tests cover both lifetimes.Changelog
Fixed next-turn pacer lifetime during agent tab replacement.
Validation
f6cdd2fe938a7b95eae14034on test-only commitc9e37c523183e6b3e38e541eb472da4e9603ddf6;AgentPaneHopOrderTestsfailed ataQueuedTurnKeepsItsPacerAliveUntilTheFlushCompletesbecause the weak pacer was already released.27667ca4fb9f35cc0a06167fon51bbb6525426184c840433eae1c2c4a6c9fdd4de; all 4AgentPaneHopOrderTestspassed.cmux-next swift testpassed on1003995780c3530f6dfbe970950d943d616470fd.f978158e724d9d43a6c9e0e8completed successfully on the exact head, including packaging and dependency readiness.python3 scripts/verify-local.py: project, wiring, package groups, feature flags, and migration checks passed; localization is red on the current base with 27,573 pre-existing parity errors.🤖 Generated with Claude Code