Missed-call entry in the timeline (local-only) #162

Closed
opened 2026-09-17 23:06:34 -04:00 by jared · 1 comment
Owner

When a DM call (or a room call via m.call.notify) rang this user and they neither joined nor declined before it ended, render a local-only timeline line "Missed call from X · 14:02" (same style as membership/state summaries; not an event, never sent). Derived from the ring events + RTC memberships already observed. One per ring; unread-count neutral; disappears if the user joins that same call later.

When a DM call (or a room call via `m.call.notify`) rang this user and they neither joined nor declined before it ended, render a local-only timeline line "Missed call from X · 14:02" (same style as membership/state summaries; not an event, never sent). Derived from the ring events + RTC memberships already observed. One per ring; unread-count neutral; disappears if the user joins that same call later.
jared added this to the Features 2026-Q4 milestone 2026-09-17 23:06:34 -04:00
jared added the enhancementpriority: lowarea: callsarea: messaging labels 2026-09-17 23:06:34 -04:00
jared self-assigned this 2026-09-17 23:06:34 -04:00
Author
Owner

Done in c921f115. The ring event (m.rtc.notification, which the timeline previously hid) renders as a red "Missed call from bob" line with the ring's time, same style as the "joined/ended the call" summaries — but only once the ring is over (its lifetime lapsed or the caller hung up) and only if we did not join between the ring and the hang-up. Derived from events already in the timeline (the notify + the m.call.member state events around it); nothing is sent, nothing changes unread counts; a call we answered shows nothing extra; a later separate call can't retro-actively "answer" an earlier one.
missed

Verified headless in a DM: ignored ring → line appears when bob hangs up; a second call alice answers adds no line and leaves the first in place. Scope note: rooms only ring where the call button exists (DMs / private groups), so room-call m.call.notify in voice channels isn't covered — same rule as the ring itself.

Done in `c921f115`. The ring event (`m.rtc.notification`, which the timeline previously hid) renders as a red **"Missed call from bob"** line with the ring's time, same style as the "joined/ended the call" summaries — but only once the ring is over (its `lifetime` lapsed or the caller hung up) and only if we did not join between the ring and the hang-up. Derived from events already in the timeline (the notify + the `m.call.member` state events around it); nothing is sent, nothing changes unread counts; a call we answered shows nothing extra; a later separate call can't retro-actively "answer" an earlier one. ![missed](https://code.lotusguild.org/attachments/e13f796f-7bbe-4072-b244-ce93f7d3a271) Verified headless in a DM: ignored ring → line appears when bob hangs up; a second call alice answers adds no line and leaves the first in place. Scope note: rooms only ring where the call button exists (DMs / private groups), so room-call `m.call.notify` in voice channels isn't covered — same rule as the ring itself.
jared closed this issue 2026-09-19 13:36:27 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#162