# VoiceCat status Updated: 2026-09-22 ## Current state VoiceCat's supported implementation is .NET 10. The managed protocol, crypto, TLS, server, CLI, client state, audio engine, Windows client, macOS client, and iOS client are implemented. Retired implementations and compatibility projects have been removed; this tree contains only the supported product and its required native media boundaries. The source-of-truth layout is: - `proto/voicecat.proto` — wire schema. - `src/` — protocol, crypto, codec/DSP bindings, server, client core, audio, and CLI. - `tests/VoiceCat.Tests/` — managed behavior and integration tests. - `clients/windows/` — WinForms application over the managed core. - `clients/apple/` — AppKit and UIKit applications over the managed core. - `native/media/` and `native/rnnoise/` — required Opus/RNNoise shim and vendored RNNoise. - `native/apple/broadcast/` — required ReplayKit upload extension and shared ring producer. The physical-device iOS voice path now supports ReplayKit fallback, stable Apple VPIO voice-chat capture using a paced 20 ms handoff, and true built-in stereo microphone capture. Stereo was verified on an iPhone 16 Pro Max with a two-channel AVAudioEngine input and distinct left/right samples; the managed Apple binding requires native use of its otherwise-unmapped stereo polar pattern constant. SQLite schema v3 persists channel DRED settings and migrates existing v1/v2 databases with DRED disabled until explicitly enabled. ## Release gates - Run real multi-person calls on Windows, macOS, and physical iOS hardware, including adaptive 20/40/60 ms buffering, duration-aware DRED/FEC, and mismatched input/output endpoints. - Complete NVDA and VoiceOver navigation/announcement passes. - Exercise iOS background/lock, interruption, Bluetooth, route-change, ReplayKit, and iOS 27 ScreenCaptureKit paths on devices. Complete extended mono/stereo/voice-chat switching while joined, and verify Windows desktop/per-app stereo sharing. - Complete Developer ID signing/notarization. The iOS host and ReplayKit extension have been distribution-signed and packaged locally; upload the IPA for Apple's server-side validation. - Run the published Linux container and a 30-minute-or-longer server soak. ## Working rule Keep this file short. It records only current state and open release gates. Git history is the implementation diary.