Repository navigation
test: keep terminal startup out of the sidebar unread invalidation window - #14258
teamleaderleo merged 1 commit into
Conversation
…test testUnreadChangeUpdatesOnlyAffectedSidebarRow failed once on main (run 36022521492, 674b92f, :400 verticalTabsSidebarBody 1 == 0) and passed on the run just before it (36021096031, 1ecdcf9) and on the four runs before that. The commits between the passing and failing SHAs change only CI workflows, docs and CI tests, so the failure is timing, not a product regression. The fixture used TabManager() and a default addWorkspace, which gives two terminal workspaces. The selected one starts a login shell during the test (io_exec lines in the shard log) and each schedules an initial git metadata probe. Either can publish a workspace change after counts.reset(), and workspace changes legitimately re-evaluate VerticalTabsSidebar, so the count depended on runner speed. Build the fixture the way testMinimalModeToggleDoesNotReevaluateChromeHeavyBodies does since manaflow-ai#13643: no initial or welcome workspace, loading-card workspaces, and finalize them on teardown. Arm _printChanges tracing for the measured interval so a future failure names what invalidated the sidebar. Every assertion is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
All contributors have signed the CLA ✍️ ✅ |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. 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; 0 remain after this review. 📝 WalkthroughWalkthroughThe unread sidebar invalidation test now creates explicit loading-card workspaces, measures probe invalidations only during the unread update, and finalizes all workspaces during cleanup. ChangesUnread sidebar invalidation test
Estimated code review effort: 2 (Simple) | ~8 minutes Suggested reviewers: Merge Risk: ⚪ Minimal · up to The fixture preserves the shared unread-row invalidation path and verifies both affected and unaffected rows. No actionable merge risk is established. 🚥 Pre-merge checks | ✅ 24 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (24 passed)
✨ Finishing Touches🧪 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 |
40adc27 ci: drop compile admission's reads of the retired persistent-restore step (manaflow-ai#14260) 9415c2d fix(nushell): stop hiding the claude wrapper for every session (manaflow-ai#14263) 710ea01 Pace mobile render-grid frames per surface: dynamic ~11fps floor with keystroke-echo bypass (manaflow-ai#14031) c6f41e7 ci(e2e): wait for an earlier dispatch's compile of the same revision (manaflow-ai#14240) e3ac98d test: keep live terminals out of the unread sidebar-row invalidation test (manaflow-ai#14258) 464fe13 ci: compare build inputs by content so an adopted seed rebuilds only real changes (manaflow-ai#14262) ee95353 test: judge renderer retention after the async release lands (manaflow-ai#14247) eeb5d53 ci: skip a main seed build only when the nearest seed has the same inputs (manaflow-ai#14261) 55d9b75 ci: clone the canonical build root instead of rsyncing it (manaflow-ai#14254) # Conflicts: # .github/workflows/ci-guards.yml # .github/workflows/ci-macos.yml # .github/workflows/seed-derived-data.yml # .github/workflows/test-e2e.yml
testUnreadChangeUpdatesOnlyAffectedSidebarRowfailed on main run 36022521492 (674b92f) and passed on 36021096031 (1ecdcf9). Nothing inSources/orcmuxTests/changed between them, so the failure is a timing flake in the fixture, not a product regression.Cause
The test built its fixture with
TabManager()and a defaultaddWorkspace, so it had two real terminal workspaces. During the measured interval, the selected terminal starts a login shell (the shard log showsio_exec: started subcommand path=/usr/bin/logininside the test), and each terminal workspace schedules a git metadata probe (autoRefreshMetadatadefaults to true). Either can publish a workspace change aftercounts.reset(), and a workspace change legitimately re-rendersVerticalTabsSidebar. Whether it lands inside the window depends on runner speed.The unread change itself does not touch the sidebar body: the badge goes through
SidebarUnreadModelto the AppKit row, and the per-row assertions passed in the failing run.Change (test only)
testMinimalModeToggleDoesNotReevaluateChromeHeavyBodiesdoes since Make app-host unit tests green on main #13643: no initial or welcome workspace, and two.cloudVMLoadingworkspaces. That fixture passed the same body-count checks on main runs 36021096031 and 36022521492._printChangestracing only during the measured interval, so any future failure names what re-rendered the sidebar.Residual risk: the test no longer covers unread routing for terminal-backed workspaces. The badge path is keyed by workspace id, so the panel type should not matter.
🤖 Generated with Claude Code
Summary by CodeRabbit