fdd532de5336bb4b6f7dec3540e5e2687efd931f
Two safe, host-independent hardening steps from the Codex Windows-compat review. W7 — when a saved input/output device name no longer resolves (WASAPI friendly names can change across driver/endpoint changes), resolve() now logs the fallback to the system default instead of switching devices silently — so a "my audio went to the wrong device" report has a log line explaining why. (cpal 0.15 exposes only the device name, so a stable hardware id isn't available to persist; this surfaces the limitation rather than hiding it.) W2 — the output RT callback now records the largest interleaved buffer length it is ever asked for (a wait-free fetch_max into an atomic, kept off the log/alloc path). The once-per-second health-logger reports that size and, if a callback ever exceeds the prefill target (PLAYBACK_TARGET_SAMPLES), warns explicitly — that's the exact signature of the WASAPI-shared-mode underrun-every-cycle bug. This is the diagnostic a real-host test needs before committing to the structural fix (larger target / fixed buffer); no behavior change. Windows-only file (cfg(windows)); compile-verified via the windows-gnu cross-build, not yet exercised on a real WASAPI host. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>