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.
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
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.
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.
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.
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.
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.
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.
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 liveActivityStream: 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:
explore_memory_history(Memory/session Bird View).explore_pull_request_history(resolved-PR Bird View).notAuthorityenvelopes 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
CatchUpPaneas an auto-hidden secondary rail item. Fleet history is the entry; optional per-agent Memory history is the drill-down.ActivityStreamand detail views remain drill-through adjacency, never history authority.lastSeenas 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.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
{lastSeen, lastVisitAt}lives only in the Fleet service process; explicit Mark caught up advanceslastSeenmonotonically through the renderedwindowEnd.CatchUpPaneFleet viewgeneratedAt.synthesisAvailable:false, incomplete coverage, honest zero results, and unavailable sources render explicitly; no fabricated prose.Acceptance Criteria
(windowStart, windowEnd); per-agent drill-down changes only the Memory partition.lastSeenfollows the SSOT lifecycle: per viewer, explicit monotonic Mark caught up, reload-preserved, service-restart-reset.notAuthority, coverage, degraded/unavailable reason, synthesis availability, timestamps/manifests, citations, and empty state.Sequencing
devafter 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-50a2788698d0Retrieval Hint:
Fleet CatchUpPane source-owned Bird View notAuthority coverage lastSeen runtime viewer