Chat · refining C · strip + sheet

Chat-first, progress a tap away

The human conversation gets the whole screen. A single slim status strip under the header holds the latest step; tap it and a sheet slides up with the full timeline. Because progress is hidden by default, the strip earns its keep — it updates and briefly highlights the moment a milestone lands, so a member never has to go looking.


Resting — a step just landed
21:04
Firm acknowledged your caseCoordinator with you New14:12
ELA
Coordinator
I’m your coordinator. The firm has your details now — I’ll relay their first update right here.
ELA
You’ll see every update land here as it happens — I’m not going anywhere.
Okay. Please hurry.
21:03
ELA
They’ve confirmed. I’ll stay with you until this is resolved.
Message your coordinator…
The strip shows the latest step, flashes a gold “New”, then settles. Chat is never covered.
Tap the strip — full timeline
21:04
Firm acknowledged your case14:12
ELA
Coordinator
I’m your coordinator. The firm has your details now — I’ll relay their first update right here.
Okay. Please hurry.
21:03

Case progress

Your coordinator is with you · online

Case armed
14:02
Firm assigned — Al Rowaad
14:09
A coordinator joined
14:10
Firm acknowledged your case
14:12
Swipe down or tap outside to dismiss. The timeline has room to be read properly here.

What I’ll build

Behaviour

  • Strip = latest step, always visible. On a new milestone it updates, flashes a gold “New”, then settles — the only progress signal that needs to reach a member who’s watching the chat.
  • Sheet = full timeline on tap. Swipe-down / tap-outside to dismiss; honours reduced-motion.
  • Just armed: strip reads “Assigning your team…”, thread already has a standing coordinator message — never blank.

Under it

  • Pure-chat thread + a durable JSONB thread table (case + member uuid), shared with the ops console — also retires the dead /support/tickets route (#4) and closes #52’s case-messages leg.
  • Strip + sheet render from the case’s existing lifecycle events — no new source of truth for case state.
  • RN screen through authedFetch (clean session-eject).

Reply build it and I start on the durable thread + this screen (ops side comes with it). Or tweak: the “New” flash, the strip copy (“Firm acknowledged your case” vs shorter), the sheet’s “coordinator with you” line, or whether the strip stays pinned vs scrolls away.