Repository navigation
C11-332: un-quarantine the host test classes that guard 1.0 fixes - #588
Conversation
Retire all seven C11-109 class-level exclusions from the hourly host gate. Four classes already passed; three failed on stale fixtures, now repaired in test code only: - AppDelegateShortcutRoutingTests: fixtures assumed one pane per new workspace (default grid/welcome quad), Cmd+N creating on keyDown (it opens the picker), visible closes behind strong window refs, a fake palette overlay shadowed by the real one, and an idle shell without a prompt-idle report. Guards C11-250, C11-266 and B050. - BrowserDeveloperToolsVisibilityPersistenceTests: fake attach() counted a show, tests acted inside the show transition, and one fixture leaked a detached-inspector window. Guards C11-287. - BrowserTabHostContainerViewTests: fixtures now promote into the side-dock container that manual divider routing requires. Two orphan-prune methods stay quarantined for a product bug: workspace creation never prunes an orphaned window context. Every remaining exclusion is a single method with a one-line reason. No Sources/ change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each test opened main windows whose Ghostty terminals stayed alive after close (176 login shells started, none freed), loading the main thread so GhosttySurfaceOverlayTests missed its deferred overlay mounts. tearDown now closes windows the test added, frees surfaces it created and restores the active window pointers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closed main windows from this class stay alive in the test host (70 after the class, with a main-queue backlog), which starves later classes' deferred-mount waits. The hourly host gate now runs the class in a second xcodebuild invocation after the rest of c11Tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…r test The overlay mounts on a main-queue hop; a fixed 50 ms wait failed under the larger un-quarantined host suite. Wait (bounded) for the mount. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Deep review — C11-332: un-quarantine the host test classes that guard 1.0 fixesSummaryThis removes all seven class-level exclusions from the hourly host gate ( AlignmentSquarely in scope. Restoring real CI coverage for shipped 1.0 fixes is core to a publicly-released product with live users, and the change respects every house rule: no tenant-config writes, no source changes, no skill surface touched (none applies — the CLI/socket/surface model is untouched). The repairs are all fixture-side (stale I confirmed against the trusted checkout: every production symbol the new/changed tests call exists and is correctly DEBUG-gated where the test guards it — FindingsNo correctness, security, or scope defects in the changed code. The items below are minor/nit polish on the CI script and one follow-up to keep on the radar.
RecommendationMerge as-is. It's a test/CI/notes-only change that restores genuine CI coverage of shipped 1.0 regression guards, every repaired fixture tracks real production behavior, the one unfixed product bug is disclosed and appropriately quarantined, and the Atlas evidence mirrors the exact gate selection. Worth confirming the hourly host gate goes green on GitHub-hosted CI once the macOS-runner billing block clears (the PR modifies that gate, and 🌉 Drawbridge deep review (lane 3) — an automated pass; a maintainer has been notified and makes the final call. |
Resolution: keep C11-332's quarantine list with R8's PanelLifecycleTests name; BrowserTabTests.swift changes carried into BrowserPanelTests.swift with R8's BrowserTab* -> BrowserPanel* names; the flag-banner wait uses PanelAttentionIndex/PanelAttentionSnapshot; updateTabShellActivityState -> updatePanelShellActivityState in the routing tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Cairn: exact-head attestation for 859d321. The merge of main (C11-337 panel rename) changed only names (TabLifecycleTests to PanelLifecycleTests, BrowserTab* to BrowserPanel*, PanelAttention*, updatePanelShellActivityState); the effective diff against main matches the Astra-reviewed ff6b4ad otherwise. Atlas at 859d321: 1676 + 68 host tests, 0 failures. Merging. |
What
The hourly host gate (
ci-hourly.yml,HOST_TEST_QUARANTINE) skipped seven whole classes from C11-109. Several of them hold the regression tests for c11 1.0 fixes, so CI never ran those tests. This PR removes all seven class exclusions. Every remaining exclusion is a single method with a one-line reason. Tests, CI and notes only: noSources/change.Classes
GhosttyConfigTestsNotificationBurstCoalescerTestsTerminalNotificationDirectInteractionTestsWorkspaceManagerReopenClosedBrowserFocusTestsBrowserDeveloperToolsVisibilityPersistenceTestsBrowserPanelHostContainerViewTestsAppDelegateShortcutRoutingTestsRepairs (all stale tests, not product bugs)
attach()counted ashow, which gave the "2 != 1" failures. Production attaches before the first show.HostedInspectorSideDockContainerView(upstream06c5cac4df). The fixtures now promote through the production path, using a shared helper.setUp.Still quarantined: product bug
testAddWorkspaceInPreferredMainWindowPrunesOrphanedContextWithoutLiveWindowandtestCustomCmdTNewWorkspacePrunesOrphanedContextWithoutLiveWindoware restored unchanged and skipped by method. Workspace creation never prunes an orphaned main-window context. Every candidate inpreferredMainWindowContextForWorkspaceCreationrequires a resolved window, so the discard after a failed resolution (AppDelegate.swift,addWorkspaceInPreferredMainWindow) is unreachable. The orphan stays inmainWindowContextsand in window summaries. Two new tests guard the reachable half: an orphan never receives a workspace.Host isolation
In one host process,
AppDelegateShortcutRoutingTestsmadeGhosttySurfaceOverlayTestsfail. A probe after the class found:main.asyncdid not fire within 50 ms.The class's
tearDownnow closes what each test opened and frees its surfaces: 149 of 149 terminals freed, where it freed none before. The closed windows remain reachable from outside the test code, so the gate runs this class in a secondxcodebuildinvocation. Whether production retains closed main windows is unverified; it is noted innotes/c11-253-host-test-triage.mdas a one-step QA check.Evidence (Atlas,
scripts/remote-build.sh --mode test)6e2c1dc47f(invocationb2dae594): 138 tests in the seven classes, 50 failed assertions.6e2c1dc47f, full gate with main's quarantine (b44c471d): 1595 tests, 0 failures, both passes.78768165): 138/138,** TEST SUCCEEDED **, both passes.2f9513a67e(clean): first invocationffe0294f, 1665 tests, 0 failures, both passes. Second invocation, AppDelegate class only,ffa5a2f0: 68 tests, 0 failures, both passes. Every 1.0 guard named above executed and passed. The two quarantined orphan methods did not execute.After merging main (C11-337 R8 panel rename, #587), merge head
859d3210f2(clean), same two hourly selections: c11Tests minus AppDelegate079274d5, 1676 tests, 0 failures, both passes; AppDelegateShortcutRoutingTests alonecb1764ee, 68 tests, 0 failures, both passes. The 25 repaired methods that the panel-rename attribution lists among the 31 quarantined failures pass there; the 6 C11-253 methods stay quarantined.The merge changed only names:
TabLifecycleTests->PanelLifecycleTestsin the skip list,BrowserTabTests.swift->BrowserPanelTests.swiftwithBrowserTab*->BrowserPanel*,TabAttention*->PanelAttention*, andupdateTabShellActivityState->updatePanelShellActivityState.GitHub-hosted hourly CI has not run since 06:07Z today because the account's billing is blocking macOS runners. The Atlas runs above mirror the hourly step's selection exactly.
🤖 Generated with Claude Code