Skip to content

test: release offscreen terminal fixtures before the next suite - #15322

Merged
teamleaderleo merged 4 commits into
manaflow-ai:mainfrom
teamleaderleo:fix/window-portal-cluster
Sep 28, 2026
Merged

teamleaderleo merged 4 commits into
manaflow-ai:mainfrom
teamleaderleo:fix/window-portal-cluster

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

The full suite no longer lets window-test fixtures leak process-wide backdrop changes or native terminal frees into later suites.

  • Run the glass and non-glass overlay cases sequentially because both temporarily change process-wide window defaults.
  • Retain offscreen terminal panels and managers until teardown, then release their native surfaces and workspaces through the existing test helpers.

Testing

Impact map

  • Source of truth: test fixture lifecycle in TerminalOffscreenStartupTests and process-global window backdrop defaults used by WindowOverlayChromeTests.
  • Direct consumers: the overlay argument cases and later portal lifecycle suites in the shared app-host process.
  • Cross-surface effects: test-only; production sources are unchanged.
  • Residual risk: cleanup uses existing synchronous test release and workspace-close helpers; hosted CI must confirm the native lifecycle behavior.

Review

Independent and isolated structured reviews found no actionable issue in the exact test-only patch. CodeRabbit reviewed the current head and reported minimal merge risk with no actionable comments; Cursor supplied only a spend-limit notice.

— Mochi

Mergeability

  • Base SHA: 8743ec8c36ebf59badf47b499b780adc310a1f11
  • Head SHA: d70294cc4afd807420ba4d53ab9095ae68da9342
  • Conflict-only gate: passed; speculative merge 1859b95ed1608333ce6ee3800b8a2616a996fe0c.

Changelog

none

@coderabbitai

coderabbitai Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

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 configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 1743d7e2-e95a-4f9b-b76e-1e2a9d47bc21

📥 Commits

Reviewing files that changed from the base of the PR and between 4976241 and d70294c.

📒 Files selected for processing (1)
  • cmuxTests/WindowOverlayChromeTests.swift

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 1 remain after this review.


📝 Walkthrough

Walkthrough

Terminal offscreen startup tests now track created panels and managers. Teardown releases hosted surfaces and closes managers. The browser-and-terminal chrome test runs its glass-setting cases sequentially.

Changes

Terminal test resource cleanup

Layer / File(s) Summary
Track and clean up terminal test resources
cmuxTests/TerminalAndGhosttyTests.swift
The test class tracks panels and managers. Teardown releases tracked hosted surfaces and closes tracked managers. Panel- and manager-based tests use the tracking helpers.

Overlay chrome test execution

Layer / File(s) Summary
Run glass-setting cases sequentially
cmuxTests/WindowOverlayChromeTests.swift
The test iterates over false and true and invokes a helper for each setting.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Suggested reviewers: austinywang

Merge Risk: ⚪ Minimal · up to d7029

This change only affects test cleanup and test execution order in the test suite; it does not alter shipped application behavior and poses no merge-blocking risk.

🚥 Pre-merge checks | ✅ 24 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 5.88% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 34 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (24 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Cloud Persistent Session And Early Input ✅ Passed PASS. The authoritative diff changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. It adds test-fixture tracking and teardown cleanup, replaces test-lo…
Cmux Swift Actor Isolation ✅ Passed PASS. The authoritative PR diff changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. The changes are test fixture cleanup and test serialization; `Ter…
Cmux Swift Blocking Runtime ✅ Passed PASS. The PR changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. The diff adds test fixture tracking, teardown cleanup through existing test helpers,…
Cmux Browser Automation Off-Main ✅ Passed PASS: The PR changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. It does not change Sources/TerminalController.swift, the control-socket execution …
Cmux Expensive Synchronous Load ✅ Passed The pull request changes only two files under cmuxTests/: TerminalAndGhosttyTests.swift and WindowOverlayChromeTests.swift. No production Swift path changes, and no added lines contain the speci…
Cmux Cache Substitution Correctness ✅ Passed PASS: The authoritative diff changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. These are test fixtures and test sequencing changes. No production S…
Cmux No Hacky Sleeps ✅ Passed PASS: The pull request changes only two Swift test files under cmuxTests/. It introduces no TypeScript, JavaScript, shell, or build/runtime script changes. The custom check does not apply.
Cmux Algorithmic Complexity ✅ Passed PASS: The PR changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. The added loops and tracking arrays are test fixtures with small, test-scoped lifeti…
Cmux Swift Concurrency ✅ Passed The PR changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. Added code tracks fixtures, performs synchronous cleanup in XCTest tearDown(), and runs …
Cmux Swift @Concurrent ✅ Passed PASS. The PR adds only synchronous tracking, teardown, and sequential test helpers. The diff adds no @concurrent, nonisolated, async, or Task syntax. Existing async test declarations and `wait…
Cmux Swift Package Boundaries ✅ Passed PASS: The pull request changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. The changes are test fixture cleanup and test serialization. No production…
Cmux Swiftpm Lockfiles ✅ Passed PASS: The review-scoped diff changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. It contains no Package.swift, Package.resolved, .gitignore, wo…
Cmux Swift Logging ✅ Passed PASS. The PR changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. The diff adds no logging calls or diagnostic file/stdout logging. The existing `prin…
Cmux User-Facing Error Privacy ✅ Passed The authoritative PR diff changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. The changes add test fixture tracking/teardown and serialize test cases…
Cmux Full Internationalization ✅ Passed PASS: The PR changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. The additions track test fixtures, perform teardown cleanup, and serialize test case…
Cmux Swiftui State Layout ✅ Passed PASS. The PR changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. The changes add XCTest fixture tracking and teardown cleanup, and replace parameteri…
Cmux Architecture Rethink ✅ Passed PASS. The PR changes only cmuxTests files. TerminalOffscreenStartupTests adds local fixture tracking and teardown that uses existing releaseHostedSurfaceForTesting() and `closeWorkspacesForTesti…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PASS. The pull request changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. The changes add test-fixture tracking and teardown cleanup, and serialize …
Cmux Source Artifacts ✅ Passed The PR changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. The diff contains hand-written test fixture cleanup and test sequencing changes. It adds n…
Cmux No Test Or Debug Seam In Production Source ✅ Passed The pull request changes only cmuxTests/TerminalAndGhosttyTests.swift and cmuxTests/WindowOverlayChromeTests.swift. It changes no Swift file under a production Sources/ path, so it cannot introd…
Title check ✅ Passed The title clearly identifies the primary change: releasing offscreen terminal fixtures before later test suites run.
Description check ✅ Passed The description includes a clear summary, detailed testing results, impact and residual-risk information, and a valid internal-only changelog entry. The omitted checklist is non-critical because the r…
  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@teamleaderleo teamleaderleo added the full-ci EXPENSIVE: full macOS tests/builds; overrides selective PR routing. Not needed for normal checks. label Sep 28, 2026
@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

CI failure attribution

CI passes on d70294cc4a (run 36430234143 attempt 1).

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's.

@teamleaderleo
teamleaderleo force-pushed the fix/window-portal-cluster branch from 632f57c to fa13c48 Compare September 28, 2026 11:27
The three DEBUG mobile tests built untracked RecordingMobileTabManager
instances whose workspaces hold terminals, so their surfaces could
still be freed in a later suite. Track them like the others.

The window backdrop change rested on argument cases running
concurrently, which a serialized suite does not do; each case is one
synchronous main-actor turn. Drop it so it cannot mask what removes the
glass root.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@teamleaderleo teamleaderleo changed the title test: isolate window backdrop and offscreen terminal fixtures test: release offscreen terminal fixtures before the next suite Sep 28, 2026
@teamleaderleo
teamleaderleo enabled auto-merge (squash) September 28, 2026 12:25
@cursor

cursor Bot commented Sep 28, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot 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.

@teamleaderleo
teamleaderleo merged commit cd9d1c9 into manaflow-ai:main Sep 28, 2026
60 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Merge receipt for d70294cc4a: every check was green at merge (19 verified; 13 skipped by policy). Full suite runs on main after merge.

rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 28, 2026
9eb402d Sidebar: opt-in compact status glyph for agent, PR and branch state (manaflow-ai#14838)
0b2d3e0 ci: run CmuxCloud package tests and move 22 Cloud logic suites out of the app host (manaflow-ai#15333)
defccda fix(cloud): say a machine's id and age in its accessibility label (manaflow-ai#15326)
8b23dd7 ci: re-run lost-runner jobs; end the UI wait when compile admission fails (manaflow-ai#15400)
734cff3 ci: let the UI test lane replay the fuzzer regressions (manaflow-ai#15401)
c9b235a Refuse a split that would leave a pane below its minimum size (manaflow-ai#15392)
56eacd4 Describe memory-pressure hibernation the way it works (manaflow-ai#15290)
da27bbc ci: passing guard tests print no ::error annotations (manaflow-ai#15399)
93d0706 ci: explicit owned E2E runs take root runners; rescue jobs waiting in setup (manaflow-ai#15402)
f12f578 PR media: keep each tour's folder through the artifact hand-off (manaflow-ai#15405)
cd9d1c9 test: release offscreen terminal fixtures before the next suite (manaflow-ai#15322)
78c566c triage: severity and area labels, with the rules in the repo (manaflow-ai#15228)
54473f6 Serialize async test app contexts (manaflow-ai#15390)
192ee4c Stabilize minimal-mode workspace routing test (manaflow-ai#15385)
31a59ab Cloud machine list reports who created each machine (manaflow-ai#15261)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

full-ci EXPENSIVE: full macOS tests/builds; overrides selective PR routing. Not needed for normal checks.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant