Context
T3.13 of Epic #14560 (map v1.1) — the whitebox e2e leg of the stream tranche: prove the #14606 bound holds in the REAL app against REAL adapter feeds, not just the unit fixture. Filed under the decomposition sprint (D#14561).
The Problem
The unit spec (#14606's leg 2) proves the buffer bound on a synthetic burst; it cannot prove the frame stays live while the App-Worker applies deltas under actual feed pressure — the exact class where a green unit suite still ships a janky stream. The #14592 measurement says real bursts hit ~9 events/min sustained with multi-event batches; the demo path (and the "real-time is the spine" claim) depends on this leaf, not the unit.
The Architectural Reality
- Whitebox-e2e house pattern: NL Playwright fixture inside the running app; custom named config, never default
npx playwright test; e2e lives outside CI, NEO_TEST_SKIP_CI owns exclusion (no hardcoded skips).
- Assertion substrate: drive burst injection through the Lane-C adapters' test seam (or
simulate_event-class NL calls), assert via get_component_tree/query_vdom reads — buffer count ≤ bound, fold counter accurate, no frozen-frame class (observe_motion on the stream's own transitions).
- Sibling discipline: #14591 (Clio's dock e2e) is the config/pattern precedent — same suite conventions, different surface.
The Fix
One PR: the burst e2e spec — (1) sustained-burst scenario (≥ 3 min at the measured p95 rate: bound holds, folds accumulate, oldest events evict); (2) adapter-loss mid-burst → stale-state render appears, stream un-freezes on reconnect; (3) reduced-motion path renders without the pulse/transition assertions.
Acceptance Criteria
Out of Scope
The component (#14606) · adapters (Lane C) · dock e2e (#14591) · demo tours (lane 3).
Related
Epic #14560 (parent) · blocked-by #14606 · pattern precedent #14591 · #14592 (rates) · whitebox-e2e skill · D#14561.
Live latest-open sweep: fold-window fresh (newest #14606); no equivalent. A2A sweep: clean. Structure-map gate: N/A — test leaf under the e2e tree.
Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec
Retrieval Hint: "FM cockpit stream burst e2e bound fold adapter loss NL fixture"
Context
T3.13 of Epic #14560 (map v1.1) — the whitebox e2e leg of the stream tranche: prove the #14606 bound holds in the REAL app against REAL adapter feeds, not just the unit fixture. Filed under the decomposition sprint (D#14561).
The Problem
The unit spec (#14606's leg 2) proves the buffer bound on a synthetic burst; it cannot prove the frame stays live while the App-Worker applies deltas under actual feed pressure — the exact class where a green unit suite still ships a janky stream. The #14592 measurement says real bursts hit ~9 events/min sustained with multi-event batches; the demo path (and the "real-time is the spine" claim) depends on this leaf, not the unit.
The Architectural Reality
npx playwright test; e2e lives outside CI,NEO_TEST_SKIP_CIowns exclusion (no hardcoded skips).simulate_event-class NL calls), assert viaget_component_tree/query_vdomreads — buffer count ≤ bound, fold counter accurate, no frozen-frame class (observe_motionon the stream's own transitions).The Fix
One PR: the burst e2e spec — (1) sustained-burst scenario (≥ 3 min at the measured p95 rate: bound holds, folds accumulate, oldest events evict); (2) adapter-loss mid-burst → stale-state render appears, stream un-freezes on reconnect; (3) reduced-motion path renders without the pulse/transition assertions.
Acceptance Criteria
NEO_TEST_SKIP_CIonly.Out of Scope
The component (#14606) · adapters (Lane C) · dock e2e (#14591) · demo tours (lane 3).
Related
Epic #14560 (parent) · blocked-by #14606 · pattern precedent #14591 · #14592 (rates) · whitebox-e2e skill · D#14561.
Live latest-open sweep: fold-window fresh (newest #14606); no equivalent. A2A sweep: clean. Structure-map gate: N/A — test leaf under the e2e tree.
Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec Retrieval Hint: "FM cockpit stream burst e2e bound fold adapter loss NL fixture"