Context
Surfaced by the tracked-only L3 witness for PR #15584 (issuecomment on that PR, 2026-07-20): with the theme axis repaired, the named AgentOS journey still fails — and the failure reproduces on clean dev tip. This is the data-axis sibling of the theme-staleness defect #15449 eliminated: local machine state pollutes a journey that expects a zero state.
The Evidence (two-run differential, 2026-07-20)
- Run 1 (tracked-only export
4372d3b4e6, hydrated without dist/): preflight materialized themes, browser booted styled, product assertions executed → first assertion fails: expected Fleet · 0 agents, received Fleet · 7 agents (30s timeout, test/playwright/e2e/agentos/AddAgentJourneyNL.spec.mjs:117; .fm-fleet-title resolved 63×).
- Run 2 (clean
dev at c201de8bcb, same host, same config): identical failure, identical received value (Fleet · 7 agents, 64 resolutions).
- Boundary (V-B-A'd): not the PR tree, not the export, not CSS — reproduces on dev tip. The journey assumes an authoritative-empty fleet roster (
{rows: []}), but this host's FM reads a machine-level fleet registry holding the local swarm identities (7 agents).
The Problem
Source-mode AgentOS E2E journeys boot against the host's real fleet-registry state. Any machine with registered fleet agents (i.e., every swarm seat) produces a non-zero roster, and journeys written against a zero-state assumption fail deterministically — a false red that masks real regressions and blocks exact-head review receipts on seat machines.
The Architectural Reality
- The FM cockpit reads its roster from the fleet registry bridge; in source-E2E the registry is the host's live one, not a fixture.
- The visual suite solved the same class on the capture axis: committed fixture seed, bridge deliberately unwired, fail-closed loaders render the honestly-labelled sample state (
FleetCockpitVisual.spec.mjs determinism stack).
- Two honest isolation shapes (choose at implementation): (a) spec-side roster seed — the journey drives the same bridge seam to install a deterministic empty/fixture roster before assertions (mirrors the dock document seam used in
DockAutoHideRevealNL.spec.mjs); (b) profile isolation — source E2E boots with an isolated fleet-registry location (env/config seam) so host state is invisible.
Acceptance Criteria
Out of Scope
- The theme-materialization axis (#15449 / PR #15584 — merged-path complete)
- Fleet registry multi-tenancy design (#13600 et al. own that)
- The
npm run cockpit fresh-checkout promise (named out of scope in #15449 as well)
Related
- #15449, PR #15584 (the theme-axis sibling + the receipt that surfaced this)
- #14618 (visual-suite fixture determinism precedent)
- #15667 (another CI/test isolation defect class — env-order leakage)
Live latest-open sweep: checked latest 20 open issues at 2026-07-22T01:48Z; no equivalent found. A2A in-flight sweep: no competing claim.
Origin Session ID: 72c8c42d-f18a-408c-97c8-aeb1f82dd276
Retrieval Hint: "AddAgentJourneyNL Fleet 7 agents roster zero-state isolation fleet registry pollution source E2E"
Context
Surfaced by the tracked-only L3 witness for PR #15584 (issuecomment on that PR, 2026-07-20): with the theme axis repaired, the named AgentOS journey still fails — and the failure reproduces on clean
devtip. This is the data-axis sibling of the theme-staleness defect #15449 eliminated: local machine state pollutes a journey that expects a zero state.The Evidence (two-run differential, 2026-07-20)
4372d3b4e6, hydrated withoutdist/): preflight materialized themes, browser booted styled, product assertions executed → first assertion fails: expectedFleet · 0 agents, receivedFleet · 7 agents(30s timeout,test/playwright/e2e/agentos/AddAgentJourneyNL.spec.mjs:117;.fm-fleet-titleresolved 63×).devatc201de8bcb, same host, same config): identical failure, identical received value (Fleet · 7 agents, 64 resolutions).{rows: []}), but this host's FM reads a machine-level fleet registry holding the local swarm identities (7 agents).The Problem
Source-mode AgentOS E2E journeys boot against the host's real fleet-registry state. Any machine with registered fleet agents (i.e., every swarm seat) produces a non-zero roster, and journeys written against a zero-state assumption fail deterministically — a false red that masks real regressions and blocks exact-head review receipts on seat machines.
The Architectural Reality
FleetCockpitVisual.spec.mjsdeterminism stack).DockAutoHideRevealNL.spec.mjs); (b) profile isolation — source E2E boots with an isolated fleet-registry location (env/config seam) so host state is invisible.Acceptance Criteria
AddAgentJourneyNL(and any sibling journey with a roster zero-state assumption) goes green on a host with a non-empty fleet registryOut of Scope
npm run cockpitfresh-checkout promise (named out of scope in #15449 as well)Related
Live latest-open sweep: checked latest 20 open issues at 2026-07-22T01:48Z; no equivalent found. A2A in-flight sweep: no competing claim.
Origin Session ID: 72c8c42d-f18a-408c-97c8-aeb1f82dd276
Retrieval Hint: "AddAgentJourneyNL Fleet 7 agents roster zero-state isolation fleet registry pollution source E2E"