docs(call): cover soundboard/quality/permissions in user-facing docs
- README "Calls & Voice": add the in-call soundboard, per-user call quality settings, and admin room call-permissions bullets. - LOTUS_TODO: mark the soundboard UI as built (was "cinny UI remains / dormant"). - HANDOFF_ELEMENT_CALL_FORK: add a COMPLETE status banner to the §12.1 host checklist; fix stale denoise specifics (all four models are in-source; flag is lotusDenoiseSource=1, not lotusDenoise=ml). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -548,8 +548,19 @@ roster capped. Only `https`/`blob` URLs accepted for inject/decoration assets.
|
||||
|
||||
### 12.1 cinny host integration checklist (REQUIRED to light these up)
|
||||
|
||||
The EC side is additive and dormant until cinny opts in. Host work needed (in
|
||||
`src/app/plugins/call/CallEmbed.ts` unless noted):
|
||||
> ✅ **STATUS (2026-06): COMPLETE.** All items below are shipped. call_state,
|
||||
> focus_participant, decorations, and transparent background are active; the
|
||||
> in-source denoise cutover is done (flag `lotusDenoiseSource=1`, **all four**
|
||||
> models in-source); and the two formerly-dormant capabilities now have cinny
|
||||
> UI — **soundboard** (`io.lotus.inject_audio`, P5-15) and **quality controls +
|
||||
> room permissions** (`io.lotus.set_quality` + `io.lotus.room_quality`, P5-31,
|
||||
> with server-side enforcement in `LotusGuild/matrix`). See `LOTUS_FEATURES.md`
|
||||
> → "Element Call — Self-Built Fork". The checklist is kept below as the record
|
||||
> of what was wired. (One open denoise item tracked separately: the "Series
|
||||
> Suppression" native-NS toggle is not wired to the real call path.)
|
||||
|
||||
The EC side is additive and dormant until cinny opts in. Host work (in
|
||||
`src/app/plugins/call/CallEmbed.ts` unless noted) — **done**:
|
||||
|
||||
> ⚠️ **CRITICAL TIMING (protocol audit F1):** only send `io.lotus.*` **toWidget**
|
||||
> actions (#3 focus, #6 decorations, #7 quality, audio-inject) **after** the call
|
||||
@@ -559,16 +570,16 @@ The EC side is additive and dormant until cinny opts in. Host work needed (in
|
||||
> leaves the host's `transport.send` pending until the **10s timeout**. Queue and
|
||||
> flush on join, or no-op before join.
|
||||
>
|
||||
> Also: **F3** — the fork implements only `rnnoise`/`speex`; cinny's `dtln`/
|
||||
> `deepfilternet` selections silently fall back to rnnoise (now logged). Restrict
|
||||
> the embedded-call model picker to rnnoise/speex, or implement the others in
|
||||
> `lotusDenoiseProcessor.ts`. **F4** — cinny sends `lotusNativeNS`, which the
|
||||
> fork ignores; drop it or wire it in. **F7** — no widget _capability_ changes
|
||||
> needed; custom actions bypass capability checks.
|
||||
> Also: **F3 (RESOLVED)** — all four models (`rnnoise`/`speex`/`dtln`/
|
||||
> `deepfilternet`) are now implemented in-source in `lotusDenoiseProcessor.ts`;
|
||||
> the picker offers all four. **F4** — cinny no longer forwards a native-NS flag
|
||||
> in the `ml` branch (the "Series Suppression" toggle is currently a no-op in
|
||||
> real calls — open item). **F7** — no widget _capability_ changes needed;
|
||||
> custom actions bypass capability checks.
|
||||
|
||||
1. **Set the URL flags** on the widget iframe params (the `URLSearchParams` in
|
||||
`CallEmbed`): `lotusCallState=1`, `lotusTransparent=1`/`lotusTheme=1`,
|
||||
`lotusAudioInject=1` as desired. (Denoise already sets `lotusDenoise=ml` etc.)
|
||||
`lotusAudioInject=1` as desired. (Denoise sets `lotusDenoiseSource=1` + `lotusModel`/`lotusGate`/`lotusGateThreshold` in the `ml` tier.)
|
||||
2. **Ack `io.lotus.call_state`**: add `listenAction('io.lotus.call_state', …)` —
|
||||
without a reply the fork's sends time out every 250ms. Feed the payload into
|
||||
`useCallSpeakers` and RETIRE its `contentDocument` DOM scrape.
|
||||
|
||||
Reference in New Issue
Block a user