Per-call quality readout on hangup (low priority; UI must look native) #143

Closed
opened 2026-09-17 16:51:57 -04:00 by jared · 1 comment
Owner

One line in the existing call-ended moment, nothing stored or sent: "41 min · connection was good" / "… 3 reconnects". Source: the fork's LiveKit ConnectionQuality history + reconnect count for the local participant, summarised into io.lotus.call_state at leave (or a final io.lotus.call_summary).

UX gate: mock it in the current call-ended toast style first; if it needs a new surface, drop it. Low priority.

One line in the existing call-ended moment, nothing stored or sent: "41 min · connection was good" / "… 3 reconnects". Source: the fork's LiveKit `ConnectionQuality` history + reconnect count for the **local** participant, summarised into `io.lotus.call_state` at leave (or a final `io.lotus.call_summary`). UX gate: mock it in the current call-ended toast style first; if it needs a new surface, drop it. Low priority.
jared added this to the Features 2026-Q4 milestone 2026-09-17 16:51:57 -04:00
jared added the enhancementpriority: lowuxarea: calls labels 2026-09-17 16:51:57 -04:00
jared self-assigned this 2026-09-17 16:51:57 -04:00
Author
Owner

Done — fork 1e34923f (released as 0.25.0-lotus.10), cinny af1c0ee1 + pin bump 63639396.

Mocked in the existing toast style first, as the issue asked; it fit, so no new surface:

toast

  • Fork: CallQualityTracker (unit-tested) follows the local participant's LiveKit ConnectionQuality (time poor/lost) and Reconnecting events; one io.lotus.call_summary { durationMs, reconnects, poorMs, verdict } is sent on SFU disconnect or in-call teardown. Nothing stored, nothing sent elsewhere.
  • Cinny: useCallEndedToast — duration from our own join clock plus the readout: "connection was good" / "3 reconnects" / "connection was poor for 4 min". Without the fork's message (older fork, or it lost the race with the hangup echo) the toast still shows "Call ended · 41 min".

Headless: bob joins the Voice Lounge, ends the call → Call ended · 16 s · connection was good (with lotus.10) / Call ended · 16 s (with lotus.9).

Done — fork 1e34923f (released as 0.25.0-lotus.10), cinny af1c0ee1 + pin bump 63639396. Mocked in the existing toast style first, as the issue asked; it fit, so no new surface: ![toast](https://code.lotusguild.org/attachments/4bbcb525-b7fa-4b1f-90e7-9fcf4d6e9eb9) - Fork: `CallQualityTracker` (unit-tested) follows the local participant's LiveKit `ConnectionQuality` (time poor/lost) and `Reconnecting` events; one `io.lotus.call_summary { durationMs, reconnects, poorMs, verdict }` is sent on SFU disconnect or in-call teardown. Nothing stored, nothing sent elsewhere. - Cinny: `useCallEndedToast` — duration from our own join clock plus the readout: "connection was good" / "3 reconnects" / "connection was poor for 4 min". Without the fork's message (older fork, or it lost the race with the hangup echo) the toast still shows "Call ended · 41 min". Headless: bob joins the Voice Lounge, ends the call → `Call ended · 16 s · connection was good` (with lotus.10) / `Call ended · 16 s` (with lotus.9).
jared closed this issue 2026-09-20 14:14:59 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#143