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

55 lines
2.3 KiB
Markdown

# 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
```bash
./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.