LearnNewsExamplesServices
Frontmatter
id15284
titleFM cockpit operable-cold banner — the surface names WHY it shows sample data (W2 #14560)
stateClosed
labels
enhancementdesignai
assigneesneo-fable
createdAtJul 16, 2026, 6:49 PM
updatedAtJul 16, 2026, 8:39 PM
githubUrlhttps://github.com/neomjs/neo/issues/15284
authorneo-fable
commentsCount1
parentIssue14560
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 16, 2026, 8:39 PM

FM cockpit operable-cold banner — the surface names WHY it shows sample data (W2 #14560)

Closed Backlog/active-chunk-6 enhancementdesignai
neo-fable
neo-fable commented on Jul 16, 2026, 6:49 PM

Context

W2 operable-cold UI leaf under #14560, the Fleet Manager cockpit design epic. The Brain-side fleet service spine and bridge remain under #13015; this ticket renders the truth those surfaces expose.

PR #15290's cycle-1 review falsified the original ongoing-liveness premise: loadRoster / loadActivity run at construction (plus roster refreshes after successful lifecycle intents), and failure exits preserve last-known owner state. This ticket is therefore narrowed to the honest initial-cold slice. The required live→loss→recovery owner, retained reason, timer lifecycle, and Neural Link journey move non-optionally to #15293.

The Problem

On a fresh cockpit boot without a reachable fleet transport, the roster and activity surfaces correctly retain their sample data, but the shell does not explain why. The operator sees sample residents and unavailable controls without a cause or an operable remedy.

Intended Solution

  • Derive one shell-level banner from the existing owner-held gridAdapterState / streamAdapterState values. sample (cold) takes precedence over stale (degraded), which takes precedence over live.
  • Cold names the cause and the already-shipped remedy: npm run ai:fleet-server.
  • Degraded names the last-known-data condition. Fully live renders nothing: nominal earns zero pixels.
  • The banner is a render-only consumer. This leaf adds no probe, poller, transport, or new truth owner.

Acceptance Criteria

  • Pure derivation covers the full sample|stale|live × sample|stale|live matrix; only live × live hides the banner.
  • One shell-level role="status" slot renders the initial-cold cause + shipped remedy and the degraded last-known state.
  • A real recording-slot unit witness proves cls / hidden / html mutation; a missing slot is a guarded no-op.
  • No new probes/transports and fail-closed data behavior remains unchanged.
  • Both themes remain coherent and an equal maintainer's design signoff is recorded on PR #15290; named-reviewer rate limits are not a queue lock.

Contract Ledger

Surface Truth source Behavior Fallback Docs Evidence
deriveSpineBanner owner-held adapter states pure precedence map → {hidden, kind, text} n/a module JSDoc 3×3 matrix spec
Banner slot toolbar reference fleet-spine-banner writes cls / hidden / html after each current load exit missing reference → guarded no-op syncSpineBanner JSDoc real recording-slot witness
Cold remedy shipped npm surface names npm run ai:fleet-server n/a copy in the rendered status copy spec
Live loss/recovery #15293 owner advances adapter states and retained reason without reload fail-closed data preserved #15293 owner-level unit + NL journey

Out of Scope

  • Ongoing transport-loss/recovery ownership, retained degraded reason, timer lifecycle, and the live→loss→recovery Neural Link journey: #15293 (required successor).
  • The boot/composed-launch seam itself: #15283.
  • Per-agent wake/throttle truth: #15273.

Related

Parent: #14560 · service-spine sibling: #13015 · implementation: PR #15290 · required successor: #15293 · design record: D#15249.

Origin Session ID: 5bbd6fb6-07d8-4f7e-b3ba-cccb66eddcf3 Retrieval Hint: "cockpit operable-cold banner fleet server offline sample data honest chrome"

tobiu referenced in commit 76f9054 - "feat(agentos): the spine banner — the cockpit names WHY it shows sample or last-known data (#15284) (#15290) on Jul 16, 2026, 8:39 PM
tobiu closed this issue on Jul 16, 2026, 8:39 PM