Context
T4.14 of Epic #14560 (map v1.1) — click an agent card → the resident's detail: thought-stream, current lane, repo activity, PRs. The SSOT's caption names it ("Click an agent → its thought-stream, lane, repo, and PRs"). Filed under the decomposition sprint (D#14561).
The Problem
The detail view is where the cockpit's claims become CHECKABLE — and therefore where stale data lies hardest. A lane line that is 40 minutes old rendered as current is exactly the class the #13444 graduation's freshness ledger forbids: every mutable claim carries its observation time and stale renders AS stale. No surface needs that discipline more than the drill-in.
The Architectural Reality
- Composes the card contract (#14605 fields at expanded grain) + #14593/#14594 primitives; namespace per #14577.
- Panes bind the same Lane-C feeds (#14572/#14573) plus per-agent memory-surface reads where contracts exist; every pane header renders
observedAt + freshness state (the ADR 0032 §2.2.1 ledger fields at UI grain).
- The ADR 0032 render rules govern the identity header: trail-first (deeds/lanes), evolution-rate slot reserved (consumes the #14565 instruments when they land), no role-typing anywhere.
- Pop-out (T4.15) is a separate leaf — this view must render shell-agnostic (dev-server now, OS-window host later).
The Fix
The per-view triplet: (1) AgentDetail view (identity header per ADR 0032 · lane pane · activity pane · PRs pane, each freshness-labeled); (2) unit specs — pane freshness rendering (fresh/stale/lost fixtures), header render rules, unknown-pane-data degrade; (3) NL-verifiable drill from a live card.
Acceptance Criteria
Out of Scope
Pop-out to OS window (T4.15) · drill e2e round-trip (T4.16) · thought-stream SOURCE contracts (Lane-C/Memory-Core seams — consumed as they exist, panes degrade honestly where they don't).
Related
Epic #14560 (parent) · blocked-by #14605/#14598 · consumes #14572/#14573 · ADR 0032 (PR #14583) · #13444 freshness carry-forward · D#14561.
Live latest-open sweep: fold-window fresh (newest #14607); no equivalent. A2A sweep: clean. Structure-map gate: N/A — app-layer view.
Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec
Retrieval Hint: "FM cockpit agent detail drill freshness labeled panes"
Context
T4.14 of Epic #14560 (map v1.1) — click an agent card → the resident's detail: thought-stream, current lane, repo activity, PRs. The SSOT's caption names it ("Click an agent → its thought-stream, lane, repo, and PRs"). Filed under the decomposition sprint (D#14561).
The Problem
The detail view is where the cockpit's claims become CHECKABLE — and therefore where stale data lies hardest. A lane line that is 40 minutes old rendered as current is exactly the class the #13444 graduation's freshness ledger forbids: every mutable claim carries its observation time and stale renders AS stale. No surface needs that discipline more than the drill-in.
The Architectural Reality
observedAt+ freshness state (the ADR 0032 §2.2.1 ledger fields at UI grain).The Fix
The per-view triplet: (1) AgentDetail view (identity header per ADR 0032 · lane pane · activity pane · PRs pane, each freshness-labeled); (2) unit specs — pane freshness rendering (fresh/stale/lost fixtures), header render rules, unknown-pane-data degrade; (3) NL-verifiable drill from a live card.
Acceptance Criteria
observedAt+ freshness state; a stale fixture renders visibly stale (never silently current).Out of Scope
Pop-out to OS window (T4.15) · drill e2e round-trip (T4.16) · thought-stream SOURCE contracts (Lane-C/Memory-Core seams — consumed as they exist, panes degrade honestly where they don't).
Related
Epic #14560 (parent) · blocked-by #14605/#14598 · consumes #14572/#14573 · ADR 0032 (PR #14583) · #13444 freshness carry-forward · D#14561.
Live latest-open sweep: fold-window fresh (newest #14607); no equivalent. A2A sweep: clean. Structure-map gate: N/A — app-layer view.
Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec Retrieval Hint: "FM cockpit agent detail drill freshness labeled panes"