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
| Screen | Source | State | Reality | Moves it |
|---|---|---|---|---|
| WORKSPACE | ||||
| Transfers | relays.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 detail | relay-detail.ts | ◐ partial | 1,999 lines, token-clean but ~132 inline styles and fully bespoke layout. Becomes the first object-detail-page adopter. | #488 |
| Series | series.ts | ○ legacy | Inline-styled header/search/cards; detail is a slide-in overlay, not an object page. Tool help card now live. | #452 · #488 |
| Stream | stream.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 |
| Sessions | sessions.ts | ○ legacy | Sibling of series.ts — same inline pattern, slide-in detail, silent 100-row cap. Tool help card live. | #453 · #488 |
| Graph | graph/ (~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 / Dashboard | overview.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 |
| Inbox | inbox.ts | ◐ partial | Has the legacy Cormorant .content-title; body is inline-rendered, no shared cards. |
polish |
| Stream Health | stream-health.ts | ○ legacy | Token-clean but 88 inline styles and a bold-Outfit heading instead of the display register. | polish |
| TOOLS | ||||
| Search | search.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 |
| Send | send-claim.ts | ○ legacy | Static card chrome, .card-title heads. Separate track. | #457 |
| Claim / Status | send-claim.ts | ○ legacy | Claim on hold (folding later); Status is decided-folded into Search's Code lookup. | #456 · hold |
| Connect | security.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 Connections | connections.ts | ○ deprecated | Confusing beside Connect; its flows already duplicate Requests. Leaves the rail; route becomes a redirect. | #606 |
| Catalog | catalog.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 |
| Trash | trash.ts | ○ legacy | Small, i18n'd, type-agnostic rows. Mirrors the Catalog table when it lands. Tool help card live. | #607 |
| Requests | requests.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 / Team | orgs.ts | ◐ partial | Uses shared list-item/badge (most aligned account page). Repositions under the Account hub. | #609 |
| Profile | profile.ts | ○ legacy | Form-fill over static markup; upgrade to the v3.5 anatomy + activation surface. | #608 |
| Settings | settings.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 / Security | security.ts | ◐ partial | Static card chrome; the legal-gate overlay carries its own isolated Cormorant + token-fallback styles. | #460 |
| Refer & Earn | refer.ts | ○ legacy | Flag-gated; static chrome, innerHTML table. | polish |
| PRE-AUTH / ADMIN | ||||
| Login / OTP | auth.ts + static | ◐ partial | Cleanest conformant heading in the app (.login-display Cormorant), 0 inline styles, 0 rogue hexes. |
polish |
| Onboarding | onboarding.ts | ◐ partial | 888-line wizard on shared buttons/chips/cards; gains the timezone step. | #455 · #610 |
| Admin demo | admin-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.