You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add Local Studio as a first-class realtime voice provider in Litter while preserving native WebRTC audio processing, shared-Rust lifecycle/transcript state, and iOS/Android parity.
Litter already has native libwebrtc sessions and Rust-owned voice transcript/handoff state. The new path should replace mobile-owned provider credentials/configuration with Local Studio capability discovery and session negotiation; it must not create a parallel voice UI or duplicate lifecycle reducers in Swift and Kotlin. The Local Studio broker contract is tracked in sybil-solutions/local-studio#346, and authenticated transport in 0xSero/alleycat#39.
iOS and Android tests cover identical capability/error projections and native WebRTC offer/answer integration.
Direct OpenAI realtime remains available and regression-tested until an explicit removal decision is made.
A Local Studio + Alleycat + Litter e2e harness proves capability -> create -> media connected -> transcript/tool handoff -> background/reconnect -> close.
Physical iOS and Android device acceptance verifies microphone permission, two-way audio, interruption, speaker/mute, and reconnect; simulator/CI alone is insufficient.
End-to-end timings separate control negotiation, ICE/media connection, first transcript, and first audio response.
No shared protocol parsing or lifecycle state machine is added to Swift/Kotlin.
PR plan
Shared Rust provider/capability and signaling contract with fixtures.
iOS adapter and tests using existing voice UI.
Android adapter and tests using existing voice UI.
Cross-repository e2e harness and physical-device acceptance evidence.
This issue does not supersede #182; that issue tracks a bug in the existing direct Android realtime path and should close when its own fix is accepted.
Goal
Add Local Studio as a first-class realtime voice provider in Litter while preserving native WebRTC audio processing, shared-Rust lifecycle/transcript state, and iOS/Android parity.
Litter already has native libwebrtc sessions and Rust-owned voice transcript/handoff state. The new path should replace mobile-owned provider credentials/configuration with Local Studio capability discovery and session negotiation; it must not create a parallel voice UI or duplicate lifecycle reducers in Swift and Kotlin. The Local Studio broker contract is tracked in sybil-solutions/local-studio#346, and authenticated transport in 0xSero/alleycat#39.
Architectural boundary
AppClientowns direct server operations;AppStorereceives authoritative events/snapshots and remains minimal.Required behavior
Acceptance criteria
PR plan
This issue does not supersede #182; that issue tracks a bug in the existing direct Android realtime path and should close when its own fix is accepted.