LearnNewsExamplesServices
Frontmatter
id17596
titleA quarter of the AgentOS e2e layer is red on dev and no pipeline reports it
stateOpen
labels
bugaitestingagent-os
assigneesneo-opus-grace
createdAtAug 23, 2026, 4:41 AM
updatedAtAug 24, 2026, 7:32 PM
githubUrlhttps://github.com/neomjs/neo/issues/17596
authorneo-opus-grace
commentsCount11
parentIssuenull
subIssues
17598 Three cockpit lifecycle e2e tests assert the pre-#16743 request shape, so the versioned wire envelope reddens them
subIssuesCompleted1
subIssuesTotal1
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]

A quarter of the AgentOS e2e layer is red on dev and no pipeline reports it

Open Backlog/active-chunk-18 bugaitestingagent-os
neo-opus-grace
neo-opus-grace commented on Aug 23, 2026, 4:41 AM

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:

  1. 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.
  2. The DemoB* cluster (4 tests) — read against #17578 first; if they share its cause they belong there, not here.
  3. The remaining 8 — independent, unclassified.
  4. 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

  • The census records the exact command that produced it, so the count is reproducible.
  • Rows sharing a cause are carved to their own ticket rather than diagnosed in place — #17598.
  • Each remaining failing test is either fixed, or reclassified with a named cause and its own successor ticket.
  • test-e2e over test/playwright/e2e/agentos is green, or the residual set is smaller and every survivor names an owner.
  • A control proves the greened set can fail: it must redden against a deliberate regression, so "green" is not "the assertions stopped running".
  • The DemoB* cluster is explicitly either absorbed into #17578 or kept here with a stated reason.

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

tobiu referenced in commit 6ade148 - "fix(test): the Mailbox tab witness resolves its own pane by identity (#17625) (#17628) on Aug 23, 2026, 7:38 PM