Merge branch 'integrate/native-2026-09-23' into main
Six native branches, integrated and gated together: LiveKit's WebRTC with the Mac audio picker, RNNoise and DeepFilterNet 3; the kept native sign-in; iPhone Mic Mode; mute and camera-off indicators; native screen share (Mac ScreenCaptureKit, iPhone broadcast extension); and the Mac mini window, which now shows a shared screen first and badges muted peers. Also bundles WebRTC's licence and the notices of the Rust crates inside DeepFilterNet.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Makefile+14 −2callscore/auth.go+35 −13callscore/media_test.go+177 −0callscore/room.go+66 −2callscore/session.go+178 −0callscore/session_test.go+179 −0docs/superpowers/specs/2026-09-07-meet-design.md+68 −0internal/calls/hub/admission.go+2 −2internal/calls/hub/hub.go+4 −0internal/calls/hub/media.go+63 −0internal/calls/hub/media_test.go+361 −0internal/calls/hub/messages.go+2 −0internal/calls/icons/icons.go+2 −0internal/calls/native_auth_test.go+47 −0internal/calls/signal.go+58 −6internal/calls/static/calls.css+48 −0internal/calls/static/room.js+187 −2internal/calls/templates/room.html+14 −0internal/callstest/browser_test.go+1 −0internal/callstest/media_test.go+170 −0internal/callstest/native_browser_test.go+216 −1native/DESIGN.md+2 −2native/LICENSE.deepfilternet+22 −0native/LICENSE.deepfilternet-crates+3099 −0native/LICENSE.rnnoise+32 −0native/LICENSE.webrtc+33 −0native/README.md+246 −33native/VERIFICATION.md+40 −0native/apple/Package.resolved+4 −4native/apple/Package.swift+17 −3native/apple/Sources/CallsBroadcastKit/BroadcastInbox.swift+215 −0native/apple/Sources/CallsBroadcastKit/BroadcastSender.swift+170 −0native/apple/Sources/CallsBroadcastKit/BroadcastWire.swift+193 −0native/apple/Sources/CallsInterop/Interop.swift+40 −2native/apple/Sources/CallsInterop/LobbySnapshots.swift+9 −1native/apple/Sources/CallsInterop/SettingsSnapshots.swift+39 −0native/apple/Sources/CallsInterop/SyntheticVideo.swift+61 −1native/apple/Sources/CallsInterop/SyntheticVoice.swift+25 −0native/apple/Sources/CallsKit/Audio.swift+83 −72native/apple/Sources/CallsKit/BroadcastScreenCapture.swift+70 −0native/apple/Sources/CallsKit/Call.swift+167 −7native/apple/Sources/CallsKit/CallAudio.swift+357 −0native/apple/Sources/CallsKit/CallsLobby.swift+55 −24native/apple/Sources/CallsKit/CallsModel.swift+248 −12native/apple/Sources/CallsKit/CallsSettingsView.swift+42 −0native/apple/Sources/CallsKit/Capture.swift+15 −1native/apple/Sources/CallsKit/DevicePanel.swift+81 −22native/apple/Sources/CallsKit/MacCallView.swift+90 −17native/apple/Sources/CallsKit/MacScreenCapture.swift+231 −0native/apple/Sources/CallsKit/MacVideoTile.swift+33 −11native/apple/Sources/CallsKit/Media.swift+262 −15native/apple/Sources/CallsKit/MicrophoneMode.swift+131 −0native/apple/Sources/CallsKit/MiniWindow.swift+399 −0native/apple/Sources/CallsKit/MiniWindowRules.swift+176 −0native/apple/Sources/CallsKit/MutedBadge.swift+23 −0native/apple/Sources/CallsKit/NoiseSuppression.swift+319 −0native/apple/Sources/CallsKit/ScreenShare.swift+120 −0native/apple/Sources/CallsKit/SessionStore.swift+146 −0native/apple/Sources/CallsKit/WebRTCNames.swift+213 −0native/apple/Sources/CallsKit/Wire.swift+11 −0native/apple/Sources/CallsMac/CallsMac.swift+7 −2native/apple/Tests/CallsKitTests/AudioHealthTests.swift+24 −20native/apple/Tests/CallsKitTests/BroadcastTests.swift+183 −0native/apple/Tests/CallsKitTests/Fixtures/speech-48k.wavbinarynative/apple/Tests/CallsKitTests/KeptSignInTests.swift+238 −0native/apple/Tests/CallsKitTests/MeetingLinkTests.swift+2 −2native/apple/Tests/CallsKitTests/MicrophoneModeTests.swift+56 −0native/apple/Tests/CallsKitTests/MiniWindowTests.swift+241 −0native/apple/Tests/CallsKitTests/NoiseSuppressionTests.swift+425 −0native/apple/Tests/CallsKitTests/PeerMediaTests.swift+51 −0native/apple/Tests/CallsKitTests/ScreenShareTests.swift+139 −0native/apple/Tests/CallsKitTests/StartMeetingTests.swift+16 −11native/bridge/bridge.go+77 −4native/bridge/bridge_test.go+81 −0native/ios/Broadcast/SampleHandler.swift+61 −0native/ios/README.md+78 −7native/ios/Sources/CallsPhone.swift+97 −18native/ios/Sources/PhoneScreenShare.swift+88 −0native/ios/Tests/CallsPhoneTests.swift+1 −1native/ios/Tests/SilentAudioDevice.swift+2 −1native/ios/UITests/CallsPhoneUITests.swift+2 −0native/ios/project.yml+43 −0native/scripts/build-deepfilter.sh+71 −0native/scripts/build-iphone.sh+2 −0native/scripts/build-mac.sh+1 −1native/scripts/build-rnnoise.sh+87 −0native/scripts/bundle-mac.py+10 −1native/scripts/deepfilter-notices.py+145 −0protocol/messages.go+20 −0test/browser/call.mjs+111 −0test/browser/native.mjs+122 −0test/browser/negotiation.test.mjs+3 −0test/browser/room-mute.test.mjs+174 −0
CI passed — run details
MakefileLoading diff…
callscore/auth.goLoading diff…
callscore/media_test.goLoading diff…
callscore/room.goLoading diff…
callscore/session.goLoading diff…
callscore/session_test.goLoading diff…
docs/superpowers/specs/2026-09-07-meet-design.mdLoading diff…
internal/calls/hub/admission.goLoading diff…
internal/calls/hub/hub.goLoading diff…
internal/calls/hub/media.goLoading diff…
internal/calls/hub/media_test.goLoading diff…
internal/calls/hub/messages.goLoading diff…
internal/calls/icons/icons.goLoading diff…
internal/calls/native_auth_test.goLoading diff…
internal/calls/signal.goLoading diff…
internal/calls/static/calls.cssLoading diff…
internal/calls/static/room.jsLoading diff…
internal/calls/templates/room.htmlLoading diff…
internal/callstest/browser_test.goLoading diff…
internal/callstest/media_test.goLoading diff…
internal/callstest/native_browser_test.goLoading diff…
native/DESIGN.mdLoading diff…
native/LICENSE.deepfilternetLoading diff…
native/LICENSE.deepfilternet-cratesLoading diff…
native/LICENSE.rnnoiseLoading diff…
native/LICENSE.webrtcLoading diff…
native/README.mdLoading diff…
native/VERIFICATION.mdLoading diff…
native/apple/Package.resolvedLoading diff…
native/apple/Package.swiftLoading diff…
native/apple/Sources/CallsBroadcastKit/BroadcastInbox.swiftLoading diff…
native/apple/Sources/CallsBroadcastKit/BroadcastSender.swiftLoading diff…
native/apple/Sources/CallsBroadcastKit/BroadcastWire.swiftLoading diff…
native/apple/Sources/CallsInterop/Interop.swiftLoading diff…
native/apple/Sources/CallsInterop/LobbySnapshots.swiftLoading diff…
native/apple/Sources/CallsInterop/SettingsSnapshots.swiftLoading diff…
native/apple/Sources/CallsInterop/SyntheticVideo.swiftLoading diff…
native/apple/Sources/CallsInterop/SyntheticVoice.swiftLoading diff…
native/apple/Sources/CallsKit/Audio.swiftLoading diff…
native/apple/Sources/CallsKit/BroadcastScreenCapture.swiftLoading diff…
native/apple/Sources/CallsKit/Call.swiftLoading diff…
native/apple/Sources/CallsKit/CallAudio.swiftLoading diff…
native/apple/Sources/CallsKit/CallsLobby.swiftLoading diff…
native/apple/Sources/CallsKit/CallsModel.swiftLoading diff…
native/apple/Sources/CallsKit/CallsSettingsView.swiftLoading diff…
native/apple/Sources/CallsKit/Capture.swiftLoading diff…
native/apple/Sources/CallsKit/DevicePanel.swiftLoading diff…
native/apple/Sources/CallsKit/MacCallView.swiftLoading diff…
native/apple/Sources/CallsKit/MacScreenCapture.swiftLoading diff…
native/apple/Sources/CallsKit/MacVideoTile.swiftLoading diff…
native/apple/Sources/CallsKit/Media.swiftLoading diff…
native/apple/Sources/CallsKit/MicrophoneMode.swiftLoading diff…
native/apple/Sources/CallsKit/MiniWindow.swiftLoading diff…
native/apple/Sources/CallsKit/MiniWindowRules.swiftLoading diff…
native/apple/Sources/CallsKit/MutedBadge.swiftLoading diff…
native/apple/Sources/CallsKit/NoiseSuppression.swiftLoading diff…
native/apple/Sources/CallsKit/ScreenShare.swiftLoading diff…
native/apple/Sources/CallsKit/SessionStore.swiftLoading diff…
native/apple/Sources/CallsKit/WebRTCNames.swiftLoading diff…
native/apple/Sources/CallsKit/Wire.swiftLoading diff…
native/apple/Sources/CallsMac/CallsMac.swiftLoading diff…
native/apple/Tests/CallsKitTests/AudioHealthTests.swiftLoading diff…
native/apple/Tests/CallsKitTests/BroadcastTests.swiftLoading diff…
native/apple/Tests/CallsKitTests/Fixtures/speech-48k.wavLoading diff…
native/apple/Tests/CallsKitTests/KeptSignInTests.swiftLoading diff…
native/apple/Tests/CallsKitTests/MeetingLinkTests.swiftLoading diff…
native/apple/Tests/CallsKitTests/MicrophoneModeTests.swiftLoading diff…
native/apple/Tests/CallsKitTests/MiniWindowTests.swiftLoading diff…
native/apple/Tests/CallsKitTests/NoiseSuppressionTests.swiftLoading diff…
native/apple/Tests/CallsKitTests/PeerMediaTests.swiftLoading diff…
native/apple/Tests/CallsKitTests/ScreenShareTests.swiftLoading diff…
native/apple/Tests/CallsKitTests/StartMeetingTests.swiftLoading diff…
native/bridge/bridge.goLoading diff…
native/bridge/bridge_test.goLoading diff…
native/ios/Broadcast/SampleHandler.swiftLoading diff…
native/ios/README.mdLoading diff…
native/ios/Sources/CallsPhone.swiftLoading diff…
native/ios/Sources/PhoneScreenShare.swiftLoading diff…
native/ios/Tests/CallsPhoneTests.swiftLoading diff…
native/ios/Tests/SilentAudioDevice.swiftLoading diff…
native/ios/UITests/CallsPhoneUITests.swiftLoading diff…
native/ios/project.ymlLoading diff…
native/scripts/build-deepfilter.shLoading diff…
native/scripts/build-iphone.shLoading diff…
native/scripts/build-mac.shLoading diff…
native/scripts/build-rnnoise.shLoading diff…
native/scripts/bundle-mac.pyLoading diff…
native/scripts/deepfilter-notices.pyLoading diff…
protocol/messages.goLoading diff…
test/browser/call.mjsLoading diff…
test/browser/native.mjsLoading diff…
test/browser/negotiation.test.mjsLoading diff…
test/browser/room-mute.test.mjsLoading diff…