Prompt for protected macOS channels
.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

This commit is contained in:
2026-09-16 22:16:18 +02:00
parent 52f7f51e59
commit 5a30018aeb
4 changed files with 55 additions and 14 deletions
+5 -4
View File
@@ -853,16 +853,17 @@ build produced.
**Checkpoint (2026-09-16):** `clients/apple/dotnet/VoiceCat.Mac` is a separate .NET 10
AppKit application that consumes `VoiceCat.Core` directly. It implements guest and account
connection, validated saved server profiles whose JSON never contains passwords,
interactive TOFU approval, channel browsing, roster/chat, voice subscription, native
accessibility labels and default-device microphone/playback. Core Audio capture is resampled
interactive TOFU approval, protected-channel password prompts, channel browsing, roster/chat,
voice subscription, native accessibility labels and default-device microphone/playback.
Core Audio capture is resampled
and converted through `AVAudioConverter` before entering the managed audio engine. Stereo
playback uses `AVAudioSourceNode` and the shared bounded PCM ring; its render callback does
not allocate, lock or block. Voice stream lifetime follows subscription, disconnect and
channel changes. Current Apple API calls compile warning-free against Microsoft's
26.4.10259 macOS reference assembly, and a macOS CI job builds the native codec/DSP shim and
Apple solution. A real macOS device run and listen test remain required. The existing Swift
app remains the release client until protected-channel prompts, optional Keychain credentials,
selectable devices, the rest of the moderation/settings surface, ScreenCaptureKit, VoiceOver
app remains the release client until optional Keychain credentials, selectable devices, the
rest of the moderation/settings surface, ScreenCaptureKit, VoiceOver
validation, signing and notarization are complete.
---