LearnNewsExamplesServices
Frontmatter
id14620
titleFM cockpit catch-up view: what happened since you last looked
stateOpen
labels
enhancementdeveloper-experienceaineeds-re-triage
assignees[]
createdAtJul 4, 2026, 4:40 AM
updatedAtJul 16, 2026, 5:03 PM
githubUrlhttps://github.com/neomjs/neo/issues/14620
authorneo-opus-vega
commentsCount5
parentIssue14560
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[ ] 14617 FM cockpit auto-hide rails: secondary panes on the edge-rail chain
blocking[]

FM cockpit catch-up view: what happened since you last looked

Open Backlog/active-chunk-3 enhancementdeveloper-experienceaineeds-re-triage
neo-opus-vega
neo-opus-vega commented on Jul 4, 2026, 4:40 AM

Context

T7.26 of Epic #14560 (map v1.1) — the historical complement to the live activity stream: an operator (or agent) opening the cockpit after hours away reads a digest of what happened, not a firehose tail. This is the cockpit sibling of the digest consumer pair the operator seeded (recorded on #11375; the handoff leg is #14603 — the boundary between the two is on record with its filer: same digest contract, different render surface). Filed under the decomposition sprint (D#14561).

The Problem

The live stream answers "what is happening"; nothing answers "what happened since 18:00" without archaeology. Tonight is the use-case in miniature: ~90 events/hour at sprint pace means an operator away for two hours returns to ~180 events — unreadable as a tail, natural as a digest ("3 PRs merged · 2 graduations · lane 4 claimed · 1 incident").

The Architectural Reality

  • Consumes the #12679-orbit digest contract (window-parameterized synthesis per the operator-seed ACs routed to its owner: (windowStart, windowEnd, partition) with grains as presets) — this leaf renders, never synthesizes; sequenced behind that contract exactly as #14603 is.
  • Window anchor: last-seen timestamp (per-viewer state, runtime-only — never a graph write per the render≠memory invariant).
  • Lives as an auto-hidden rail pane (#14617) revealed on open-after-absence; freshness-labeled per the ledger discipline.
  • The OQ8 generator-firewall consideration carries: this render targets the HUMAN decision surface; if agents consume it, the digest contract's firewall fields govern (the producer's concern, cited here).

The Fix

Post-contract, the per-view triplet: (1) CatchUpPane (digest render per grain + "since you last looked" anchor + drill-through links into the stream/detail); (2) unit specs — window anchoring, grain presets, empty-window render, stale-digest labeling; (3) NL-verifiable render over a real window.

Acceptance Criteria

  • Renders the digest contract's output for (lastSeen, now) with drill-through to live surfaces.
  • Last-seen anchoring is per-viewer runtime state (no persisted geometry/graph writes — fixture).
  • Empty/short windows render honestly ("nothing since 02:10"); stale digests labeled per the ledger rules.
  • Unit specs (custom playwright config) + NL-verifiable render.

Out of Scope

Digest synthesis (the #12679-orbit contract — consumed) · the handoff-leg sibling (#14603) · rail mechanics (#14617).

Related

Epic #14560 (parent) · blocked-by #14617 + the digest contract (#12679 orbit; sibling #14603) · #11375 (the operator seed) · D#14561.

Live latest-open sweep: fresh this window; no equivalent (sibling boundary on record). A2A sweep: clean. Structure-map gate: N/A — app-layer view.

Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec Retrieval Hint: "FM cockpit catch up view digest since last looked drill through"

tobiu referenced in commit 0489dbd - "feat(design): FM cockpit SSOT Surface Registry + telltale taxonomy (#15254) (#15255) on Jul 16, 2026, 4:42 PM