Incoming-call ringtone ignores quiet hours, DND and Focus Assist #28

Closed
opened 2026-09-12 01:50:58 -04:00 by jared · 0 comments
Owner

Severity: medium · Type: ux · Confidence: high

Location: src/app/components/CallEmbedProvider.tsx:134-138, src/app/pages/client/ClientNonUIFeatures.tsx:255-276,545-582

Problem

IncomingCall starts the looping ringtone from startRingtone(...) as soon as an m.rtc.notification with notification_type: 'ring' arrives. The quiet-hours window, the presence dnd state and the desktop Focus-Assist / tray-DND flags are consulted only in ClientNonUIFeatures for message notification sounds — nothing on the call path checks them. A DM call at 03:00 rings at full ringtone volume with quiet hours enabled and presence set to Do Not Disturb.

How to trigger

enable Settings → Notifications → Quiet Hours covering now (or set presence to DND), have someone call you in a DM.

Suggested fix

extract the existing "should we make noise" predicate from ClientNonUIFeatures into a shared hook and gate startRingtone/previewRingtone (and optionally the full-screen overlay vs. the compact banner) on it.


Filed from the September 2026 client audit (branch lotus @ 4bea4895).

**Severity:** medium · **Type:** ux · **Confidence:** high **Location:** `src/app/components/CallEmbedProvider.tsx:134-138`, `src/app/pages/client/ClientNonUIFeatures.tsx:255-276,545-582` ### Problem `IncomingCall` starts the looping ringtone from `startRingtone(...)` as soon as an `m.rtc.notification` with `notification_type: 'ring'` arrives. The quiet-hours window, the presence `dnd` state and the desktop Focus-Assist / tray-DND flags are consulted only in `ClientNonUIFeatures` for *message* notification sounds — nothing on the call path checks them. A DM call at 03:00 rings at full ringtone volume with quiet hours enabled and presence set to Do Not Disturb. ### How to trigger enable Settings → Notifications → Quiet Hours covering now (or set presence to DND), have someone call you in a DM. ### Suggested fix extract the existing "should we make noise" predicate from `ClientNonUIFeatures` into a shared hook and gate `startRingtone`/`previewRingtone` (and optionally the full-screen overlay vs. the compact banner) on it. --- _Filed from the September 2026 client audit (branch `lotus` @ 4bea4895)._
jared added this to the Audit 2026-09 · Medium & Low milestone 2026-09-12 01:50:58 -04:00
jared added the priority: mediumuxarea: calls labels 2026-09-12 01:50:58 -04:00
jared self-assigned this 2026-09-12 01:50:58 -04:00
jared closed this issue 2026-09-15 22:43:20 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
2026-11-14
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#28