Attempt to make audio and speech discovery more robust.

This commit is contained in:
Storm Dragon committed 2026-11-03 13:21:50 -05:00
1 parent a27f274099
commit dc945ff392
21 files changed
+1314 -60

No files matched your search

+17
View File
@@ -147,6 +147,23 @@ a different socket or server explicitly. The sound driver does not read
PulseAudio's `client.conf`.
Speech output uses Speech Dispatcher's own audio configuration.
Fenrir retries temporary speech initialization failures for up to 20 seconds
before acquiring keyboards. A lost Speech Dispatcher connection gets a separate
20-second recovery window in the speech worker; input remains responsive and
speech accumulated during the outage is discarded. If recovery fails, Fenrir
exits and releases its keyboards before waiting for other services to shut down.
Sound effects reconnect independently, without stopping working speech. Sound
startup calls have a three-second limit; an unresponsive attempt is abandoned
without starting overlapping attempts.
These mechanisms do not require a particular init system. Boot services running
as root keep root-owned Speech Dispatcher startup. With `sudo fenrir`, a missing
local Speech Dispatcher can instead be started as the invoking user, identified
by `SUDO_UID`; only the daemon child drops privileges. Audio servers still need
appropriate startup configuration and device/socket permissions. See
[audio recovery and verification](docs/audio-recovery.md) for limitations and
test procedures.
### X11 terminal
From an X11 terminal that supplies `WINDOWID`: