andrewyng--aisuite
c1009b68ce
Review fixes: hardened-runtime signing needs com.apple.security.device.audio-input for microphone capture — without it voice input works in dev and is denied by macOS in the shipped app (Info.plist's usage string is only prompt text). start_dictation becomes async + spawn_blocking: opening the input device blocks on the one-time macOS permission dialog, which froze the UI from a sync command. The model download gets 30s connect/read timeouts so a stalled connection errors instead of hanging (cancel is only observed between reads). §37 wording now matches the code (SHA-256; restart, not resume). New unit tests drive the composer through a mocked desktop bridge: no mic in the browser build, muted mic deep-links to Settings, record→stop inserts an editable draft with Send protected, and a start failure surfaces without wedging the control.