Repository navigation
carry of #27257: close batch B1 test windows - #28091
Merged
teamleaderleo merged 39 commits intoOct 31, 2026
Merged
Conversation
Leo (2026-10-28), on Swift suites that leave windows open for the suites after them: "But why do you guys not just clean up after yourselves, or at least do your best to?" Each suite in this batch now closes every window its tests open, in the test's own teardown, and carries `.closesItsWindows` so a new leak fails by name: - teardowns that only ordered a window out close it; - tests that make browser pages release them (or close the chrome's popup panels), and tests that open the palette close its panel; - background mode's menu bar item goes when the launch test shuts down. Product code never closed three kinds of panel, only ordered them out, so they stayed in the app's window list while anything held their owner: - a window's overlay host panel, when the window closed (WindowOverlayHost); - a browser page's Page Info and Extensions panels, when its tab closed (BrowserEntry.close now calls BrowserChromeView.closePopupPanels); - the Mac screen approval prompt's panel, whose content holds the prompt (now closed and dropped when the prompt hides; the next request makes one). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-85ca59f74f02d81734c3
…heir panels Leo (2026-10-28): "But why do you guys not just clean up after yourselves, or at least do your best to?" - WindowOverlayHost keeps a closed window's torn-down host registered, so a late `host(for:)` for that window returns it instead of making a fresh panel nothing closes; a window shown again gets a new host, and `existingHost` still answers nil once torn down. - NativePopupHost.closePanel closes a popup's panel for good; Page Info, the Extensions bubble and the host pressure popover (when its indicator leaves its window) use it. - DebugPaletteCaptureTests and HomeOpenFocusesComposerTests drop the trait for now: the first leaves only AppKit's own TUINSWindow, the second the Chief Settings popover's panel, which its owner never closes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-85ca59f74f02d81734c3
…pKit-only suites keep the trait Leo: "But why do you guys not just clean up after yourselves, or at least do your best to?" Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-85ca59f74f02d81734c3
Wait for the destination daemon store through its existing sync barrier before inspecting moved tabs. Keep metadata assertions unchanged so a failed rename still fails the test. Validation: prepush gate and diff check pass. Native Swift syntax is unavailable in this Linux lane; CrossMachine/Stash fleet rerun required. Prior fleet runs 0e700eba and da960326 failed the name assertion before this barrier. Agent-Session: https://cmux.com/deeplink/agent?id=aid-66d4d9063f5f1bfabf11
Propagate cancellation from the presentation wait, capture its error, and join owned daemon shutdown before rethrowing. Register window and directory cleanup before startup so their lifetime ends in order. Validation: static prepush and diff checks pass. Swift syntax/native execution unavailable in the Linux lane; fleet regression and cumulative review requested. Agent-Session: https://cmux.com/deeplink/agent?id=aid-66d4d9063f5f1bfabf11
Base now has #27239 squashed. Conflicts keep this branch's cleanup: PageInfoController.closePanel retires and closes its windows, BackgroundAccessoryPolicyTests stops through AppTestDaemonOwner, DaemonClosedBrowserPageTests releases both tabs, and BrowserProfileNewTabMenuTests / DebugPaletteCaptureTests keep their own panel close (base's second close is dropped). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-0cf32b32a03b27dcdf4d
Record verified process identities and use the existing audit-token fallback when a shutdown handshake fails. Preserve state directories until every owned daemon exit is confirmed, and bound moved-tab synchronization and cancellation. Validation: cmux-next prepush gate and diff check pass; native Swift compilation/runtime unavailable in this Linux lane. Fleet reruns and exact-head review required. Agent-Session: https://cmux.com/deeplink/agent?id=aid-66d4d9063f5f1bfabf11
…' into lane/window-leak-suites-B1-codex
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 30, 2026 07:16 — with
GitHub Actions
Inactive
|
Found 3 test failures on Blacksmith runners: Failures
|
Collaborator
Author
|
Review (codex-review-box/gpt-6-astra high, lane-place): BLOCK at f6eaa38 BLOCK
|
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 30, 2026 08:06 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 30, 2026 08:06 — with
GitHub Actions
Inactive
…27257-pinned-page
connectOnce used a closure literal as a guard condition, which Swift does not parse; move the phase check into an acceptsNewAttempt property. The reconnect test's raw string opened with #""" and closed with """, so it never terminated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-159afad10a5ab45ea16c
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 31, 2026 04:06 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 31, 2026 04:06 — with
GitHub Actions
Inactive
Collaborator
Author
#28083 removed AcpmuxUnresponsiveWatch from base and kept its process identity check in AcpmuxDaemonStop (Daemon, kernelProcess, signal) with no SIGKILL path. The test owner and its tests now read identities from AcpmuxDaemonStop and keep their own bounded TERM-then-KILL teardown, built on AcpmuxDaemonStop.signal so a reused pid is still never signalled. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-159afad10a5ab45ea16c
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 31, 2026 05:34 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 31, 2026 05:34 — with
GitHub Actions
Inactive
Collaborator
Author
…27257-pinned-page-repair-d # Conflicts: # Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Connection/DaemonConnection.swift
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 31, 2026 07:59 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 31, 2026 07:59 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 31, 2026 08:04 — with
GitHub Actions
Inactive
Collaborator
Author
Collaborator
Author
…27257-pinned-page-repair-d
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 31, 2026 11:45 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 31, 2026 11:45 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 31, 2026 11:47 — with
GitHub Actions
Inactive
Collaborator
Author
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Carry of #27257: cmux-next: close batch B1 test windows
Original purpose from #27257: close the remaining Swift test windows and panels after each test, including cleanup for Page Info, Extensions Menu, Host Pressure, Native Popup, and browser retirement panels.
This carry preserves the original commits and repairs the blocked teardown ownership issue.
AppTestDaemonOwner.reapnow requires a verified kernel process identity before invoking graceful shutdown, so an unverified endpoint cannot send shutdown to a replacement daemon. The regression test asserts the shutdown closure is not called for an unverified live process. Earlier carried commits retain in-flight ensure tasks through teardown and preserve state when exit ownership is unconfirmed.Original PR: #27257
Validation:
git diff --check; macOS test suite requires fleet execution.Agent session: agent session
No capture: no visible change; this carry changes test teardown and hidden panel cleanup only.