LearnNewsExamplesServices
Frontmatter
id14598
titleFM cockpit AgentCard component — the resident card at the artifact bar
stateOpen
labels
enhancementdeveloper-experienceai
assigneesneo-opus-vega
createdAt4:16 AM
updatedAt1:47 PM
githubUrlhttps://github.com/neomjs/neo/issues/14598
authorneo-opus-vega
commentsCount0
parentIssue14560
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[x] 14593 FM cockpit state-dot, pulse and health primitives (reduced-motion honored)
blocking[ ] 14614 FM cockpit connect and add-agent entry: operable-cold onboarding surface, [ ] 14611 FM cockpit per-agent control cluster: start / stop / restart with honest round-trip states, [ ] 14599 FM cockpit fleet grid + health summary bar (density-informed layout)

FM cockpit AgentCard component — the resident card at the artifact bar

Open Backlog/active-chunk-3 enhancementdeveloper-experienceai
neo-opus-vega
neo-opus-vega commented on 4:16 AM

Context

T2.7 of Epic #14560 (map v1.1) — the cockpit's atom: the per-agent card composing the #14593 primitives into the SSOT artifact's card anatomy (family rail · state dot+pulse · name · engine tag · state line · current-lane line · foot meta + per-card controls slot). Filed under the decomposition sprint (D#14561).

The Problem

The card is where the product principles and the ADR 0032 render rules meet the pixel: state reads at a glance (form-encoded status), real-time is the spine (live lane-line), and the anti-lock-in contract at card grain. Hand-rolling it per view (grid, detail header, pop-out title) would fork the resident's visual identity across surfaces.

The Architectural Reality

  • Composes #14593 primitives (StateDot/FamilyRail/HealthSwatch) + #14578 tokens; namespace per the #14577 gate.
  • ADR 0032 bindings at card grain (the first consumer): name renders as mutable display state over the durable id (§2.3.2); the engine tag ("opus-4.8" / "fable-5" in the mock) is session metadata, never identity (§2.3.7) — bound from the current EmbodiedEpisode-era data when #11318 lands, from the roster DTO until then; the family rail re-renders in place on family change, same resident (§2.3.3 fixture).
  • Wire: consumes the Lane-2 roster/status DTO (#14571, approved per its owner) + #14595 runtime-status — the card binds LIVE per map v1.1 (no mocks; degrade-honestly when the wire is down: stale renders as stale, the #13444 freshness discipline at card grain).
  • The per-view triplet: component + unit specs + NL-verifiable render.

The Fix

One PR: (1) AgentCard (config-driven: identity id, display name + provenance slot, engine tag, state, lane line, foot meta, controls slot — controls themselves are T5); (2) unit specs — state→primitive mapping, name-as-display-state binding (rename re-renders, same card instance), engine-tag-as-metadata, stale-wire render; (3) NL-verifiable mount (dev-server card wall bound to the live roster).

Acceptance Criteria

  • Card renders the SSOT anatomy from #14593/#14578 exclusively (zero local colors/spacing).
  • Name binding: a display-name change re-renders in place — same instance, no re-key (ADR 0032 §2.3.2 fixture).
  • Engine tag binds session/era metadata; a tag change never re-keys the card (§2.3.7 fixture).
  • Family-rail rebind re-renders in place (§2.3.3 fixture).
  • Live wire binding (#14571 DTO + #14595 status) with stale-as-stale degrade; no mock path in the shipped code.
  • Unit specs (custom playwright config) + NL-verifiable render wall.

Out of Scope

Controls behavior (T5) · grid layout (T2.8) · detail view (T4) · primitives/tokens (#14593/#14578) · wire methods (Lane 2: #14571/#14595).

Related

Epic #14560 (parent) · blocked-by #14593 · consumes #14571/#14595 (Lane-2 seams, Ada) · ADR 0032 §2.3 (PR #14583) · #14592 density evidence (card-churn data) · D#14561.

Live latest-open sweep: latest 8 checked 2026-07-04T02:13Z (newest #14595); no equivalent. A2A sweep: clean (Ada's L2 claims are the consumed seams, boundary acked both directions). Structure-map gate: N/A — app-layer component.

Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec Retrieval Hint: "FM cockpit AgentCard resident card name display state engine metadata"