LearnNewsExamplesServices
Frontmatter
id14620
titleFM cockpit catch-up view: what happened since you last looked
stateClosed
labels
enhancementdeveloper-experienceai
assigneesneo-gpt-emmy
createdAtJul 4, 2026, 4:40 AM
updatedAtJul 19, 2026, 11:09 AM
githubUrlhttps://github.com/neomjs/neo/issues/14620
authorneo-opus-vega
commentsCount5
parentIssue10
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[x] 14617 FM cockpit auto-hide rails: secondary panes on the edge-rail chain
blocking[]
closedAtJul 18, 2026, 7:31 PM

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

Closed v13.2.0/archive-v13-2-0-chunk-2 enhancementdeveloper-experienceai
neo-opus-vega
neo-opus-vega commented on Jul 4, 2026, 4:40 AM

Context

T7.26 of Epic neomjs/neo-agent-institution#10 and the S3 Catch-up View in the Fleet cockpit design SSOT (apps/agentos/design/fleet-manager-cockpit-plan.html). This is the historical complement to the bounded live ActivityStream: an operator returning after an absence needs an invoked, provenance-bearing account of what happened, not a longer firehose tail.

The source contracts are now shipped:

  • neomjs/neo#14435 / PR neomjs/neo#15096: explore_memory_history (Memory/session Bird View).
  • neomjs/neo#15088 / PR neomjs/neo#15131: explore_pull_request_history (resolved-PR Bird View).
  • Both return query-time notAuthority envelopes with window, coverage, source-manifest, synthesis availability, and citations. They own synthesis and source completeness; Fleet must not reproduce either.

Live V-B-A on 2026-07-18 confirmed the important two-sided contract: the daily Memory call returned a complete 63-source envelope with synthesis; the daily resolved-PR call returned exhaustive live-GitHub child evidence but withheld synthesis because the local corpus projection was incomplete. The latter is a valid product result, not an error to hide.

Problem

The cockpit can answer “what is happening now,” but not “what happened since I last looked?” without manual archaeology. A static digest or cockpit-side summary would create a second synthesis authority and erase degraded coverage into plausible prose. The product needs a thin invoked view over the two source-owned runtime tools, with viewer-scoped temporal anchoring and honest absence/degradation.

Intended solution

  1. Add a capability-separated Fleet history read adapter behind the authenticated Fleet ingress. It invokes the two source-owned operations through injected read seams and returns their envelopes without synthesis, ranking, merging, or caching.
  2. Add CatchUpPane as an auto-hidden secondary rail item. Fleet history is the entry; optional per-agent Memory history is the drill-down. ActivityStream and detail views remain drill-through adjacency, never history authority.
  3. Keep lastSeen as Fleet-service runtime state keyed by the transport-stamped viewer. An explicit Mark caught up action advances it through a validated timestamp. Cockpit reload preserves it; Fleet-service restart resets it; no graph or browser-storage write exists.
  4. Render notAuthority, coverage counts, degraded/unavailable reasons, synthesis availability, source manifests, citations, and honest empty windows. A source may be healthy while another is degraded; do not collapse them into one green/red status.

Contract Ledger

Target Surface Source of Authority Proposed Behavior Fallback / Edge Case Docs Evidence
Fleet history adapter + wire read neomjs/neo#14435/#15088 shipped operations; authenticated Fleet ingress Invoke Memory and resolved-PR history independently for one validated half-open window; preserve each typed envelope and source identity. One source failure/degradation does not erase the other; return an explicit per-source unavailable/degraded envelope. Never synthesize or cache in Fleet. Owner JSDoc + wire-method docs Unit matrix: both healthy, one degraded, one unavailable, empty, invalid/future window; transport viewer cannot be caller-claimed.
Viewer runtime anchor D#15249 S3 ruling / design SSOT Per-viewer {lastSeen, lastVisitAt} lives only in the Fleet service process; explicit Mark caught up advances lastSeen monotonically through the rendered windowEnd. Reload retains; service restart resets. With no mark, use prior visit; with neither, render a first-use window choice rather than invent history. Owner JSDoc Two-viewer isolation, monotonic advance, future/stale-window refusal, reload/restart lifecycle witnesses.
CatchUpPane Fleet view neomjs/neo-agent-institution#10 design SSOT S3 Invoked rail pane renders fleet Memory + PR Bird Views, then supports per-agent Memory drill-down and citation drill-through. Pane-level freshness names generatedAt. synthesisAvailable:false, incomplete coverage, honest zero results, and unavailable sources render explicitly; no fabricated prose. Component JSDoc + SSOT citation Component/unit render matrix + Neural Link journey over real envelopes.
Activity/detail drill-through neomjs/neo#14606 live-feed authority + source citations Citation/ref actions open the nearest existing live/detail surface without treating the bounded stream as historical truth. Unsupported citation targets stay visible/copyable and do not navigate falsely. Handler JSDoc Unit routing matrix + NL click witness.

Acceptance Criteria

  • A transport-viewer-bound Fleet history adapter invokes both shipped source operations for one validated (windowStart, windowEnd); per-agent drill-down changes only the Memory partition.
  • Fleet performs zero synthesis, ranking, durable digest, graph write, browser-storage write, or result cache.
  • Runtime lastSeen follows the SSOT lifecycle: per viewer, explicit monotonic Mark caught up, reload-preserved, service-restart-reset.
  • The pane renders each source envelope honestly: notAuthority, coverage, degraded/unavailable reason, synthesis availability, timestamps/manifests, citations, and empty state.
  • Fleet-level entry, per-agent drill-down, and citation/live-surface drill-through are unit-covered and proven through one real Neural Link journey.
  • The pane consumes the established right secondary rail after neomjs/neo#14617; it does not add docking mechanics or ambient cockpit density.

Sequencing

  • Blocked by: neomjs/neo#14617 / PR neomjs/neo#15474 (Fleet product proof for the already-shipped rail/reveal/pin composition).
  • Producer blockers cleared: neomjs/neo#14435 and neomjs/neo#15088 are closed with their runtime operations shipped.
  • Implementation must branch from dev after neomjs/neo#15474 merges; do not stack on its test branch.

Out of Scope

History synthesis or source-corpus repair · changes to either source-owned Bird View tool · extending the live ActivityStream retention window · durable read receipts · chat/operator-send authority · docking internals.

Related

Parent neomjs/neo-agent-institution#10 · rail consumer neomjs/neo#14617 · live adjacency neomjs/neo#14606 · source producers neomjs/neo#14435/#15088 · design record D#15249 / neomjs/neo#15254.

Origin Session ID: 019f6981-3a8c-7530-a68b-50a2788698d0

Retrieval Hint: Fleet CatchUpPane source-owned Bird View notAuthority coverage lastSeen runtime viewer

tobiu referenced in commit 0489dbd - "feat(design): FM cockpit SSOT Surface Registry + telltale taxonomy (#15254) (#15255) on Jul 16, 2026, 4:42 PM
tobiu referenced in commit 6e36595 - "feat(fleet): add source-owned catch-up view (#14620) (#15482) on Jul 18, 2026, 7:31 PM
tobiu closed this issue on Jul 18, 2026, 7:31 PM