forked from unom/punktfunk
`keep_host_audio` shipped in 0.32.0 wired end to end — the setting, the `CLIENT_CAP_KEEP_HOST_AUDIO` ask, the host's capture policy — but only three surfaces ever offered it: the Linux GTK client, the Windows client, and the desktop console. Apple and Android carried no reference to it at all, so the one place a phone or an Apple TV would look for "why did my PC go quiet" had nothing to find. There is no shared settings schema; each client hand-mirrors `trust::Settings`, and this row simply never got mirrored. Apple gains the full tier-P treatment: a `keepHostAudio` defaults key, the `EffectiveSettings` field, the `StreamProfile` overlay (so a per-host profile can keep the study PC's headphones live while the TV profile mutes them), the Audio-section row, and the bit itself OR'd into the connect's `clientCaps` beside the presenter caps. Android gains the same across `Settings`, `Profiles` — including the `KNOWN` key set, without which the key reads as unknown carry-through — the settings row, the console JSON both ways, and a new `keepHostAudio` argument threaded through `nativeConnect` into the JNI caps expression. `pf-console-ui` had parked `RowId::KeepHostAudio` in `desktop_only` with a comment saying "until the Android session advertises the bit". It does now, so the gate comes off and the order-sensitive split test loses its entry. The C ABI never exported the constant: `client_caps` is a passthrough byte, so nothing needed a version bump, but cbindgen had no rename entry and emitted a bare `CLIENT_CAP_KEEP_HOST_AUDIO` into every embedder's namespace — the exact pollution R21 exists to prevent. It now carries the `PUNKTFUNK_` prefix its `AUDIO_HIRES` sibling has, plus the compile-time drift assert. Captions are the Linux client's wording verbatim, and the row sits between audio quality and the microphone on all four clients, because a setting that reads differently per platform is the same bug in a smaller font. The docs line claiming "Linux, Windows and the desktop console" now says everywhere. Verified: swift build + 384 Apple tests; `:app:compileDebugKotlin`; `:kit:cargoNdkClippy` over pf-console-ui and the Android native crate; and all 205 pf-console-ui tests on Linux in a container, the split test among them.