Files
voice-cat/PROGRESS.md
T

60 lines
3.4 KiB
Markdown
Raw Normal View History

# VoiceCat status
2026-09-22 14:11:36 +02:00
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.
2026-09-19 15:43:37 +02:00
2026-09-21 18:04:00 +02:00
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.
2026-09-21 14:14:15 +02:00
The iOS user list now opens a remote-user detail view with independent tuning for each active
audio stream. Private messages are grouped into per-user conversations with direct access to the
same user and audio controls.
2026-09-22 16:54:49 +02:00
SQLite schema v4 persists DRED and the channel packet-loss mode. Manual loss remains the default;
automatic Fast/Balanced/Stable modes measure each sender's authenticated UDP uplink at the server,
cap the applied Opus hint at 30%, and feed it back over TLS.
2026-09-22 14:11:36 +02:00
## Release gates
- Run real multi-person calls on Windows, macOS, and physical iOS hardware, including adaptive
2026-09-22 16:54:49 +02:00
20/40/60 ms buffering, duration-aware DRED/FEC, automatic packet-loss feedback, and mismatched
input/output endpoints.
- Complete NVDA and VoiceOver navigation/announcement passes.
- Verify iOS remote-user tuning and private-conversation navigation with VoiceOver, including
multiple streams, users without active streams, and users who disconnect while a view is open.
- Exercise iOS background/lock, interruption, Bluetooth, route-change, ReplayKit, and iOS 27
2026-09-23 21:37:24 +02:00
ScreenCaptureKit paths on devices. The background/lock gate keeps a call active for 15+ minutes
backgrounded and screen-locked with no periodic glitches and flat `VC_AUDIO` `feedDrops`/`starved`
counters (the render callback now paces the mix and the 20 ms capture handoff, and a watchdog
rebuilds a graph that stops calling back). Take a Siri or phone-call interruption while
backgrounded and confirm audio resumes without foregrounding. Complete a
2026-09-23 21:37:24 +02:00
30-minute iOS call and Wi-Fi/cellular switching with voice restoration, plus extended
mono/stereo/voice-chat switching while joined. Verify Windows desktop/per-app stereo sharing.
2026-09-21 04:05:40 +02:00
- 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.
2026-09-16 17:34:16 +02:00
## Working rule
Keep this file short. It records only current state and open release gates. Git history is the
implementation diary.