Repository navigation
cmux-next tests: agent pane page-host and themed dialog base reds fixed at their causes - #26109
Merged
Merged
Conversation
…ed at their causes - Agent pane page-host tests: `swift test` links every test target into one process, and an app test that shows an agent tab registered the bundled page's root first, so the page host refused the fixture root (AgentPaneView returned nil). DEBUG builds may now allow a fixture root for a reserved page (PageID.allowFixtureRoot); the registered root and release builds are unchanged. - ThemedDialogControlsTests: the list now draws in its own neutral theme scope. Gallery suites apply an accent theme (Soft Blue) to the process-wide app theme, so the check read that theme's blue selection. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-cc8bff1c3ddb4ec353c5
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 27, 2026 09:47 — with
GitHub Actions
Inactive
Contributor
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 2f96c21 to compare; do not merge until green; see lane-rules |
Collaborator
Author
|
Owned by an agent session · session |
|
Found 4 test failures on Blacksmith runners: Failures
|
Collaborator
Author
|
Bead |
Contributor
|
Shipped in:
|
lawrencecchen
added a commit
that referenced
this pull request
Oct 31, 2026
…s are instances AppServices owns (#28267) The arch-ratchet tip rise (audit-rh): fourteen globals and two assumeIsolated sites that landed with no reviewed exception now live on instances the composition root constructs and passes. - AppServices.DebugFixtures (DEBUG only): the capture fixtures of one app. It holds debug.cloud_machine_fixture's cloudWorkspace (was DebugCloudMachineFixture.holders, #26274), debug.add_device's listing (DebugAddDevice.listing, #27229), debug.join_consent's status and person line (DebugJoinConsent.status and .line, #27223), debug.object_menu's menu (DebugObjectMenu.popped, #27564), and debug.joined_machines' service (was AppServices.debugJoinedMachines). - DebugWindowRecord is an instance (AppServices.windowRecord): running, launchRecorders, launchSeen and launchWatch (#23680) are its properties. The app delegate starts --record-launch right after it makes the services, before the first window, as before. A launch recording's window-close observer is a MainActorObservation, not a raw queue: .main observer with MainActor.assumeIsolated. - RoomDefaultsUpdates is an instance (AppServices.roomDefaults): its per-space serial tails (#23461). - JoinConsentModel.fixtureActive: the app sets it in DEBUG from its fixtures; it is false in Release, as the removed static was. The Mac Screen gate reads it before and after its read. - The grant gate is invalidated by SettingsController.onEveryLoad, which runs on the main actor in the load itself, before the load changes snapshot or loadCount. This replaces an observation that re-armed itself through Thread.isMainThread plus assumeIsolated or a Task (#27223). Those two properties change only in that main-actor load, so the Task branch never ran. - PageID.fixtureRoots (#26109) is gone. A test gives its fixture root to the page host it builds (PageWebView and AgentPaneView testRoot: true; DEBUG only, Release ignores it). Behavior does not change. Tests that set the statics now set their own instances. arch_counts delta: stateful_singletons -4, global_mutable_statics -7, assume_isolated_outside_adapters -2, assume_isolated_total -2, app_lines -11; no row rises. Owner: Performance Lead. Not compiled or tested on this VM (fleet compile-check after push).
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)
Why
This PR fixes four of the suites that fail at the base tip (tip Swift suite job). The other base reds are handled in separate PRs.
Agent pane page-host tests (3 suites)
These three suites fail with
AgentPaneView(..., source: .bundled(fixture), pageHost: true) → nil:AgentPaneTabRowHolesTests.aChromiumChatInTheTabRowLeavesTheTabsAndToolbarUncoveredAgentPaneDebugClickPageHostTests.clickFindsAnElementOfThePageTheChatShowsAgentPaneSessionInfoTests.paletteSessionInfoReachesItsOwnPageCommandCause:
swift testlinks every test target into one process. A reserved page's root is registered once per process, and the first registration wins (PageID.registerBundledRoot). When an app test that shows an agent tab runs first, such asChatDockLinkSplitMotionTests, it registers the bundled page's root. The page host'smayServethen refuses the agent-pane fixture's temp root. These tests pass only when the agent-pane suites happen to run before any app test.Fix: a DEBUG-only
PageID.allowFixtureRoot, whichmayServealso accepts. The fixture (AgentPageTestRoot) calls it.servedRoot,bundledRootand release builds are unchanged, so a release build still serves a reserved page only from its bundled root.ThemedDialogControlsTests
The highlighted New Message row read sRGB(0.17, 0.29, 0.93, α 0.16). That is the theme's own accent selection (
accent.withAlpha(0.16)), not the system accent. Gallery suites (AANestedGroupsGalleryTests,SidebarSelectionLookTests) apply Soft Blue to the process-wide app theme and do not restore it. The test now roots its list in its own neutral theme scope (ThemeInput.ghosttyDefault). It still proves that the row draws the theme's selection fill, not macOS blue. The assertions are unchanged.No test is skipped, deleted or loosened.
Testing
clickFindsAnElementOfThePageTheChatShows,aChromiumChatInTheTabRowLeavesTheTabsAndToolbarUncovered,paletteSessionInfoReachesItsOwnPageCommandandThemedDialogControlsTestspass. That job's remaining reds are base reds from the tip list, handled in other PRs, plusAgentPaneColdChatRevealTests, a 2 s fade-settle wait that does not touch the page host or theme code changed here.cmux-tui/crates/acpmux/src/prompt_uploads.rs:345), fails the same way at the base tip.cmux-ci testroute is Linux and cannot run these AppKit suites, so the PR's macOS swift-test job is the verification.Review (codex gpt-6-astra xhigh): SHIP at 9ee99c4
Agent session: agent session
🤖 Generated with Claude Code