There was an error while loading. Please reload this page.
What is fixed on master since 26.9.21, and what 26.9.21 users should know Releases gains an Unreleased section. It opens with the known issues in 26.9.21: - Apple sends video only on the first call and never turns the camera off. - MAUI error dialogs hang up the call. - A join can silently never connect. - Closing a call on Apple's UI thread can freeze the app. It then gives the fixes, and what an application will notice when they ship. What works where points to it. Middleware now describes the native MAUI dialogs and VideoMuted's move to the observable side. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add 26.9.21 to Releases and move the current version The release notes for what shipped today: Android reporting real peer connection states, so a call whose transport died finally ends there; RestartIce working on all five platforms rather than one, and the IceRestart offer option that four bindings silently ignored; automatic recovery of a failed transport on the signalling path; a Windows sender that can be capped mid-call; the frame sink deadlock and the Media tile that ignored a changed stream. M153 underneath. The Apple camera preview delay is written up as a known issue rather than left for someone to find: it is in this release and fixed after it. Current version moved from 26.9.18 across Home, Getting started, Platform prerequisites, Testing and the feature matrix, whose body was already written for 26.9.21.
ICE restart only ever worked on Blazor RTCOfferOptions.IceRestart is read by one binding. Blazor passes the options object to the browser's createOffer; Android, iOS, Mac Catalyst and Windows discard it, so the "restart" was a plain re-offer carrying the old credentials. The call renegotiated and nothing restarted, which is why a browser test passed it and this page said the feature was verified on all five. Fixed in the repository as of 26.9.21 by calling RestartIce() instead, so: - What works where says what each platform actually did, and gains a row for the automatic recovery, which is new. - Connection.md documents that a call now recovers by itself, and warns anyone on an earlier package that the button is decorative on four platforms. - The 26.9.18 release note carries a correction, because that is the published package and people are running it today.
Two more places that claimed to be current at 26.9.16 The page index in Releases and the heading of What works where both state a version they are current as of, so they are claims rather than history and had gone stale. The remaining 26.9.16 mentions are deliberate - "on 26.9.16 and earlier", "26.9.16 or later", and a tag in the release-process diagram.
Add 26.9.18 to Releases and bump the current version One bug across three platforms, filed as several issues: peer connection awaits resumed on libwebrtc own signalling thread, so a Dispose after an await ran inside libwebrtc callback and closed the connection a few lines before libwebrtc used what the close destroyed. EXC_BAD_ACCESS at 0x30 on Apple, a destroyed-mutex abort on Android, and asynchronous either way so it killed unrelated work. Also records OnTrack finally firing on Apple, and the -NativeLog switch. Connection-Signaling said "the release following 26.9.16" in three places for things that have now shipped; they name 26.9.18.
Release as 26.9.16, today's date The scheme is the build date and 26.9.17 was tomorrow's. Also corrects the one sentence a blind replace would have left wrong - the example that maps the version back to a calendar date. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Releases: NOTICE now ships inside the packages Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Releases: NOTICE is filled in, so stop saying it is empty Replaces the warning with what the file now covers, and keeps one caveat that is still true: it is not packed into the .nupkg, so it does not reach a consumer on its own. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Releases: absorb the release notes the README was carrying The root README had become a changelog with a package list attached - the 2.0.0 notes, the Xamarin drop, the credits and the upgrade steps. That belongs on a releases page, and now that one exists the README can stop being one. README_V1.md stays where it is and is linked rather than copied. It is a stack of dated notes going back to 2021 and reads as the historical record it is. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Wiki: the five reference pages Platform prerequisites leads with the three failures that say nothing when you hit them, symptom first, because that is how a reader arrives. What works where separates implemented from run. A lot of Apple code was written on reasoning alone and compiles perfectly, and a matrix that shows only yes or no would hide exactly that. Two rows were corrected against the source while writing it: OnDeviceChange is dead on iOS and Mac Catalyst, and simulcast outside Blazor and Android is unverified rather than working. Testing carries the real numbers - 114 tests, 2.0s - from a run, not from counting attributes. Troubleshooting is organised by what the reader sees, never by which layer is at fault, since a reader who knew the layer would not need the page. Releases records what the packages embed and that attribution is the consumer's to satisfy, and says plainly that NOTICE is empty rather than letting an empty file read as nothing being required. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>