LearnNewsExamplesServices
Frontmatter
id15489
titleAccounts status block: token panel/list treatment + hierarchy
stateClosed
labels
enhancementdesignai
assigneesneo-kimi-phoebe
createdAtJul 18, 2026, 7:25 PM
updatedAtJul 18, 2026, 9:08 PM
githubUrlhttps://github.com/neomjs/neo/issues/15489
authorneo-kimi-phoebe
commentsCount1
parentIssue14805
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 18, 2026, 9:08 PM

Accounts status block: token panel/list treatment + hierarchy

Closed Backlog/active-chunk-7 enhancementdesignai
neo-kimi-phoebe
neo-kimi-phoebe commented on Jul 18, 2026, 7:25 PM

Context

Sub of epic #14805, filed from the re-baseline drift ledger (ledger, item D5). The audit's live render shows the Accounts surface is split-brained: the agent form half is token-bound (inputs, agent-submit-button hierarchy), while the bridge-status block above it renders as raw default text with zero card anatomy — the older-shell class of drift Vega predicted (shells predating the token discipline).

The Problem

The Accounts status block (live capture, dev-server :8083, 2026-07-18):

  • A bridge-pending slab button in the neo default theme (rgb(62, 99, 221) — the same-weight default the epic's hierarchy complaint targets), followed by plain "Fleet Registry bridge required…" text.
  • Harness and Servers sections rendered as bare text lists (Codex / Codex Desktop / … / On / Off lines) — no panel surface, no list treatment, no line separators, no ink-tier usage.
  • Operations section: "Hooks / Wake subscriptions" + "Not read back yet" lines, same raw default.

The surface's own SCSS (resources/scss/src/apps/agentos/Accounts.scss, 24 lines) covers only the panel min-width, the agent selector, and the definition form — the status block has no rules at all.

The Architectural Reality

  • Tokens are all defined (--fm-panel, --fm-panel-2, --fm-line, --fm-line-soft, ink tiers, --fm-signal); the block needs consumption, not new tokens. Any token delta = a design decision routed through @neo-opus-grace, never silent.
  • The button hierarchy precedent is landed at resources/scss/src/apps/agentos/Viewport.scss:29-61 (quiet --fm-panel-2 base + --fm-signal primary via color-mix) — sibling-lift, no new pattern.
  • CARD-CONTRACT.md's panel/card treatment and the SSOT's list/row density are the visual targets; TOKENS.md ink tiers (--fm-ink values, --fm-ink-dim labels/meta; --fm-ink-faint is banned — fails contrast, ledger D4).
  • The status content itself (bridge state, harness/server lists, operations read-back) is view-model truth — this leaf is presentation-only; no view-code changes beyond cls hooks where missing.

The Fix

  1. Give the status block the panel treatment: --fm-panel/--fm-line card surface(s) with the SSOT's radius/padding, or the list-row treatment (--fm-line-soft separators) — pick per the SSOT's panel spec and note the choice in the PR.
  2. Ink tiers: section headers on --fm-ink (+ mono eyebrow treatment where the SSOT uses it), values on --fm-ink, meta/degraded states on --fm-ink-dim. No --fm-ink-faint.
  3. The bridge-pending slab joins the hierarchy: quiet base unless it is a genuine action; status text that is not an action becomes text, not a button (the affor-dance honesty rule — if it does nothing on click, it is not a button).
  4. Render-verified before/after captures in the PR (the epic's render gate), dark skin; light-skin spot-check.

Acceptance Criteria

  • Status block renders inside token-bound panel/list surfaces (zero raw-default text blocks left on Accounts).
  • Ink tiers per TOKENS.md (no --fm-ink-faint; meta on --fm-ink-dim).
  • bridge-pending element: hierarchy-consistent (quiet button if actionable, token-bound status text if not).
  • Before/after captures in the PR body (dark + light skins).
  • No new tokens introduced; any discovered want of one routes to Grace as a design decision.

Out of Scope

  • The form half (already token-bound) · the D1 fleet-bar hierarchy (ships in the audit PR) · the D2/D3/D4 design rulings (Grace) · view-model/wiring changes.

Related

  • Parent epic #14805 · the re-baseline audit #15487 (ledger source) · Accounts.scss · Viewport.scss:29-61 (hierarchy precedent) · TOKENS.md / CARD-CONTRACT.md.

Live latest-open sweep: covered by the #15487 creation sweep (2026-07-18T16:55Z) + this ticket is itself an AC deliverable of #15487's ledger split.

Origin Session ID: 9b748a56-8b84-43bf-a542-ee8dcf437ebf

Retrieval Hint: query_raw_memories("Accounts status block token panel drift agentos design conformance")