Files
voice-cat/AGENTS.md
T
Talon c9ed832459
.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
Retire legacy sources and verify managed iOS deployment
2026-09-19 22:40:48 +02:00

2.3 KiB

VoiceCat working method

Start with CLAUDE.md for commands and architecture and PROGRESS.md for the current handoff. The supported product is the .NET 10 implementation. Old C++ and Swift application code is retirement material, not a source of truth.

Definition of done

A clean compile is the floor. Changes are done when their observable behavior is covered by a test or, for hardware/accessibility/release behavior, by a clearly recorded manual gate.

For implementation work:

  1. Read the relevant code and current contract document.
  2. Add or adjust the smallest behavior test that demonstrates the requested result.
  3. Implement the change without weakening encryption, real-time safety, or accessibility.
  4. Build and run the affected tests, then the full managed test suite when practical.
  5. Update concise current documentation and PROGRESS.md if the handoff changed.

Supported layout

Path Purpose
proto/voicecat.proto Control-plane wire schema
dotnet/src/ Managed server, core, protocol, crypto, audio, codec/DSP, and CLI
dotnet/tests/VoiceCat.Tests/ Managed behavior tests
clients/windows/ Supported WinForms client
clients/apple/dotnet/ Supported AppKit and UIKit clients
native/media/ Required narrow Opus/RNNoise C ABI
native/rnnoise/ Vendored RNNoise source/model
native/apple/broadcast/ Required ReplayKit extension and shared-memory producer

Core verification

./dotnet/build-native.ps1
dotnet restore dotnet/VoiceCat.slnx --locked-mode
dotnet build dotnet/VoiceCat.slnx -c Release --no-restore
dotnet test dotnet/VoiceCat.slnx -c Release --no-build
./dotnet/check-licenses.ps1

Apple builds additionally use ./dotnet/build-native-ios.sh and clients/apple/dotnet/VoiceCat.Apple.slnx on macOS.

Hard rules

  • Encryption is mandatory: TLS control plus authenticated encrypted UDP media.
  • Never introduce GPL/LGPL dependencies.
  • Real-time audio callbacks never allocate, lock, block, or perform I/O.
  • Preserve accessible names, keyboard operation, and curated screen-reader announcements.
  • Wire, database, and shared-ring changes are deliberate versioned changes.
  • Do not restore compatibility tests for retired implementations unless explicitly requested.
  • Keep PROGRESS.md short. Use Git history rather than accumulating completed-work prose.