Repository navigation
Fix updater getting stuck preparing a check - #16664
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. |
|
All contributors have signed the CLA ✍️ ✅ |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. 🧰 Additional context used📚 Code guidelines (2)No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 1 remain after this review. 📝 WalkthroughWalkthroughThe updater now reuses an active readiness task, clears its task reference when readiness succeeds or times out, and preserves the readiness retry when a cycle finishes with a pending check. ChangesReadiness check handling
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix · Severity of issue fixed: Medium Merge Risk: ⚪ Minimal · up to Cancel returns the updater to idle and a later manual check can retry. No material user-facing risk was identified in this change; it is mergeable subject to normal checks. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The change restores a bounded update-readiness wait. A cancellation-and-replacement interleaving could nevertheless leave a newer wait untracked, weakening cleanup of subsequent update requests. No new installation permission or update-policy bypass was established. Retained concerns
Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 24 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (24 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 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 |
|
Merge receipt for
Labeled |
541c735 fix(remote): reject unknown Eternal Terminal equals options (manaflow-ai#15987) ecb963b fix(cli): reject trailing remotes list/remove arguments (manaflow-ai#15978) 17a8a94 ci: pass the frame pacing fling count as an argument (manaflow-ai#16617) aa6f57e app sign-ins confirm the account, so sign out then sign in can pick another one (manaflow-ai#16661) 4adc8e4 Fix updater readiness wait reset loop (manaflow-ai#16664) 6f77178 Keep only Invite in Cloud sidebar header (manaflow-ai#16636) 72f2915 notify: add --desktop flag to post to the panel without a native banner (manaflow-ai#14688) 4ba0d8a Expose per-surface prompt and unread state to custom sidebars (manaflow-ai#11142) b3da20c Allow browser drags across Cloud workspaces (manaflow-ai#16390) 6529dfd Stop retrying Cloud terminals on stale replay daemons (manaflow-ai#16327) b10f7e2 test: create the requested cwd in the stale-reported split test (manaflow-ai#16653) 9b5b35f Fix Computer Use onboarding readiness after permissions are granted (manaflow-ai#14281) c45da7e Merge pull request manaflow-ai#16623 from manaflow-ai/fix-ios-cloudvpn-appstore-signing 6e67724 fix: close CloudVPN profile and identity gaps 7e9d6ab fix: sign CloudVPN in App Store exports 1984d1e test: cover App Store CloudVPN signing # Conflicts: # .github/workflows/cmux-next-frame-pacing.yml # .github/workflows/ios-app-store.yml # .github/workflows/ios-appstore-upload.yml
Problem
A manual update check could stay on
Preparing Update Check…indefinitely when Sparkle reported repeated cycle-finished callbacks while its session was still unavailable. Each callback cancelled and restarted the same readiness poll, so the bounded timeout never necessarily elapsed.Fix
Keep one readiness poll alive for the current request. Repeated Sparkle callbacks now reuse that poll instead of resetting its deadline. The task is cleared explicitly when it starts the check or reports the not-ready error, so retries remain available.
Closes #16660
Validation
swift test --package-path Packages/macOS/CmuxUpdater --filter UpdateControllerPipelineTests(18 passed)git diff --checkChangelog
Fixed update checks getting stuck on “Preparing Update Check…”.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Fixes update checks getting stuck on “Preparing Update Check…” when Sparkle reports repeated cycle-finished callbacks while its session is unavailable.
Previously, each callback cancelled and restarted the same readiness poll, so the bounded timeout never elapsed. Now a single readiness poll stays alive for the current request, and repeated callbacks reuse it instead of resetting its deadline. The poll task is cleared explicitly when the check starts or when the not-ready error is reported, so retries remain available.
Closes #16660.
Written for commit de64650. Summary will update on new commits.
Summary by CodeRabbit