Pre-join guard: say plainly when you are about to join with the camera ON #135

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

Camera defaults off (cameraOnJoin), but if it was left on, the user appears on video the instant they join. Verify what the EC lobby shows today (the fork's lobby has a self-preview; is it obvious on mobile / when auto-joining a persistent voice room without a lobby?).

Scope

  • Any join path that skips the lobby (persistent voice rooms, answer-with-video, auto-rejoin) must show a one-line pre-join notice when the camera will be on: "Joining with camera on" with a Join without camera alternative. Nothing when the camera will be off.
  • Never a modal for the audio-only case.
Camera defaults off (`cameraOnJoin`), but if it was left on, the user appears on video the instant they join. Verify what the EC lobby shows today (the fork's lobby has a self-preview; is it obvious on mobile / when auto-joining a persistent voice room without a lobby?). ### Scope - Any join path that skips the lobby (persistent voice rooms, answer-with-video, auto-rejoin) must show a one-line pre-join notice when the camera will be on: **"Joining with camera on"** with a *Join without camera* alternative. Nothing when the camera will be off. - Never a modal for the audio-only case.
jared added this to the Features 2026-Q4 milestone 2026-09-17 16:26:16 -04:00
jared added the enhancementpriority: mediumuxarea: calls labels 2026-09-17 16:26:16 -04:00
jared self-assigned this 2026-09-17 16:26:16 -04:00
Author
Owner

Verified the paths first:

  • Voice-room prescreen — has the camera toggle in view (and it's disabled unless Join with Camera On is enabled), so it's already obvious.
  • Sidebar second-click join / auto-rejoin — uses the session video pref, which is only ever true after the user turned the camera on themselves in a prescreen this session, and that toggle is gated by the same setting. It never persists across loads. So no silent camera there.
  • Answering a video call with Join with Camera On enabled — the one path that put you on camera without a word.

Done in the last commit for that path: the incoming dialog and the in-call banner say "Answering turns your camera on.", the primary button reads Answer with camera, and there is an Answer without camera alternative. Voice calls / setting off: unchanged (plain Answer, no modal, no extra line).
dialog

Verified headless: video call + setting on → notice + both buttons; Answer without camera joins with videoEnabled=false; voice call → plain Answer.

Verified the paths first: - **Voice-room prescreen** — has the camera toggle in view (and it's disabled unless *Join with Camera On* is enabled), so it's already obvious. - **Sidebar second-click join / auto-rejoin** — uses the session video pref, which is only ever `true` after the user turned the camera on themselves in a prescreen this session, and that toggle is gated by the same setting. It never persists across loads. So no silent camera there. - **Answering a video call** with *Join with Camera On* enabled — the one path that put you on camera without a word. Done in the last commit for that path: the incoming dialog and the in-call banner say **"Answering turns your camera on."**, the primary button reads **Answer with camera**, and there is an **Answer without camera** alternative. Voice calls / setting off: unchanged (plain *Answer*, no modal, no extra line). ![dialog](https://code.lotusguild.org/attachments/97d188da-5303-4ce5-8418-4f63f08bbf4e) Verified headless: video call + setting on → notice + both buttons; *Answer without camera* joins with `videoEnabled=false`; voice call → plain Answer.
jared closed this issue 2026-09-19 17:26:36 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#135