3 Commits
Author SHA1 Message Date
Storm Dragon dc945ff392 Attempt to make audio and speech discovery more robust. 2026-11-03 13:21:50 -05:00
deedra 92bf3025c5 Fall back to the system Speech Dispatcher socket
When using the default Speech Dispatcher address, try the user's Unix
socket first and then /run/speech-dispatcher/speechd.sock if the user
socket is missing or refuses the connection. This allows Fenrir to use
an existing system service before attempting to autospawn a user daemon.

Keep explicit Options.Socket, SPEECHD_ADDRESS, and SPEECHD_SOCKET
settings authoritative. Do not fall back for permission errors, TCP
connections, or a canceled context. If both sockets fail, preserve the
user socket's error so autospawn continues to target the user's endpoint.

After opening the data connection, use its selected Unix socket for the
control connection and disable further fallback there. Both connections
must belong to the same Speech Dispatcher server.

Add tests for address overrides, user-first selection, missing and stale
user sockets, permission errors, and preservation of the original error
when neither socket is available.

Validation:
- go test ./internal/speech -count=1 (GOPROXY=off): passed
- git diff --check: passed
- gofmt -l on all five changed Go files: no output

Live audible speech and physical keyboard behavior were not verified
as part of this commit.
2026-10-28 10:44:54 -07:00
Storm Dragon ec32c6e4c4 Speech-dispatcher handling improved. 2026-10-28 11:34:57 -04:00