134cb8999d
Calls were routing to the quiet earpiece. ios-patch.sh now runs a Node helper (Node 20 is already in the build env) that injects an AVAudioSession .playAndRecord/.voiceChat category with .defaultToSpeaker + Bluetooth into the generated AppDelegate. Tolerant: exits 0 and no-ops if the template differs, so it can never fail the Codemagic build. Verified locally against the Cap 7 AppDelegate template — injects correctly and is idempotent. First pass; if WebRTC re-grabs the session mid-call on device, a follow-up plugin will re-assert .overrideOutputAudioPort(.speaker). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>