Repository navigation
fix(remote): evict stale persistent SSH bridge leases - #16558
Conversation
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. |
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 3 minutes. View limit detailsLimit details: You’ve used all 10 included reviews currently available. Review configuration: ⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (5)
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 ✍️ ✅ |
There was a problem hiding this comment.
No issues found across 5 files
You’re at about 90% of the monthly reviewed-line limit. You may want to disable incremental reviews to conserve quota. Reviews will continue until that limit is exceeded. If you need help avoiding interruptions, please contact contact@cubic.dev.
|
Current |
|
Merge receipt for
|
0bfd027 test(cloud): fix the Cloud header and moved-panel focus tests that never ran (manaflow-ai#16539) c5c4345 localization: accept numbered placeholders in any order (manaflow-ai#16376) 456edeb fix(settings): replace custom sidebar mockups with real previews (manaflow-ai#16569) 98dc3ab Prototype: cmux Cloud as a remote MCP server (manaflow-ai#16568) 6c22525 test(remote): isolate tmux stale-surface fixture (manaflow-ai#16566) 3ec9918 Re-land "fix(coderouter): initialize Cloud VM account pools (manaflow-ai#16397)" (manaflow-ai#16572) 2b895a5 Fix browser paste routing with terminal text box beta (manaflow-ai#6380) (manaflow-ai#16560) 2bd3455 localization: check Swift defaultValue literals against their catalog en value (manaflow-ai#16396) c43086e test(cli): expect --mark-read to mark every listed inbox message (manaflow-ai#16537) fcda4f0 test(feed): wait for zero-wait Codex permission acceptance before checking attention (manaflow-ai#16536) 7d57a03 fix(remote): evict stale persistent SSH bridge leases (manaflow-ai#16558) d630cb8 docs: add protected-folder diagnostics for tmux sessions (manaflow-ai#12219) 7dceaac test: create cwd fixtures that new terminals now resolve on disk (manaflow-ai#16538) 28cc575 docs: cover surface resume binding CLI contract (manaflow-ai#16473) 5c7dca1 Fix idle zsh PR probes triggering chpwd hooks (manaflow-ai#16553) # Conflicts: # .github/workflows/ci-guards.yml
Closes #10367
When an SSH channel goes half-open, its remote
serve --stdio --persistentbridge can stay authenticated forever and hold the slot. A reconnect then cannot reach the persistent daemon until the stale bridge is killed manually.This adds a fresh authenticated
bridge_lease_idto each persistent stdio bridge. The persistent daemon tracks accepted connections and lets the newest bridge evict older and legacy connections while preserving the shared PTY hub and sessions. Authentication failures remain sanitized, and socket dials use context-aware timeouts.Regression-first commits:
9519943540daddsTestPersistentDaemonBridgeLeaseTakeoverClosesStaleConnection. On currentmain, it fails because the stale bridge read reaches its deadline.7f7b179c704adds lease takeover and coverage that preserves PTY reattach behavior.Verification:
go test ./cmd/cmuxd-remote -run 'TestPersistentDaemon(AuthenticatedBridgeLeaseTakeoverEvictsStaleHolder|BridgeLeaseTakeoverEvictsLegacyAuthenticatedConnection)' -count=1go test -race ./cmd/cmuxd-remote -run 'TestPersistentDaemon.*(BridgeLease|PTYReattachSurvivesClientDisconnect)' -count=1git diff --checkThe package-wide Go run still has an unrelated existing failure in
TestTmuxStaleInheritedSurfaceCannotRetarget.— Cattail g1 🔸
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Closes #10367. A half-open SSH channel keeps the remote persistent bridge authenticated forever, holding the slot and blocking reconnects from reaching the daemon. Each persistent stdio bridge now sends a fresh authenticated
bridge_lease_idso the newest bridge evicts stale and legacy connections while preserving the shared PTY hub and sessions.Written for commit 7f7b179. Summary will update on new commits.