feat(call): ask before joining when your usual mic / headphones are missing (#121)

The fork now checks, before joining (lotusDeviceCheck=1), that the mic /
output the user last picked are plugged in. When one is missing it asks
us (io.lotus.device_missing): "Your usual microphone isn't connected.
Arctis 7 isn't connected. Join with Laptop Mic instead?" [Join anyway]
[Cancel]. Join anyway isn't asked again this session for the same
device(s); Cancel closes the call before it starts. A device lost during
a call is a toast ("Arctis 7 disconnected — now using Laptop Mic").

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
This commit is contained in:
Lotus CI
2026-10-24 19:49:50 -04:00
co-authored by Claude Opus 5.5
parent a58684958c
commit 7bd1c14a3c
6 changed files with 288 additions and 1 deletions
+5
View File
@@ -261,6 +261,11 @@ export class CallControl extends EventEmitter implements CallControlState {
this.emit(CALL_ERROR_CHANGED);
}
/** [Gitea #121] Answer the fork's expected-device check: join or not. */
public sendDeviceDecision(join: boolean): void {
this.call.transport.send('io.lotus.device_decision', { join }).catch(() => undefined);
}
/** Press the fork's Reconnect / Try again. */
public reconnect(): void {
this.call.transport.send('io.lotus.reconnect', {}).catch(() => undefined);