Repository navigation
Keep client identity cache responsive during file lock waits - #11795
Conversation
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. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Team Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 1 remains after this review. 📝 WalkthroughWalkthroughChangesClient identity transactions
Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk: ⚪ Minimal · up to The identity store now keeps cached reads responsive during owner-file lock contention while retaining transactional cache publication; no current merge-blocking risk remains. Sequence Diagram(s)sequenceDiagram
participant Client
participant ClientIdentityStore
participant StateFile
participant ClientStateCache
Client->>ClientIdentityStore: mutate client identity state
ClientIdentityStore->>StateFile: acquire owner lock and reload state
StateFile-->>ClientIdentityStore: return persisted state and generation
ClientIdentityStore->>StateFile: commit generation-checked candidate
StateFile-->>ClientIdentityStore: return persisted commit result
ClientIdentityStore->>ClientStateCache: publish committed state
ClientIdentityStore-->>Client: return mutation result
🚥 Pre-merge checks | ✅ 13 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (13 passed)
Full details: Description checkExplanation The description explains what changed, why it changed, and how it was tested. However, it does not follow the repository template because it omits the required section headings, Demo Video information for this behavior change, Review Trigger block, and Checklist. Resolution Rewrite the description using the repository template. Add the Summary and Testing headings, include a Demo Video link or state why none is available, include the Review Trigger block, and complete the Checklist with the current testing and review status. Full details: Cmux Swift Actor IsolationExplanation PASS: The exact pull-request range changes no Swift files. It changes Rust, TypeScript, Python, and workflow files only, with the identity-store change in Full details: Cmux Swift Blocking RuntimeExplanation PASS: The pull request changes only Full details: Cmux Browser Automation Off-MainExplanation PASS. The pull request does not change browser socket automation. The diff changes Full details: Cmux Expensive Synchronous LoadExplanation PASS: The pull request changes only Full details: Cmux Cache Substitution CorrectnessExplanation PASS: The described PR range changes only Full details: Cmux No Hacky SleepsExplanation PASS: The PR changes only Full details: Cmux Algorithmic ComplexityExplanation PASS. The pull request changes only Full details: Cmux Swift ConcurrencyExplanation PASS: The pull-request diff contains only Full details: Cmux Swift `@Concurrent`Explanation PASS: The pull request changes only
✨ Finishing Touches 💡 2📝 Generate docstrings 💡
🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
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 ✍️ ✅ |
1e104ef to
63fda82
Compare
63fda82 to
f75f08f
Compare
4e30be8 cloud: compact access screen with the app icon (manaflow-ai#11819) 2558039 fix(cmux-tui): restore rustfmt import order (manaflow-ai#11808) f4e3d4f Keep client identity cache responsive during file lock waits (manaflow-ai#11795) 69dfcd1 fix(cmux-tui): make workspace clippy green and lint in every hosted lane (manaflow-ai#11796) 0f19be0 cloud: static model-plane env baked into the snapshot; create writes nothing into the guest (manaflow-ai#11813) c03ec18 cloud: add authenticated public VM domains (manaflow-ai#11692) e4325ab fix(cmux-tui): validate relay CLI values # Conflicts: # .github/workflows/cmux-tui.yml
* test(remote): cover client identity lock contention * fix(remote): separate identity cache from file locking
The client identity store now keeps its in-memory cache lock separate from owner-file waits and disk I/O. A cache generation check retries a transaction when another local update completes during the file-lock wait. The owner-file lease still covers the disk transaction and matching cache publication.
The first commit adds the regression test. It failed on the old code because a cached read timed out behind a contended owner-file lock. The second commit fixes the lock scope.
Tests:
cmux-remotepackage suite on Linux, 516 unit tests plus integration testscmux-remoterustfmt --checkandgit diff --checkSummary by cubic
Fixes the client identity store so cached reads don't block while another process holds the owner-file lock. The cache lock is no longer held across file-lock waits and disk I/O; a generation check retries the reload when a local update lands during the wait, and a commit that races a newer update returns an error instead of overwriting it.
Bug Fixes
Written for commit f75f08f. Summary will update on new commits.
Summary by CodeRabbit