Files
voice-cat/clients/apple/dotnet/README.md
T
Talon 52f7f51e59
.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
.NET port / cpp-conformance (push) Canceled after 0s
Add managed server profiles and account login
2026-09-16 22:13:34 +02:00

1.9 KiB

Managed Apple clients

VoiceCat.Mac is the native AppKit C# port. It targets net10.0-macos and references the same VoiceCat.Core and VoiceCat.Audio assemblies used by the Windows client and managed CLI.

The current checkpoint is a functional client: AppKit launch/menu lifecycle, saved server profiles, guest and account authentication, explicit TOFU approval (including changed-key warning), channel selection, user roster, channel text, voice subscription, managed microphone-stream lifecycle, default-device Core Audio capture/playback, disconnect reporting, native accessibility labels, sandbox/network/audio entitlements, and deterministic disposal. Profiles save the host, port, authentication mode, username or guest nickname; account passwords remain session-only and are never written to the profile JSON. Capture is converted to interleaved 48 kHz int16 PCM through AVAudioConverter; playback uses an AVAudioSourceNode and the shared bounded PcmRing, so its render callback does not allocate, lock, or block. It does not yet replace the Swift release. Protected-channel prompts, optional Keychain credentials, non-default device selection, moderation sheets, private messages, settings, ScreenCaptureKit sharing, VoiceOver verification, signing and notarization remain.

Build on Apple Silicon macOS 15.6+ with Xcode 26 and the .NET 10 macOS workload:

dotnet workload install macos
pwsh ./dotnet/build-native.ps1
dotnet restore clients/apple/dotnet/VoiceCat.Apple.slnx
dotnet build clients/apple/dotnet/VoiceCat.Apple.slnx -c Debug

The native build stages an osx-arm64 libvoicecat_media.dylib; that shim contains only Opus/RNNoise. The AppKit and AVFoundation calls are also compiled against Microsoft's current macOS reference assembly during development, but only a macOS host can link, launch, grant microphone access and verify live devices. The macOS CI build and manual listen test are required release gates.