feat(call): send io.lotus.set_deafen to the fork (P6-2 phase 1)
CallControl now sends the new io.lotus.set_deafen action (join-gated via forceState) on every deafen / screenshare-audio-mute toggle + on join, ALONGSIDE the retained iframe-DOM .muted hack (transitional). Against the current pinned bundle the action is immediately error-replied + swallowed by .catch — inert, no timeout. Reordered toggleSound() to commit state before setSound() so the sent deafen value isn't inverted. Phase 2 (after the fork is published): bump the pin lotus.1 -> lotus.2 and delete the DOM hack. Docs: HANDOFF §12.4, LOTUS_TODO P6-2, LOTUS_BUGS. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+10
-1
@@ -523,7 +523,16 @@ From the desktop audit. Round out the native app now that the full Rust stack co
|
||||
- **Tray "Do Not Disturb" toggle** — the tray menu is Open/Quit only; add a DND item (reuses the Focus-Assist suppression atom path) so users can silence notifications from the tray.
|
||||
CI-compile-verified (Windows + Linux runners); no local Rust.
|
||||
|
||||
### [ ] P6-2 · Element Call fork — retire the remaining DOM hacks
|
||||
### [~] P6-2 · Element Call fork — retire the remaining DOM hacks — DEAFEN DONE (2026-07), Phase-2 pending publish
|
||||
|
||||
**Shipped (Phase 1):** new `io.lotus.set_deafen` action in the fork (`lotusDeafen.ts`) sets remote `RemoteParticipant.setVolume` per source (mic + screenshare-audio), persisting to late joiners — replaces the brittle `CallControl.setSound`/`applyScreenshareAudioMuted` `<audio>.muted` iframe-DOM hack. cinny now sends it (join-gated) alongside the retained DOM hack (transitional). Folded into unpublished fork `0.20.1-lotus.2`.
|
||||
**Phase 2 (needs user publish):** publish `0.20.1-lotus.2` to npm → bump cinny pin `lotus.1`→`lotus.2` → delete the DOM `.muted` code. See HANDOFF §12.4.
|
||||
**DEFERRED (rationale):** the `useCallSpeakers` DOM-scrape is a dormant _fallback_ behind `io.lotus.call_state` (deleting only removes the safety net); the `.click()`-by-`data-testid` UI toggles (screenshare/grid/spotlight/reactions/settings) are low-value and would balloon fork surface for buttons that just trigger EC's own UI.
|
||||
**Divergence:** deafen doesn\'t silence soundboard/`Unknown`-source audio (setVolume type limit) — confirm UX.
|
||||
|
||||
_Original scope below._
|
||||
|
||||
### [ ] P6-2b · Element Call fork — remaining DOM hacks (deferred pieces)
|
||||
|
||||
Replace cinny's fragile iframe-`contentDocument` reaches with proper `io.lotus.*` widget actions in the fork (`LotusGuild/element-call`), which break on EC re-renders/version bumps:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user