Instead of webAudioMix on the room - which would also rewire playback (sink selection through the AudioContext, LiveKit's Chrome echo workaround) - only the local microphone track gets an AudioContext, via setAudioContext() right before setProcessor(). The attach happens in onLocalTrackPublished, so a failing filter can no longer prevent unmuting: the track is already published by then. audioCaptureDefaults now never carry a processor key in any state; the conditional spread only toggles noiseSuppression. A regression test covers the active case too. The gate stays closed. A single test client opts in via two localStorage keys (ai-noise-suppression-dev plus the regular setting); the regular setting alone stays inert. Four unit tests pin the attach order - setAudioContext before setProcessor is exactly what v0.5.0 lacked - and the containment of a failing attach. 77 tests green across the touched suites. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
15 lines
284 B
JSON
15 lines
284 B
JSON
{
|
|
"name": "@sorb/threadnet-call-embedded",
|
|
"version": "0.19.2-threadnet.10",
|
|
"files": [
|
|
"README.md",
|
|
"LICENSE-AGPL-3.0",
|
|
"LICENSE-COMMERCIAL",
|
|
"dist"
|
|
],
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/element-hq/element-call.git"
|
|
}
|
|
}
|