Two verified production bugs from the voice-cloning review:
1. Tuner dead-dial: the dock resolved its RadioControl once, inside ui.init(),
before any gesture built the audio graph - latching the silent echo stand-in
for the whole session. main.ts now publishes a lazy-binding Radio->RadioControl
adapter BEFORE ui.init (real subscribe() at probe time), attaching to the
engine on first gesture and translating shape + units (UI MHz <-> engine kHz,
volume()/mute() <-> setVolume()/setMuted(), locked id -> station name).
Verified live: dock setFrequency(0.64 MHz) -> engine 640 kHz, station readout
'THE STANDARD', '0.6 THE STANDARD AM - SIGNAL LOCKED' on the dock.
2. Chyron clipping: one un-wrapped fillText showed ~51 chars; 29 of THE
STANDARD's 30 lines (mean 69, max 92) clipped mid-sentence. Now word-wraps to
two lines with 20->16->13px step-down. Verified live: 71-char propaganda line
renders complete across two lines.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>