ML noise suppression can't be tested with npm start, and every call logs a lotusTransparent/lotusTheme warning #293

Closed
opened 2026-10-04 19:50:23 -04:00 by jared · 0 comments
Owner

1. npm start can't run ML denoise. The denoise worklets and wasm are only copied into dist/public/element-call/denoise/ by the lotus-denoise closeBundle hook (vite.config.js:94-140). On the dev server the call frame requests /public/element-call/denoise/rnnoiseWorklet.js and gets the SPA fallback, so Failed to load worklet module script … (MIME type mismatch). The fork then falls back to the raw mic (silently; see #260).

  • On a production build (vite build && vite preview), all four models attach: denoise processor active (rnnoise|speex|dtln|deepfilternet).
  • Fix: serve those files in dev with a configureServer middleware, or document "use vite preview to test denoise" in LOTUS_TESTING.md.
  • Also, the hook hard-codes dist/, so a custom --outDir silently ships without denoise. That's already noted in #210.

2. Warning in every call. getWidget sends lotusTransparent=true but not lotusTheme (src/app/plugins/call/CallEmbed.ts:219). The fork warns [lotus] lotusTransparent is set without lotusTheme; applying lotusTheme anyway in every call.

  • Fix: send lotusTheme=true, or drop the warning fork-side.

Found in the October 2026 client audit (Playwright against a local Synapse + LiveKit stack, plus code reading). Code refs are at cinny 30e2dbcd, cinny-desktop 8f67ec7, element-call 3b0050e8.

**1. `npm start` can't run ML denoise.** The denoise worklets and wasm are only copied into `dist/public/element-call/denoise/` by the `lotus-denoise` `closeBundle` hook (vite.config.js:94-140). On the dev server the call frame requests `/public/element-call/denoise/rnnoiseWorklet.js` and gets the SPA fallback, so `Failed to load worklet module script … (MIME type mismatch)`. The fork then falls back to the raw mic (silently; see #260). - On a production build (`vite build && vite preview`), all four models attach: `denoise processor active (rnnoise|speex|dtln|deepfilternet)`. - **Fix:** serve those files in dev with a `configureServer` middleware, or document "use `vite preview` to test denoise" in LOTUS_TESTING.md. - Also, the hook hard-codes `dist/`, so a custom `--outDir` silently ships without denoise. That's already noted in #210. **2. Warning in every call.** `getWidget` sends `lotusTransparent=true` but not `lotusTheme` (src/app/plugins/call/CallEmbed.ts:219). The fork warns `[lotus] lotusTransparent is set without lotusTheme; applying lotusTheme anyway` in every call. - **Fix:** send `lotusTheme=true`, or drop the warning fork-side. --- _Found in the October 2026 client audit (Playwright against a local Synapse + LiveKit stack, plus code reading). Code refs are at cinny `30e2dbcd`, cinny-desktop `8f67ec7`, element-call `3b0050e8`._
jared added the priority: lowtech-debtarea: calls labels 2026-10-04 19:50:23 -04:00
jared closed this issue 2026-10-18 09:59:53 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#293