Repository navigation
test: fail the Desktop drop fast instead of restarting the app host - #14076
Conversation
CloudDesktopOpenFixture.drop() waited on a catalog notification with no deadline and only on an exact count. On main's run 35862070143 the commit never arrived, capturesClickDestination ran into the suite's 60 s limit, and the resulting host restart made shard 4 incomplete for every test after it; the retried suite then passed in 1.2 s. The wait now checks the count right after the drop, accepts a count at or past the target, and records a normal failure after 10 s. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Warning Review limit reachedNext included review available in 1 minute. View limit detailsLimit details: You’ve used all 10 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (1)
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: Your plan provides up to 10 included reviews per hour; 2 remain after this review. 📝 WalkthroughWalkthroughThe Desktop drop fixture now checks whether the projected count meets or exceeds the expected value. It also bounds the commit wait with a 10-second deadline before asserting that the drop committed. ChangesDesktop drop confirmation
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to The Desktop drop test still detects extra projections and now fails after a bounded wait if the expected projection is not committed. No actionable merge-blocking risk is evident. 🚥 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 |
|
All contributors have signed the CLA ✍️ ✅ |
Independent review at 1a1c5a7No blocking findings. This review read the code; nothing was compiled or run locally, and
— Glitch g1 📚 |
ff6c6dc ci: stop restoring an iOS GhosttyKit cache nothing saves (manaflow-ai#14189) 2827231 ci: seed DerivedData on the 12 vCPU macOS 26 pool (manaflow-ai#14188) ae46aa9 Let Computer Use toggles save past unrelated cmux.json issues (manaflow-ai#14183) a785270 test: fail loudly when portal rendering authority denies a fixture's tab id (manaflow-ai#13937) 9a1dea0 test: pin which terminal tabs get an agent mark after manaflow-ai#14062 (manaflow-ai#14177) 91bcb28 test: run the change-area tests in parallel workers (manaflow-ai#14193) 6d203e8 test: await the geometry publish in the equalize-splits shortcut case (manaflow-ai#13916) 48f1adf ci: balance the guard legs the macOS gate waits on (manaflow-ai#14186) 38117cd test: settle the split's reparent-focus suppression before focus feedback (manaflow-ai#14049) a12a0b8 ci: neutralize Swift sources without a per-character loop (manaflow-ai#14169) 2b6ca4c ci: stop counting queue time on cancelled jobs as runner minutes (manaflow-ai#14187) 2837f22 test: stop gating terminal focus on key status the app host cannot grant (manaflow-ai#13948) 23c0ce2 test: give each detect-step run its own cmux-ci scratch files (manaflow-ai#14185) a13ea28 ci: skip Mac lanes that bundled scripts and guard-only lints cannot fail (manaflow-ai#14179) b59f34f ci: restore Swift packages and a compilation cache for iOS uploads (manaflow-ai#14180) bcca243 profiling: poll child processes every 0.1 s instead of every second (manaflow-ai#14170) 76d6176 refactor: move 45 leaf browser files into CmuxBrowser (manaflow-ai#14092) bf13034 test: fail the Desktop drop fast instead of restarting the app host (manaflow-ai#14076) 51d486b ci: start guards and web beside Fast static checks (manaflow-ai#14176) # Conflicts: # .github/workflows/ci-guards.yml # .github/workflows/ci.yml # .github/workflows/ios-appstore-upload.yml # .github/workflows/ios-testflight.yml # .github/workflows/nightly.yml # .github/workflows/seed-derived-data.yml # .github/workflows/test-ios.yml
* ci: make a changed-suites run prove a known-failure fix The app-host ratchet tolerates every test listed in app-host-known-failures.json. In a PR's changed-suites run that makes a fix unprovable: #14076 went green while the suite it fixed failed 4/4, because the test was already listed. In changed-suites mode (CMUX_APP_HOST_UNIT_SELECTORS set), a listed test that passes now fails the run with RATCHET_KNOWN_NOW_PASSING and asks the PR to drop the entry. Once it is dropped, the same run must pass on its own merits. Main's full shards only report it, since a flaky entry can pass on any one run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ci: keep naming tolerated known failures when a known entry passes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…#14304) * test: give the Cloud Desktop fixture a routable window for pane drops "A queued Desktop click retains its same-VM destination like a drop" fails its drop on main (every case since run 35979983434): the catalog keeps one projection and the commit wait times out after 10s. The drop targets `.split(targetPane:)`. SurfacePaneFactory resolves that pane's anchor through TerminalController.v2LocatePane, which walks listMainWindowSummaries. That list skips any registered context without a window, and VaultPaneAppFixture registers its context with `window: nil`. So the lookup returns nil, the factory throws paneNotFound, and handleSurfaceResourceDrop's Task swallows the error. The click path is unaffected because it targets `.workspace(_, .split)` and never locates a pane. The same suite failed 4/4 run on its own in #14076's changed-suites lane and hung once on main before that (run 35862070143), so it depended on test order rather than on a product change. Give the fixture's context a task-owned NSWindow that is never shown, forget its route on close, and require the pane lookup before the drop so a routing failure is reported where it happens. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test: keep the Cloud Desktop fixture window hidden and never key With a routable window, the opens and drops in this suite request focus, and focusMainWindow now resolves the fixture window and would order it front and make it key on a shared app-host runner. Stub the fixture delegate's visibility controller with activation suppressed, as #13938 does, which needs the property to be internal instead of private, and expect the window to stay hidden and not key around every action. Also require the drop to be accepted and the located route to match the fixture's manager and pane. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ci: drop the fixed Desktop drop test from the known-failure catalog With the fixture fixed, capturesClickDestination must pass instead of being tolerated as a known main failure, so this PR's changed-suites run proves the fix rather than passing either way. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test: assert the fixture window is hidden after init completes Swift rejects a method call on self before every stored property is set. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
CloudDesktopOpenFixture.drop()waits for aSurfaceCatalognotification with no deadline, and only for an exact projection count. On main's full-suite run 35862070143, shard 4'scapturesClickDestination(hasRemoteView: false, menu: false)never saw that notification. The test ran into the suite's 60 s time limit, which restarted the app host. The restart marks the whole shard incomplete, so the known-failure catalog cannot tolerate it. The same suite passed in 1.2 s after the restart.The wait now:
A missed commit now fails as an ordinary test instead of taking the shard down with it.
Not verified: this is test-only code. It is compiled by
macOS compile admissionand has not been run here.— Glitch g1 📚
🤖 Generated with Claude Code
Summary by cubic
Fixes
CloudDesktopOpenFixture.drop()so a missed Desktop commit fails the test after 10 s instead of hitting the suite's 60 s time limit, which restarted the app host and marked the whole shard incomplete.Bug Fixes
Written for commit 7a6d769. Summary will update on new commits.
Summary by CodeRabbit