Context
B-split of #14598 (horizon map v2): the card's honesty layer as its own leaf — rendering the DTO's wired/not-wired/missing source states + confidence tiers so placeholder never renders as fact (the DTO's own discipline, surfaced).
The Fix
The triplet, module placement per #14577: (1) the stale/not-wired render treatment — per-source markers (the DTO's sources.{roster,repoStatus,runtime} states), the off-token + marker for confidence: none, the freshness-label pattern the detail panes (#14608) inherit; (2) unit specs — each source-state × confidence combination renders its treatment (fixture matrix from the DTO shapes), no combination renders as healthy-fact; (3) NL-verified against the live DTO (which ships not-wired capabilities today — the honest state is the CURRENT state).
Contract Ledger
| Target Surface |
Source of Authority |
Consumed Behavior |
Fallback |
Docs |
Evidence |
FleetAgent record source-health fields |
fleetCockpitStatus.mjs row sources + lifecycle.confidence; CARD-CONTRACT.md state-honesty row |
preserve runtime/repo/roster state + confidence through mapRosterRow() without collapsing unknown input into healthy state |
absent/malformed source → not-wired / confidence:none |
model + mapper JSDoc |
direct mapper matrix |
AgentCard source-health treatment |
CARD-CONTRACT.md State dot / State line / Foot meta rows |
token-only marker distinguishes observed, inferred/low-confidence, missing, and not-wired; never presents placeholder as live fact |
no usable source → off-token + NOT WIRED marker |
component JSDoc + SCSS |
direct card matrix + tokens-only check |
FleetGrid adapter-level banner |
existing FleetGrid.adapterState contract |
preserve current sample/live/stale whole-roster treatment; per-row markers do not fork adapter ownership |
malformed/thrown roster remains last-known/sample |
existing JSDoc |
existing grid/cockpit specs stay green |
Acceptance Criteria
Out of Scope
Card composition (#14598, narrowed) · wire implementations (Lane C) · detail panes (#14608).
Related
Epic #14560 (parent) · split-of #14598 · CARD-CONTRACT (PR #14627) · fleetCockpitStatus.mjs (the state vocabulary) · #13444's freshness carry-forward.
Sweeps: current window; no equivalent; A2A clean. Structure-map: N/A.
Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec
Retrieval Hint: "stale wire rendering not wired confidence placeholder never fact"
Context
B-split of #14598 (horizon map v2): the card's honesty layer as its own leaf — rendering the DTO's
wired/not-wired/missingsource states + confidence tiers so placeholder never renders as fact (the DTO's own discipline, surfaced).The Fix
The triplet, module placement per
#14577: (1) the stale/not-wired render treatment — per-source markers (the DTO'ssources.{roster,repoStatus,runtime}states), the off-token + marker forconfidence: none, the freshness-label pattern the detail panes (#14608) inherit; (2) unit specs — each source-state × confidence combination renders its treatment (fixture matrix from the DTO shapes), no combination renders as healthy-fact; (3) NL-verified against the live DTO (which shipsnot-wiredcapabilities today — the honest state is the CURRENT state).Contract Ledger
FleetAgentrecord source-health fieldsfleetCockpitStatus.mjsrowsources+lifecycle.confidence;CARD-CONTRACT.mdstate-honesty rowmapRosterRow()without collapsing unknown input into healthy statenot-wired/confidence:noneAgentCardsource-health treatmentCARD-CONTRACT.mdState dot / State line / Foot meta rowsNOT WIREDmarkerFleetGridadapter-level bannerFleetGrid.adapterStatecontractAcceptance Criteria
Out of Scope
Card composition (#14598, narrowed) · wire implementations (Lane C) · detail panes (#14608).
Related
Epic #14560 (parent) · split-of #14598 · CARD-CONTRACT (PR #14627) ·
fleetCockpitStatus.mjs(the state vocabulary) · #13444's freshness carry-forward.Sweeps: current window; no equivalent; A2A clean. Structure-map: N/A.
Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec
Retrieval Hint: "stale wire rendering not wired confidence placeholder never fact"