docs(issues): #0054 — v0.5.0 unmute incident, fixed and accepted in v0.5.1
The first production image carrying the filter broke unmuting for everyone. Records both causes (missing AudioContext on the on-path, a stray processor: undefined leaking into getUserMedia constraints on the off-path), the fix with its deliberately-red-first regression tests, the passed two-person acceptance call, and the standing lesson: for changes in the microphone path, a real-call acceptance is a rollout precondition, not an afterthought. The filter stays gated off until the webAudioMix decision - that follow-up is what makes ADR-0018 implementable or refutes it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
78228e4d3b
commit
755aa3f2b5
@@ -252,3 +252,47 @@ relative Aufschlag ist also +60 %, nicht das Zwölffache.
|
|||||||
2. **Danach ThreadNet-Web:** Abhängigkeit auf `0.19.2-threadnet.8` anheben, bauen, Image in
|
2. **Danach ThreadNet-Web:** Abhängigkeit auf `0.19.2-threadnet.8` anheben, bauen, Image in
|
||||||
die Registry, Tag im gitops-Repo anheben.
|
die Registry, Tag im gitops-Repo anheben.
|
||||||
3. **Abnahme im echten Call zu zweit** steht weiterhin aus.
|
3. **Abnahme im echten Call zu zweit** steht weiterhin aus.
|
||||||
|
|
||||||
|
## Vorfall 2026-08-16: v0.5.0 brach das Entmuten — behoben in v0.5.1, Filter stillgelegt
|
||||||
|
|
||||||
|
⚠️ **Das erste Produktivimage mit dem Filter (v0.5.0, embedded `.8`) hat das Entmuten fuer
|
||||||
|
ALLE gebrochen** — nicht nur fuer Nutzer, die den Filter eingeschaltet hatten. Rueckrollung
|
||||||
|
auf v0.4.3 stellte den Dienst wieder her; die Ursache wurde ueber ein von sorb angefordertes
|
||||||
|
Diagnosefenster (v0.5.0 gezielt wieder ausgerollt, Browser-Konsole gesichert) festgenagelt.
|
||||||
|
|
||||||
|
**Zwei getrennte Fehler derselben Aenderung:**
|
||||||
|
|
||||||
|
1. **Filter an:** `LocalAudioTrack.setProcessor()` verlangt einen AudioContext auf dem Track.
|
||||||
|
Den gibt es nur mit `webAudioMix` beim Raum-Bau — und das steht in Element Call als
|
||||||
|
unerprobtes Upstream-TODO auskommentiert. Konsole: *"Audio context needs to be set on
|
||||||
|
LocalAudioTrack in order to enable processors"*; im SFU-Log erschien nie ein Track-Publish.
|
||||||
|
**ADR-0018 hat die Integrationstiefe unterschaetzt:** der Prototyp verdrahtete seinen
|
||||||
|
Audio-Graphen selbst und hat LiveKits Prozessor-Anbindung nie mitgeprueft.
|
||||||
|
2. **Filter aus:** Der Optionen-Bau setzte `processor: undefined` und schrieb
|
||||||
|
`noiseSuppression` um. LiveKit kopiert **jeden** Schluessel der `audioCaptureDefaults` bis
|
||||||
|
in die getUserMedia-Constraints durch, `undefined` eingeschlossen — in Safari brach damit
|
||||||
|
das Entmuten trotz publiziertem Track. In Chromium unauffaellig; die fruehe Entlastung
|
||||||
|
dieses Verdachts war ein Browser-uebergreifender Fehlschluss aus einem Chromium-Test.
|
||||||
|
|
||||||
|
**Fix (threadnet-call `dcc8643`, embedded `.9`, ThreadNet-Web v0.5.1):**
|
||||||
|
- Aus-Pfad als bedingtes Spread — identisch mit Upstream, kein `processor`-Schluessel.
|
||||||
|
- Feature-Tor `AI_NOISE_SUPPRESSION_AVAILABLE = false`: neutralisiert auch Clients mit noch
|
||||||
|
aktivierter Einstellung im localStorage (real existierender Fall), UI dahinter versteckt.
|
||||||
|
- Zwei Regressionstests, **auf dem alten Stand nachweislich rot** — erst dadurch beweisen sie
|
||||||
|
etwas.
|
||||||
|
|
||||||
|
**Abnahme bestanden 2026-08-16:** Call sorb+frank auf v0.5.1, Muten/Entmuten beidseitig,
|
||||||
|
sorbs Client mit unveraendertem localStorage. Konsolen-Fehlerbild identisch mit dem
|
||||||
|
funktionierenden v0.4.3-Stand (bekanntes Rauschen, als eigene Beobachtung notiert:
|
||||||
|
einmaliger 401 auf ein m.call-State-Event, einmaliger LiveKit-Connect-Fehlversuch mit
|
||||||
|
erfolgreichem Folgeversuch).
|
||||||
|
|
||||||
|
**Lehre (Wiederholung des Sitzungsmusters):** Die Auslieferungskette war penibel verifiziert
|
||||||
|
— npm, node_modules, webpack, CI-Artefakt, Container, ausgelieferte URL. Geprueft wurde, ob
|
||||||
|
die *Dateien ankommen*, nicht, ob die *Funktion im Zielsystem tut*. Der Call-Test zu zweit
|
||||||
|
stand als „danach" auf der Liste statt als Voraussetzung. Fuer Aenderungen im Mikrofon-Pfad
|
||||||
|
gilt ab jetzt: **Abnahme im echten Call ist Rollout-Voraussetzung, nicht Nacharbeit.**
|
||||||
|
|
||||||
|
**Offen (Folge-Entscheidung, nicht Teil dieses Issues):** Der Filter bleibt stillgelegt, bis
|
||||||
|
`webAudioMix` entschieden ist — Upstream-TODO mit Nebenwirkungen auf Echo-Unterdrueckung und
|
||||||
|
Ausgabegeraete-Wahl. Erst diese Entscheidung macht ADR-0018 umsetzbar oder widerlegt ihn.
|
||||||
|
|||||||
Reference in New Issue
Block a user