Watch: show version/build on screen, surface recording errors in UI

A tester on real hardware has no console, so a failed start looked like
a dead button and there was no way to tell which build the watch had
actually installed. Show the stamped version/build under the record
button, display the last start error in place of the hint text, and
fall back to the default audio session mode if .spokenAudio is rejected
with the .record category.

Claude-Session: https://claude.ai/code/session_01GKfAiKiQKLDTmbiGva4FGE
This commit is contained in:
2026-07-15 16:07:32 -04:00
parent 8bdda913a7
commit 798abf3b90
3 changed files with 31 additions and 1 deletions
@@ -71,7 +71,13 @@ final class WatchAudioRecorder {
guard !isRecording else { return }
let session = AVAudioSession.sharedInstance()
try session.setCategory(.record, mode: .spokenAudio)
do {
try session.setCategory(.record, mode: .spokenAudio)
} catch {
// .spokenAudio isn't guaranteed compatible with .record on every
// route fall back rather than refuse to record at all.
try session.setCategory(.record, mode: .default)
}
try session.setActive(true)
let dir = Self.recordingsDirectory