diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-10 10:42:58 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-10 10:42:58 -0500 |
| commit | a5539b197258f9b76c5c94c619945da8c8968d4a (patch) | |
| tree | cb979e07a390b64043b0f451aee5080e7df6e356 /scripts/setup-chess.sh | |
| parent | c8400e6ca786e4cc473b7a2fc338a67f55d93238 (diff) | |
| download | archsetup-a5539b197258f9b76c5c94c619945da8c8968d4a.tar.gz archsetup-a5539b197258f9b76c5c94c619945da8c8968d4a.zip | |
docs: spec the audio doctor's input side, one doctor per direction
The doctor never examines the microphone. diag collects default_source and default_source_present, the classifier reads neither, so a muted mic, a stale default source, and a mic the sound server can't see all classify as healthy. Chrome losing the mic this morning surfaced it: the stack was genuinely fine and the doctor had nothing useful to say.
The design grew past the gap in one conversation. An empty source list is normal on a mic-less desktop and a failure on a machine that should have one, and no probe can tell those apart. The missing fact comes from the user's finger: a doctor key on each of the OUTPUTS and INPUTS section headers, where pressing the input one asserts a mic should exist. That retires the DOCTOR header key I shipped hours earlier, and it dissolves the precedence question a single classifier would have faced.
A new probe tier sits below PipeWire. /proc/asound lists capture-capable cards, needs no package, spawns no process, and can't hang, so it separates "the software lost a microphone the kernel sees" from "nothing is plugged in".
Push-to-talk stays as it is. It mutes the source, the one state where the server guarantees nothing is captured. A link-based push-to-talk fails open, and a crash mid-hold is a hot mic reading as muted. The doctor reads ptt.read_state() instead of guessing.
Four decisions are open. Three are closed.
Diffstat (limited to 'scripts/setup-chess.sh')
0 files changed, 0 insertions, 0 deletions
