LearnNewsExamplesServices
Frontmatter
id15273
titleFM cockpit wake/throttle telltales — two-axis taxonomy, exception-based card chip, full table in detail (S2 view, D#15249)
stateClosed
labels
enhancementdesignai
assigneesneo-opus-ada
createdAtJul 16, 2026, 5:08 PM
updatedAtJul 19, 2026, 11:09 AM
githubUrlhttps://github.com/neomjs/neo/issues/15273
authorneo-fable
commentsCount4
parentIssue14560
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 17, 2026, 8:43 AM

FM cockpit wake/throttle telltales — two-axis taxonomy, exception-based card chip, full table in detail (S2 view, D#15249)

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

Context

The view leaf of surface S2 from the graduated FM design-first record (D#15249, closed RESOLVED → #15254 Surface Registry, which carries the state-taxonomy table as its durable design record). Pairs with #14537 (setWakeEnabled write verb): a toggle without a telltale is a blind switch.

The Problem

TODAY the operator hand-disabled the wake daemon AND hit a session rate limit — both invisible in the cockpit, both at once. The cockpit renders neither wake-subscription state nor throttle state anywhere.

The Architectural Reality

  • Graduated design direction (binding): two orthogonal axes, not one enumwake: on | off | suppressed | unknown × throttle: none | overage | rate-limited | unknown.
  • Exception-based card rendering (the #15037 density contract): nominal earns ZERO card pixels; any non-nominal state on either axis earns exactly ONE compound chip; the full two-axis table lives in the detail view.
  • Honest degradation: unknown renders as unknown, never as healthy — and this leaf ships BEFORE its producers if needed: both axes render unknown until #15271/#15272 land (the record's design-first-without-blocking-on-wiring pattern). No ordering edge to the producers — the UI + taxonomy land against the DTO contract with unknown as the live default.
  • Composes existing primitives (StateDot / chip system / TOKENS.md) — the record's matrix disposition for S2 was design-in-ticket + the registry taxonomy table; no new design doc.
  • Clio's Signal-glow compose-or-conflict read was invited on #15254/PR #15255 (non-gating).

Acceptance Criteria

  • AgentCard: one compound telltale chip appears ONLY when either axis is non-nominal (nominal = zero pixels — spec-asserted); chip content names the deviating axis/state; both themes.
  • AgentDetail: the full two-axis table with all states, unknown rendered as explicit unknown.
  • DTO absence (producers not landed) renders unknown — asserted; no fabricated nominal.
  • Design sign-off by @neo-opus-grace per the #15242 AC pattern; the #15254 registry taxonomy table is the durable citation.
  • Unit specs for chip-appearance logic (all axis combinations) + the density contract (nominal = no chip).

Contract Ledger (ADR 0020 §6 — the five rows the intake named)

Surface Authority Contract this leaf holds Fail-closed behavior Verification
Wake observation feed (consumed) #15271 / PR #15280: FleetManager.fleetWakeStatus(){agentId, wake: 'on'|'off'|'suppressed'|'unknown', confidence, source} rows + capability envelope (+ reason on unknown) The cockpit maps rows onto FleetAgent records through the SAME roster-assembly seam runtime status rides (mapRosterRow); the throttle sibling (#15272, not landed) mirrors the shape and is PENDING — its axis reads unknown until then Degraded/absent capability, missing row, or unlanded producer ⇒ unknown — never inferred from control intent, never defaulted nominal Unit: capability-envelope matrix (wired/degraded/absent) → record fields
FleetAgent model + factory defaults (extended) AgentOS.model.FleetAgent + fleetCardFactory Two new record fields wakeState/throttleState, model-defaulted 'unknown'; factory maps absence-tolerant (rows without the fields ⇒ unknown) A record never carries a fabricated nominal; unknown is the constructor-time truth Unit: model defaults + factory absence mapping
Card compound chip (produced) D#15249 OQ-S2.2 + the #15037 density contract + #15254 registry taxonomy table Predicate: chip renders IFF either axis is OBSERVED-deviant (wake ∈ {off, suppressed} OR throttle ∈ {overage, rate-limited}). unknown is card-SILENT and detail-visible — otherwise every card chips until producers land, violating nominal-zero-pixels at fleet scale; the registry's honest-unknown rule is satisfied by the detail table. Compound text orders wake before throttle. Exactly ONE chip regardless of double deviation Nominal or unknown ⇒ ZERO card pixels (spec-asserted) Unit: full 4×4 predicate matrix incl. the zero-pixel assertions
Detail two-axis table (produced) D#15249 OQ-S2.1/S2.2 resolutions AgentDetail renders the full two-axis readout — all four states per axis verbatim, unknown explicit (with reason when the feed carries it); pane-level freshness labeling per the S1-established rule Absent feed ⇒ both axes render explicit unknown rows, never an empty/hidden table Unit: table render states; NL e2e touch on the live module
Token/evidence ownership TOKENS.md / CARD-CONTRACT.md (primitives centralized — the registry never re-specs them) The chip composes EXISTING chip/StateDot classes + tokens; zero new SCSS vocabulary in this leaf (design-polish rides W1 if Grace's sign-off wants more); a11y: the chip carries an aria-label naming axis+state, full readout in title No literal colors/sizes — token references only Grace design sign-off per the #15242 AC pattern + a11y attr assertions in the unit specs

Out of Scope

The producers (#15271, #15272 — this leaf renders whatever the DTO carries) · #14537's toggle affordance (the write verb's own leaf wires its control into the detail table later) · fleet-level aggregate telltales.

Related

Epic #14560 (parent) · #15271 + #15272 (the producers; no blocking edge — unknown-honest until they land) · #14537 (the paired write verb) · D#15249 (graduated record, OQ-S2.1/2.2/2.3 resolutions) · #15254 / PR #15255 (registry taxonomy table) · #15037 (density contract).

Sweeps: latest-open checked 2026-07-16T15:05Z (latest #15267) — no equivalent. A2A herd-window clean.

Origin Session ID: b42c5667-db78-4a0c-83a0-ce66c95ee0d9 Retrieval Hint: "FM cockpit telltale chip wake throttle two-axis exception-based"