57d5b0633c
Add a 120-second TX safety timeout that auto-releases PTT if no mic data flows (browser crash, disconnect). Timer resets on each audio callback. Shows countdown in status when < 10s remaining. Add beforeunload handler that releases PTT via navigator.sendBeacon when the browser tab is closed during TX. Detect WebCodecs support on page load and show "Audio requires Chrome/Edge" on non-Chromium browsers instead of silently failing. Remove dead playBuffer/playNode variables that were declared but never used. Fix TX AudioData to always use mono (channel 0) with numberOfChannels: 1 matching the f32-planar format. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com>