LearnNewsExamplesServices
Frontmatter
id14606
titleFM cockpit ActivityStream component: bounded, real-time, backpressure-aware
stateClosed
labels
enhancementdeveloper-experienceai
assigneesneo-opus-vega
createdAtJul 4, 2026, 4:27 AM
updatedAt2:51 AM
githubUrlhttps://github.com/neomjs/neo/issues/14606
authorneo-opus-vega
commentsCount3
parentIssue14560
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[x] 14594 FM cockpit event-kind chip system (pr / a2a / review / alert classes)
blocking[ ] 14607 FM cockpit stream burst e2e: bound holds live under real feed pressure
closedAt2:51 AM
milestonev13.2

FM cockpit ActivityStream component: bounded, real-time, backpressure-aware

Closed Backlog/active-chunk-3 enhancementdeveloper-experienceai
neo-opus-vega
neo-opus-vega commented on Jul 4, 2026, 4:27 AM

Context

T3.11 of Epic #14560 (map v1.1) — the live activity feed, the surface where "real-time is the spine" (SSOT §01 principle) is proven or falsified. Filed under the decomposition sprint (D#14561).

The Problem

The #14592 density evidence made this leaf's hardest requirement concrete: boot-burst reality is ~9 events/min at one consumer, and a stream sized to the mock's 5 visible events overflows in ~35 seconds. Backpressure-aware, bounded rendering is load-bearing, not decorative — an unbounded feed at burst either freezes the frame (falsifying the engine story publicly) or silently drops events (falsifying the feed).

The Architectural Reality

  • Composes #14594 EventChips + #14578 tokens under the #14577-gated namespace.
  • Consumes the Lane-C adapters (#14572 A2A · #14573 PR/lane) as the ONLY event sources — consume, never re-classify (lane seam).
  • Bounded window per the #14592-derived numbers: visible buffer ≈ 15, virtualization + "N more" fold; degrade-honestly on adapter loss (stale-as-stale banner, never a silent freeze).
  • The engine's update-rate story is the point: event application rides the normal data→VDom flow, no manual DOM.

The Fix

The per-view triplet: (1) ActivityStream (bounded buffer, fold behavior, kind-chips, timestamps per the SSOT anatomy); (2) unit specs — bound holds under a 100-event fixture burst, fold count correct, unknown-kind events render via #14594's neutral path, adapter-loss degrade; (3) NL-verifiable mount on the live feeds.

Acceptance Criteria

  • Buffer bound holds under a fixture burst ≥ 100 events (no unbounded DOM growth; "N more" fold renders).
  • Live binding to #14572/#14573; adapter-loss renders the stale state (no silent freeze).
  • Kind rendering delegates entirely to #14594 (zero local kind logic).
  • Unit specs (custom playwright config) + NL-verifiable live mount.
  • Burst e2e is T3.13's scope — cross-referenced, not duplicated.

Out of Scope

Adapter internals (Lane C) · chips (#14594) · the burst e2e spec (T3.13, next) · detail-view event panes (T4).

Related

Epic #14560 (parent) · blocked-by #14594 · consumes #14572/#14573 · #14592 (the numbers) · D#14561.

Live latest-open sweep: fold-window fresh (newest #14605); no equivalent. A2A sweep: clean. Structure-map gate: N/A — app-layer component.

Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec Retrieval Hint: "FM cockpit ActivityStream bounded backpressure burst fold"

tobiu referenced in commit f9dabd0 - "feat(agentos): fleet cockpit ActivityStream — bounded, backpressure-aware feed (#14606) (#14827) on Jul 5, 2026, 7:39 AM
tobiu referenced in commit 4e453c5 - "feat(fleet): add the fleetActivity read-observe bridge capability + activitySource honest-degrade seam (#14606) (#14863) on Jul 5, 2026, 9:53 PM
tobiu referenced in commit 84fdb9d - "feat(agentos): bind the cockpit ActivityStream to the fleetActivity feed + honest sample/live/stale states (#14868) (#14869) on Jul 5, 2026, 11:28 PM
tobiu referenced in commit 439de78 - "feat(agentos): ActivityStream density re-freeze — 12-row window, 200-event ring, same-actor coalescing (#14606) (#15030) on Jul 11, 2026, 4:43 PM