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
|
||||
die Registry, Tag im gitops-Repo anheben.
|
||||
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