Census corrected 2026-08-23. This ticket originally claimed five red journeys. A full-directory run reports 17 failing tests, and the original five were neither complete nor correctly classified. The old body is replaced rather than annotated. Credit: @neo-gpt supplied the row-level classifications; the directory census is mine.
Context
Measured while reviewing PR #17593, whose author could not execute e2e at all (#17595 owns that boundary — and it is now known to have a working invocation on both GPT seats, so this set was always runnable by someone).
These are grouped for ownership, not because they share a cause. Without a durable owner every future cockpit PR re-triages the same set from scratch.
The Problem
The census instrument, recorded so the count can be reproduced instead of believed — its absence is why the first number was wrong:
npm run test-e2e -- test/playwright/e2e/agentos --workers=1
45 spec files, 62 tests, browser-capable host, on a tree carrying the #17598 fix. Result: 45 passed, 17 failed. Add back the three that #17598 repairs and dev itself stands at 20 red.
The original five-row list came from a chosen subset of specs plus a toEqual([{method grep — an instrument that structurally could not see a shared assertion helper, and never looked at 40 of the 45 files. It under-reported by 4×.
Dispositioned
| rows |
journeys |
disposition |
| 1 + two uncounted |
FleetGridKeyboardA11y, FleetCardLifecycleNL (×2) |
fixed — #17598 / PR #17599. One cause: the versioned wire envelope met toEqual exact equality. Two of the three were absent from the original census. |
| 2, 3 |
AgentCardSynthesisRenderNL:100, FleetCockpitDrillRoundTripNL:33 |
out of scope by this ticket's own exclusion. @neo-gpt measured both failing only at toHaveScreenshot (294×445 → 446, ~2% pixel drift). This body excluded visual-baseline failures as unreliable on this host and then listed two of them as rows — an internal contradiction, now resolved by removing them. |
| 4, 5 |
FleetMailboxTabNL:23, FleetMailboxTabNL:202 |
one seam, not two — CONFIRMED by measurement 2026-08-23. @neo-gpt read it from the failures; I re-ran the pair on dev and it holds. Row 4 fails at FleetMailboxTabNL.spec.mjs:75, expect(mounted?.properties?.record?.agentId, 'the pane record follows the drill') — Expected: "neo-gemini-pro", Received: undefined. Row 5 fails at :258, expect(pane.locator('.fm-mail-row')).toHaveCount(rowCount) — received 0. Both die before their distinct advertised invariants (thread-head toggle; activity-stream displacement), so neither is currently a witness for what it names. One upstream missing-record / wrong-instance defect at the selected AgentOS.view.fleet.mailbox.Container. |
Unclassified
The remaining failures are recorded and not diagnosed. Two of the seventeen are the screenshot-only pair above; the rest carry no cause yet, and a confident guess here would be worse than the gap:
AccountsConfigSurface:26 · AddAgentJourneyNL:108 · FleetCockpitAutoHideRailNL:20 · FleetCockpitBarCompositionNL:19 (×2, at 800px and 520px) · FleetCockpitLivenessNL:92 · FleetGridScrollNL:17 · FleetNavFamilyPin:16 · InstanceSwitcherMenuNL:34
DemoBCrossWindowDragNL (×3, at :246, :454, :700) and DemoBPerspectivesNL:53 — the cross-window drag family, which overlaps #17578's territory and should be read against it before anyone re-derives them.
The Architectural Reality
.github/workflows/test.yml runs integration / parity / unit / components. There is no e2e suite in CI — verified: no workflow references test-e2e or playwright.config.e2e. Nothing scheduled has ever reported any of these, and nothing will.
That is the finding, more than any individual row: a quarter of the AgentOS e2e layer is red and no pipeline says so. The #17598 cause shows the mechanism — a wire contract grew, three journey assertions went stale, and the layer stayed silently red until someone ran it by hand while reviewing an unrelated PR.
A red set with no recorded instrument is also how this ticket itself under-reported. The count is a measurement, and a measurement without its command is an anecdote.
The Fix
Diagnose each remaining row independently; they share no established cause. Cheapest signal first:
- Rows 4–5 — diagnosis done, fix open. The single-seam reading is confirmed (see the table). The remaining question is why the mounted mailbox Container holds no record: the drill selects an agent and the pane does not receive it, so the candidates are a missing hand-off on the selection path or a second Container instance being mounted and queried. That is one investigation, not two rows, and it needs the owner of the mailbox pane's selection wiring rather than a spec repair — the specs are correct and are reporting a real product defect.
- The
DemoB* cluster (4 tests) — read against #17578 first; if they share its cause they belong there, not here.
- The remaining 8 — independent, unclassified.
- The screenshot pair — needs a decision about whether visual baselines are trustworthy on any current host at all, which is a different question from this ticket and probably its own.
A row closed as "flaky" must carry a repeat count, not an adjective.
Acceptance Criteria
Out of Scope
- PR #17593 — it introduced exactly one regression (
FleetCockpitDrillNL:19), a Required Action on that PR. These reproduce without it.
- The launch boundary — #17595.
- Adding e2e to CI — a separate decision with its own cost, though this census is the strongest argument yet that it deserves one.
- Visual-baseline (
toHaveScreenshot) failures, including the two rows removed above.
Avoided Traps
- Trusting a census whose instrument was never written down. The original five-row set was produced by an unrecorded subset run and was wrong by 4×. The command is now in the body, and it is the reason the number can be challenged.
- Blaming the PR that surfaced them. Reproduced on
origin/dev with an empty HEAD diff, independently by @neo-gpt.
- Identifying failures by error string. Several produce near-identical messages; rows are keyed by
file:line.
- Diagnosing rows nobody investigated. The unclassified list carries observations only. A confident-sounding guess in a Fat Ticket is worse than an honest gap, because the next agent inherits it as a premise — which is exactly how this ticket's own visual-baseline contradiction survived.
Related
#17598 / PR #17599 (the carved wire-envelope cause) · #17595 (the launch boundary) · #17578 (likely owner of the DemoB* cluster) · #17564 (Workstation sibling set) · #17576 (dock sibling set, closed) · #17335 (adjacent, file size)
Retrieval Hint: AgentOS cockpit e2e census 17 failing dev-red FleetMailboxTab agentId undefined DemoBCrossWindowDrag screenshot drift no e2e in CI
Origin Session ID: 1b0d28eb-3461-40b6-bb35-88d6bf09ec94
Context
Measured while reviewing PR #17593, whose author could not execute e2e at all (#17595 owns that boundary — and it is now known to have a working invocation on both GPT seats, so this set was always runnable by someone).
These are grouped for ownership, not because they share a cause. Without a durable owner every future cockpit PR re-triages the same set from scratch.
The Problem
The census instrument, recorded so the count can be reproduced instead of believed — its absence is why the first number was wrong:
45 spec files, 62 tests, browser-capable host, on a tree carrying the #17598 fix. Result: 45 passed, 17 failed. Add back the three that #17598 repairs and
devitself stands at 20 red.The original five-row list came from a chosen subset of specs plus a
toEqual([{methodgrep — an instrument that structurally could not see a shared assertion helper, and never looked at 40 of the 45 files. It under-reported by 4×.Dispositioned
FleetGridKeyboardA11y,FleetCardLifecycleNL(×2)toEqualexact equality. Two of the three were absent from the original census.AgentCardSynthesisRenderNL:100,FleetCockpitDrillRoundTripNL:33toHaveScreenshot(294×445 → 446, ~2% pixel drift). This body excluded visual-baseline failures as unreliable on this host and then listed two of them as rows — an internal contradiction, now resolved by removing them.FleetMailboxTabNL:23,FleetMailboxTabNL:202devand it holds. Row 4 fails atFleetMailboxTabNL.spec.mjs:75,expect(mounted?.properties?.record?.agentId, 'the pane record follows the drill')—Expected: "neo-gemini-pro",Received: undefined. Row 5 fails at:258,expect(pane.locator('.fm-mail-row')).toHaveCount(rowCount)— received0. Both die before their distinct advertised invariants (thread-head toggle; activity-stream displacement), so neither is currently a witness for what it names. One upstream missing-record / wrong-instance defect at the selectedAgentOS.view.fleet.mailbox.Container.Unclassified
The remaining failures are recorded and not diagnosed. Two of the seventeen are the screenshot-only pair above; the rest carry no cause yet, and a confident guess here would be worse than the gap:
AccountsConfigSurface:26·AddAgentJourneyNL:108·FleetCockpitAutoHideRailNL:20·FleetCockpitBarCompositionNL:19(×2, at 800px and 520px) ·FleetCockpitLivenessNL:92·FleetGridScrollNL:17·FleetNavFamilyPin:16·InstanceSwitcherMenuNL:34DemoBCrossWindowDragNL(×3, at :246, :454, :700) andDemoBPerspectivesNL:53— the cross-window drag family, which overlaps #17578's territory and should be read against it before anyone re-derives them.The Architectural Reality
.github/workflows/test.ymlruns integration / parity / unit / components. There is no e2e suite in CI — verified: no workflow referencestest-e2eorplaywright.config.e2e. Nothing scheduled has ever reported any of these, and nothing will.That is the finding, more than any individual row: a quarter of the AgentOS e2e layer is red and no pipeline says so. The #17598 cause shows the mechanism — a wire contract grew, three journey assertions went stale, and the layer stayed silently red until someone ran it by hand while reviewing an unrelated PR.
A red set with no recorded instrument is also how this ticket itself under-reported. The count is a measurement, and a measurement without its command is an anecdote.
The Fix
Diagnose each remaining row independently; they share no established cause. Cheapest signal first:
DemoB*cluster (4 tests) — read against #17578 first; if they share its cause they belong there, not here.A row closed as "flaky" must carry a repeat count, not an adjective.
Acceptance Criteria
test-e2eovertest/playwright/e2e/agentosis green, or the residual set is smaller and every survivor names an owner.DemoB*cluster is explicitly either absorbed into #17578 or kept here with a stated reason.Out of Scope
FleetCockpitDrillNL:19), a Required Action on that PR. These reproduce without it.toHaveScreenshot) failures, including the two rows removed above.Avoided Traps
origin/devwith an empty HEAD diff, independently by @neo-gpt.file:line.Related
#17598 / PR #17599 (the carved wire-envelope cause) · #17595 (the launch boundary) · #17578 (likely owner of the
DemoB*cluster) · #17564 (Workstation sibling set) · #17576 (dock sibling set, closed) · #17335 (adjacent, file size)Retrieval Hint:
AgentOS cockpit e2e census 17 failing dev-red FleetMailboxTab agentId undefined DemoBCrossWindowDrag screenshot drift no e2e in CIOrigin Session ID: 1b0d28eb-3461-40b6-bb35-88d6bf09ec94