CI / Build & Quality Checks (pull_request) Successful in 2m46s
CI / Trigger Desktop Build (pull_request) Skipped
CI / Docker image build & smoke test (pull_request) Skipped
CI / Secret scan (gitleaks) (pull_request) Successful in 7s
CI / Playwright smoke (e2e) (pull_request) Successful in 18m56s
The fork reports what actually runs as io.lotus.denoise_state, but the
host never listened ("unsupported action"), so a failed ML denoiser
silently published the raw mic. Handle it: toast when ML did not start
or fell back to another model. Remove LotusDenoiseFeature, which waited
for a postMessage nothing sends any more and accepted it from any frame.
Refs #260
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
18 lines
737 B
TypeScript
18 lines
737 B
TypeScript
import { test } from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { denoiseNotice } from './denoiseNotice';
|
|
|
|
test('denoiseNotice: says when ML is off or fell back (#260)', () => {
|
|
assert.equal(denoiseNotice('deepfilternet', { active: true, model: 'deepfilternet' }), undefined);
|
|
assert.match(
|
|
denoiseNotice('deepfilternet', { active: true, model: 'rnnoise' }) ?? '',
|
|
/^DeepFilterNet 3 couldn't start, so noise suppression is using RNNoise instead\.$/,
|
|
);
|
|
assert.match(
|
|
denoiseNotice('rnnoise', { active: false, error: 'boom' }) ?? '',
|
|
/unfiltered audio/,
|
|
);
|
|
assert.equal(denoiseNotice('rnnoise', undefined), undefined);
|
|
assert.equal(denoiseNotice('rnnoise', { model: 'x' }), undefined);
|
|
});
|