Skip to content

cmux-next tests: agent pane page-host and themed dialog base reds fixed at their causes - #26109

Merged
teamleaderleo merged 1 commit into
feat-cmux-nextfrom
fix/next-agentpane-appkit-base-red
Oct 27, 2026
Merged

teamleaderleo merged 1 commit into
feat-cmux-nextfrom
fix/next-agentpane-appkit-base-red

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

Why

"The ci-waste-audit note found that cmux-next "swift test" fails 499 of 500 PR runs ... a base red that hides all signal. ... Find the common failure ... fix it so swift test goes green on base, and confirm on PR runs."

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.aChromiumChatInTheTabRowLeavesTheTabsAndToolbarUncovered
  • AgentPaneDebugClickPageHostTests.clickFindsAnElementOfThePageTheChatShows
  • AgentPaneSessionInfoTests.paletteSessionInfoReachesItsOwnPageCommand

Cause: swift test links 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 as ChatDockLinkSplitMotionTests, it registers the bundled page's root. The page host's mayServe then 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, which mayServe also accepts. The fixture (AgentPageTestRoot) calls it. servedRoot, bundledRoot and 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

  • PR swift test (job): clickFindsAnElementOfThePageTheChatShows, aChromiumChatInTheTabRowLeavesTheTabsAndToolbarUncovered, paletteSessionInfoReachesItsOwnPageCommand and ThemedDialogControlsTests pass. That job's remaining reds are base reds from the tip list, handled in other PRs, plus AgentPaneColdChatRevealTests, a 2 s fade-settle wait that does not touch the page host or theme code changed here.
  • The checks job's red, "No literal state roots" (cmux-tui/crates/acpmux/src/prompt_uploads.rs:345), fails the same way at the base tip.
  • The fleet cmux-ci test route 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

…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
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 9ee99c4: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr26109 -f ref=fix/next-agentpane-appkit-base-red -f platform=macos -f backend_mode=local

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

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 27, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@blacksmith-sh

blacksmith-sh Bot commented Oct 27, 2026

Copy link
Copy Markdown

Found 4 test failures on Blacksmith runners:

Failures

Test View Logs
main.DeveloperIdAppTests.test_download_prints_the_active_profile_only/
test_download_prints_the_active_profile_only
View Logs
stubs: /System/Library/Frameworks/Security.framework/Versions/A/Security has no stub/
Security has no stub
View Logs
stubs: CoreFoundation.tbd: install-name /System/Library/Frameworks/
CoreFoundation.framework/Versions/A/CoreFoundation, missing 1: ['_CFRetain']/
CoreFoundation, missing 1: ['_CFRetain']
View Logs
stubs: CoreFoundation.tbd: install-name /System/Library/Frameworks/
CoreFoundation.framework/Versions/A/CoreFoundation, missing 1: ['_log2']/
CoreFoundation, missing 1: ['_log2']
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-24sjj5 created for this PR by the cmux coordinator.

@teamleaderleo
teamleaderleo merged commit e7cbb89 into feat-cmux-next Oct 27, 2026
151 of 161 checks passed
@teamleaderleo
teamleaderleo deleted the fix/next-agentpane-appkit-base-red branch October 27, 2026 10:40
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

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

1 inactive deployment
ci-routing-agent — 9ee99c4f Deployed Oct 27, 2026 by teamleaderleo via namespace autofix #4248
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant