Fix inline discovery of tool-generated audio files
A completed tool that writes or prints an MP3, M4A, AAC, WAV or FLAC path now reaches the existing inline audio player. Discovery previously accepted video files but omitted audio. One shared media-extension list now drives discovery and playback; the player keeps host authorization, lazy loading and no autoplay.
Format scope: this fix preserves the existing player’s MP3/M4A/AAC/WAV/FLAC list. Ogg/OGA/Opus discovery is deferred until playback is verified across the app’s supported WKWebView versions; this audit did not establish that compatibility, and does not claim those formats are universally unsupported.
The research finding was: “Tool-generated audio files never reach the existing inline audio player.” This completes the tool-output behavior described in #18402. A small scoped CSS change also fits native audio controls into narrow tool rows.
| Evidence | Before | After |
|---|---|---|
| Discovery regression suite | 3 pass / 33 fail at d143fb7e | 38 combined discovery/classifier tests pass at 19ab584d |
| Same gallery fixture, light and dark | 0 audio players | 1, paused; autoplay false |
| Player in a 320px pane | right edge 318px, row ends at 302px | right edge 302px; 284px wide |
| Player in a 760px pane | 300px wide | unchanged |


Dark capture · Wide capture · Geometry/playback receipt.
Validation: Linux run40852295053 passed all 105 focused tests and the full check, including lint/typecheck, at 19ab584d. Final CSS head e477407a13e67b71ffd0cad938e8b85045b589d7 has independent static approval and passing fleet captures at 320/760px in both themes; its final full check/test rerun40854610290 also passed: 105 tests, zero failures, lint zero warnings, typecheck clean. The exact-head receipt records exit0 and tree e29cdbf2a43f14ac0fea12a8893c0d95631cbaa2 (retrieved directly from the job log). No local builds/tests/browser runs.
The discovery tests demonstrate the regression; classifier-only tests already passed on base for these five formats.
Risk: more supported local paths now request the existing host media policy. Pending-call gating, source dedupe, non-media handling and media limits have regression coverage. No new loading authority, autoplay or timer.
Open/merged duplicate search found #18402 and envelope work #24496/#24030, with no matching correction. pr-overlap was invoked; its open-PR read was unavailable through the broker.
Changelog: Fixed — preview audio files produced by tools inline.
Agent session: agent session