Messages and calls, on the existing timeline component

Featurekamo-internal
Shipped
August 26, 2026 at 2:26 AM UTC
Author
kamo
Commit
6cb488b

CommunicationsTimeline and EmailEntry take an optional endpointBase and keep the lead path as the default, so every existing call site is byte-for- does not care what the timeline is ABOUT — the owner keying is entirely server-side, exactly as MediaStream takes a feedEndpoint and the DocManager takes an (assocType, assocObjectId). A patient's messages are drawn by the The contact-point strip above the timeline is the part that would otherwise be missing. A timeline is a view; inbound calls and messages only ever LAND on an owner the matcher can resolve, so a patient with no registered number has an empty timeline for a reason nothing else on the screen would explain. Its empty state says exactly that, rather than implying nothing ever happened. 3149 tests green, typecheck clean.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing