sticky back-chevron rail, tenant nav semantics, quiet Clara card, WhatsApp-style player
25 Aug 2026 · branch feat/detail-polish-round2 · captured against propflow-stage · at 96dd7d7f76+local
Data note. Every name and balance below comes from propflow-stage, which is anonymized by construction (ADR-0097/0110 — phones in the impossible +1000 NPA, emails @example.test). The identical capture against prod would carry real tenants' names and balances and is not safe to attach anywhere, which is why the generator refuses to run against one.
The new standard geometry: sidebar → 20px → 24px chevron → 20px → title, with the title 20px under the top bar (was 32). The header trail reads Tenants / name — the side nav stays on Tenants for a tenant close-up, and back is history-back, returning wherever you came from.
Asserted in the captured DOM — Tenants · Summary. The parent crumb and the tenant body are both rendered — the chevron sits in the gutter, not on a hand-rolled top row.
The sidebar cards now breathe: the DetailPage sidebar column gained space-y-6 — the Follow-up and Activity Log cards had zero gap between them. (The other round-2 sidebar call, the Clara card dropping its “Powered by Clara” badge, shows on the tenant capture above — the title already says who wrote it.)
Asserted in the captured DOM — Activity Log. The sidebar rail rendered through the standard host — the spacing fix applies to every DetailPage consumer.
View Full Conversation used to put its back affordance somewhere else entirely. The narrow standalone reader now hosts the same gutter chevron at the same x/y as every other close-up — the whole point of the standard: one place for the mind to look.
Asserted in the captured DOM — Conversations. The label-only parent crumb (staff-only list, no href) confirms the standalone header went through the shared structured-header path.
The WhatsApp-style audio player in dark: bare play icon, waveform bars in mid-tone over border-tone, time under the waveform, inverted speed chip, the whole player on the muted surface — “not that purple one.” All tokens, so dark just works.
Asserted in the captured DOM — Conversations
The chevron is sticky: it sits on the title line at rest and pins just under the top bar as the page scrolls (round 5: “should it stay stuck? Since there's nothing in that space”). Reviewed live by the owner through five tunnel rounds on this exact head; this artifact is the rendered record of the state he approved for prod testing.