Push-to-talk, the deafen hotkey and AFK auto-mute stop working outside the call room #9

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

Severity: high · Type: bug · Confidence: high

Location: src/app/features/call/CallControls.tsx:91,168-272, src/app/features/call/CallView.tsx:196-206, src/app/features/room/Room.tsx:150-157

Problem

the PTT key listeners, the deafen-key listener and useAfkAutoMute are all mounted inside CallControls, which only renders from CallView → CallJoined, i.e. only while the call room is the selected room (and, on mobile, only while the in-call chat panel is closed — Room.tsx:150 is callView && (isDesktop || !chat)). Navigate to any other room (which is exactly when the call goes to PiP), or open the in-call chat on a phone, and: PTT stops transmitting entirely, the deafen hotkey silently stops responding, and the AFK auto-mute watchdog stops running — the last one precisely in the situation it exists for (you walked away / are doing something else). The PTT cleanup also force-mutes on unmount, so a held key is dropped mid-sentence when you switch rooms.

How to trigger

join a call, hold PTT and confirm it works; navigate to another room (PiP) and hold PTT again — nothing happens. Or enable AFK auto-mute, join, navigate away, stay silent past the timeout — no mute.

Suggested fix

move the PTT/deafen key bindings and useAfkAutoMute into a component that lives as long as the embed (e.g. CallUtils in CallEmbedProvider, which already mounts per-embed) and keep only the visual PTT chip in CallControls.


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

**Severity:** high · **Type:** bug · **Confidence:** high **Location:** `src/app/features/call/CallControls.tsx:91,168-272`, `src/app/features/call/CallView.tsx:196-206`, `src/app/features/room/Room.tsx:150-157` ### Problem the PTT key listeners, the deafen-key listener and `useAfkAutoMute` are all mounted inside `CallControls`, which only renders from `CallView` → `CallJoined`, i.e. only while the call room is the selected room (and, on mobile, only while the in-call chat panel is closed — `Room.tsx:150` is `callView && (isDesktop || !chat)`). Navigate to any other room (which is exactly when the call goes to PiP), or open the in-call chat on a phone, and: PTT stops transmitting entirely, the deafen hotkey silently stops responding, and the AFK auto-mute watchdog stops running — the last one precisely in the situation it exists for (you walked away / are doing something else). The PTT cleanup also force-mutes on unmount, so a held key is dropped mid-sentence when you switch rooms. ### How to trigger join a call, hold PTT and confirm it works; navigate to another room (PiP) and hold PTT again — nothing happens. Or enable AFK auto-mute, join, navigate away, stay silent past the timeout — no mute. ### Suggested fix move the PTT/deafen key bindings and `useAfkAutoMute` into a component that lives as long as the embed (e.g. `CallUtils` in `CallEmbedProvider`, which already mounts per-embed) and keep only the visual PTT chip in `CallControls`. --- _Filed from the September 2026 client audit (branch `lotus` @ 4bea4895)._
jared added this to the Audit 2026-09 · High milestone 2026-09-12 01:50:48 -04:00
jared added the bugpriority: higharea: calls labels 2026-09-12 01:50:48 -04:00
jared self-assigned this 2026-09-12 01:50:48 -04:00
jared closed this issue 2026-09-12 19:46:14 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
2026-10-14
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#9