Repository navigation
Conversation
|
Thanks for your contribution! This PR doesn't have a linked issue. All PRs must reference an existing issue. Please:
See CONTRIBUTING.md for details. |
|
The following comment was made by an LLM, it may be inaccurate: |
|
Field confirmation on Termux (Android 16), patched v2 binary, sounds ON: tool calls complete with no ALSA ghost text. Note: no toast either, which matches the notify path (done-sound is when:always, visual notification is when:blurred, TUI was focused) — so silence here is the correct outcome, not a regression. |
|
Live decision-table check on an audio-less host (stub renderer, real audio module): blurred -> {notification: true, sound: false}, 0 ALSA lines; focused -> {notification: false (by design), sound: false}, 0 ALSA lines. So the patch only ever removes the sound leg; the toast leg is untouched. |
|
Thanks for updating your PR! It now meets our contributing guidelines. 👍 |
|
Quick note on the This PR intentionally targets The label comes from So on Flagging this so the label isn't read as a problem with the PR itself. On the change: it's self-contained — a |
Issue for this PR
Closes #41763
Type of change
What does this PR do?
On Linux hosts without an audio playback device (Termux/Android, soundless servers), any attention sound makes the native backend print ALSA diagnostics to stderr, overwriting the TUI.
I added a probe (new
packages/tui/src/audio-device.ts) that looks for a PCM playback node under /dev/snd beforeAudio.createruns. If none exists, audio is skipped with a debug line and nothing touches the native backend. Non-Linux behavior is unchanged, and nothing changes when a device is present. The notification leg ofattention.notifyis untouched — only the sound leg can now come back false early.How did you verify your code works?
packages/tui/test/audio-device.test.ts: playback detect, capture/mixer-only reject, unreadable /dev/snd, non-Linux skip — 5/5 standalone.Screenshots / recordings
Not a UI change — the fix removes stray stderr text. No screenshot applies.
Checklist