Add managed macOS Core Audio voice path
.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:05:40 +02:00
parent e5ff484cac
commit edd7783a5c
8 changed files with 314 additions and 34 deletions
+15 -12
View File
@@ -10,18 +10,21 @@ up instantly. Newest status at the top.
## ▶ Where we left off / next action
- **In progress (2026-09-16): managed macOS client started.** Added a separate .NET 10
AppKit solution with native application/menu lifecycle, guest connection, explicit TOFU
approval, channel selection, roster, channel chat, voice subscription, disconnect state,
accessibility labels, sandbox entitlements and deterministic client disposal. The shared
protocol, crypto, audio and client-core projects are referenced directly; the Swift app
remains the release client while parity work continues. Added a macOS CI gate that builds
the native Opus/RNNoise shim and the AppKit solution. Local Windows compilation of AppKit
remains unavailable: installing the macOS workload rolled back after the machine's
Visual Studio workload manager failed while repairing an unrelated iOS/Android MSI.
**Next:** use the macOS CI compiler to correct any binding issues, then add Core Audio
playback/microphone capture and start/stop the managed microphone stream. Follow with
saved accounts/servers, private messages, moderation/settings, ScreenCaptureKit sharing,
- **In progress (2026-09-16): managed macOS client and default audio path.** Added a
separate .NET 10 AppKit solution with application/menu lifecycle, guest connection,
explicit TOFU approval, channel selection, roster/chat, disconnect state, accessibility
labels, sandbox entitlements and deterministic disposal. Voice join now opens bounded
stereo playback, subscribes, announces a managed microphone stream, converts the default
Core Audio input to interleaved 48 kHz int16 and feeds `VoiceCat.Audio`; leave/disconnect
tears the path down. Channel changes suspend and resume voice so streams renegotiate.
Playback uses `AVAudioSourceNode` plus the shared tested `PcmRing`; the render callback
allocates no managed memory and never locks or blocks. Current AppKit/AVFoundation calls
compile warning-free against Microsoft's 26.4.10259 macOS reference assembly. Added a
macOS CI gate for the real workload, native Opus/RNNoise shim and Apple solution. Local
workload installation remains blocked by this Windows machine's unrelated Visual Studio
iOS/Android MSI repair failure, so device execution is not claimed. **Next:** run the
macOS CI/device capture-playback test and ten-minute listen gate, then add saved accounts/
servers, non-default devices, private messages, moderation/settings, ScreenCaptureKit,
VoiceOver verification, signing and notarization.
- **Done (2026-09-16): Linux production packaging checkpoint.** Added a real TLS 1.3