← app v3.5 componentsshell
epic #475 / #449 · audited against source 2026-07-18

Screen Reality

Every screen in the live app and where it actually stands against v3.5 — from a file-level audit of relay-app/concepts/src, not aspiration. ● shipped  ◐ partial  ○ legacy  ◌ off-pattern by design

ScreenSourceStateRealityMoves it
WORKSPACE
Transfersrelays.ts● shipped The list-shell adopter — facets, pager, three densities, saved views, labels. Caveats: card renderer is inline-styled (not primitives.relayCard), heading is bold Outfit not the display register. Tool help card live. #451 ✓ · #604 ✓
Relay detailrelay-detail.ts◐ partial 1,999 lines, token-clean but ~132 inline styles and fully bespoke layout. Becomes the first object-detail-page adopter. #488
Seriesseries.ts○ legacy Inline-styled header/search/cards; detail is a slide-in overlay, not an object page. Tool help card now live. #452 · #488
Streamstream.ts◐ partial Most built-out module (2k lines): pd-* detail grid, activity rail, SWR cache, the original tool help card (now with the has-content guard). Chrome still part-inline; wire vocabulary still "pulse". #454
Sessionssessions.ts○ legacy Sibling of series.ts — same inline pattern, slide-in detail, silent 100-row cap. Tool help card live. #453 · #488
Graphgraph/ (~3.2k lines)● shipped Modern and self-contained on the gc-* kit (the kit's source of truth; manifest-home borrows it). Own track; 2 stray hexes in canvas.ts. #465 track
Overview / Dashboardoverview.ts + manifest-home.ts◐ partial manifest-home (Root Manifest, flag-gated) is modern gc-*; the overview wrapper is inline-heavy with one hardcoded teal rgba. #486
Inboxinbox.ts◐ partial Has the legacy Cormorant .content-title; body is inline-rendered, no shared cards. polish
Stream Healthstream-health.ts○ legacy Token-clean but 88 inline styles and a bold-Outfit heading instead of the display register. polish
TOOLS
Searchsearch.ts◐ partial Cormorant heading ✓, but a bespoke facet rail with deliberate off-token facet hues. Direction: universal ⌘K primary; screen converges into the Catalog table. Tool help card live. #456
Sendsend-claim.ts○ legacy Static card chrome, .card-title heads. Separate track. #457
Claim / Statussend-claim.ts○ legacy Claim on hold (folding later); Status is decided-folded into Search's Code lookup. #456 · hold
Connectsecurity.ts + connect-panel.ts◐ partial connectPanelHtml is the cleanest shared widget in the app (0 inline styles); the page around it is static card chrome. Separate track. #460 track
Org Connectionsconnections.ts○ deprecated Confusing beside Connect; its flows already duplicate Requests. Leaves the rail; route becomes a redirect. #606
Catalogcatalog.ts + tags.ts○ legacy Single-tab shell over tags.ts (44 inline styles, no shared components). Becomes the rich object browser over the whole relay base. Tool help card live. #458
Trashtrash.ts○ legacy Small, i18n'd, type-agnostic rows. Mirrors the Catalog table when it lands. Tool help card live. #607
Requestsrequests.ts○ legacy Key touch point, promoted out of the polish batch: four stacked sections over static markup, pre-3.5 chrome. Tool help card live. #605
ACCOUNT
Organizations / Teamorgs.ts◐ partial Uses shared list-item/badge (most aligned account page). Repositions under the Account hub. #609
Profileprofile.ts○ legacy Form-fill over static markup; upgrade to the v3.5 anatomy + activation surface. #608
Settingssettings.ts◐ partial Token-clean cards; timezone i18n bug fixed + change-password removed (2026-07-18). Sectioned restructure pending; timezone capture moves to onboarding. #459 · #603 ✓ · #610
Plan / Securitysecurity.ts◐ partial Static card chrome; the legal-gate overlay carries its own isolated Cormorant + token-fallback styles. #460
Refer & Earnrefer.ts○ legacy Flag-gated; static chrome, innerHTML table. polish
PRE-AUTH / ADMIN
Login / OTPauth.ts + static◐ partial Cleanest conformant heading in the app (.login-display Cormorant), 0 inline styles, 0 rogue hexes. polish
Onboardingonboarding.ts◐ partial 888-line wizard on shared buttons/chips/cards; gains the timezone step. #455 · #610
Admin demoadmin-demo.ts◌ by design Deliberately hardcoded dark demo chrome — off-token on purpose.

Cross-cutting reality (the honest part): ui/primitives.ts — the canonical screenHead() / codeHero() / relayCard() emitters — is imported by zero screens. Every Cormorant heading in the app today is either the legacy .content-title or bespoke inline styling. The work-order's "adopt or delete" decision on primitives.ts is still open; adopting it (starting with the #488 object pages and #605/#608 rebuilds) is what makes this matrix converge.

Rogue-teal sweep (≈113 hits, 22 files): the largest cluster is index.html's 20× #00D9C8 — confined to SVG mark/boot-splash motion (sanctioned). The genuinely rogue surface hardcodes: public/relay-app.css (15× #0d9488 in component rules), activation.ts (5×), plus scattered var(--teal, #hex) fallbacks (benign). admin-demo.ts is off-token by design. No #14b8a6 anywhere.

Tool help cards (#604): live on Transfers · Series · Stream · Sessions · Search · Catalog · Requests · Trash with server-persisted seen-state and the has-content guard. Send/Connect follow when their tracks land.

audited from relay-app source 2026-07-18 · board: epics #475 / #449 / #465 · re-audit when a matrix row ships