The Beta scope for mobile DSP is OS-source-driven (Android
`MediaRecorder.AudioSource.VOICE_COMMUNICATION`, iOS
`AVAudioSession.Mode.voiceChat`) — letting the platform's built-in
AEC / NS engage instead of shipping our own DSP chain on
constrained devices. Linux desktop stays a deliberate no-op:
PipeWire / ALSA's default source is correct for desktop voice and
adding a software AEC there would regress against an already-good
baseline.
This commit lands the *config surface* through every layer:
* `AudioEngineConfig` gains `effects: AudioEffects` (mirrors the
DEC-007/008/009/010 toggles) and `mobile_voice_preset: bool`
(default `true`).
* On Android, `AudioEngine::start` logs the preset + effects
requests so a future cpal / Oboe upstream switch can be observed
via the redacted diagnostic export.
* On iOS, the same log line documents the binding gap — Chanora
iOS audio is documented-only for Beta per the release notes.
* On Linux desktop, the flags are honoured by name but the engine
continues to use the default ALSA / PipeWire source. No
behaviour change.
RISK-AUDIO-MOBILE-001 (new) tracks the actual preset switch. The
follow-up work either pulls in an Oboe-based input host or waits
for cpal upstream to expose `set_input_preset`. Either way the
config flag is forward-compatible — callers do not need to change
when the binding lands.