Files
voice-cat/PROGRESS.md
T
Talon dd811a0bb8
.NET port / test (macos-latest) (push) Canceled after 0s
.NET port / test (ubuntu-24.04) (push) Canceled after 0s
.NET port / test (windows-latest) (push) Canceled after 0s
.NET port / apple-client (push) Canceled after 0s
Fix audio clock drift and adaptive jitter buffering
2026-09-20 16:26:03 +02:00

43 lines
2.0 KiB
Markdown

# VoiceCat status
Updated: 2026-09-19
## 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. The previous C++ core/server/CLI and Swift applications are retired migration
sources and may be removed without preserving cross-generation interoperability.
The supported source-of-truth layout is:
- `proto/voicecat.proto` — wire schema.
- `dotnet/src/` — protocol, crypto, codec/DSP bindings, server, client core, audio, and CLI.
- `clients/windows/` — WinForms application over the managed core.
- `clients/apple/dotnet/` — AppKit and UIKit applications over the managed core.
- `native/media/` and `native/rnnoise/` — required Opus/RNNoise C shim and vendored RNNoise.
- `native/apple/broadcast/` — required ReplayKit upload extension and shared ring producer.
## 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 Developer ID signing/notarization and iOS distribution signing.
- Run the published Linux container and a 30-minute-or-longer server soak.
## Cleanup in progress
- Delete the retired C++ implementation and old Swift applications after retained assets and
build inputs are detached from their trees.
- Move the Windows compatibility model types out of `VoiceCat.Interop`, then delete that old
P/Invoke project and its tests.
- Rewrite or remove historical design documents that still describe the retired architecture.
## Working rule
Keep this file short. It records only current state, open release gates, and the immediate
cleanup queue. Git history is the implementation diary.