feat(lotus): report remote screenshare audio to the host (cinny #277) #57

Merged
jared merged 1 commits from feat/screenshare-audio-state into lotus 2026-10-19 14:28:57 -04:00
Owner

For LotusGuild/cinny#277: the host's "Mute Screenshare Audio" button shows whenever screensharing is allowed, as a speaker icon that does nothing when nobody is sharing.

  • New fromWidget action io.lotus.screenshare_audio_state { present: boolean }.
  • Each LivekitRoomAudioRenderer (one per SFU) reports whether a remote participant's ScreenShareAudio track is being received; the local participant is excluded. lotusScreenshareAudio.ts combines the reports (present if any room has it) and sends to the host only when the answer changes. When a renderer unmounts (call left, SFU switch), its report is cleared.
  • LOTUS.md: new row; the first column is widened to fit.

Tests: new lotusScreenshareAudio.test.ts (changes only; any room counts; unmount clears). The renderer's existing tests still pass (19/19). tsc, oxlint and knip are clean.

The cinny side follows after release.

🤖 Generated with Claude Code

https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5

For LotusGuild/cinny#277: the host's "Mute Screenshare Audio" button shows whenever screensharing is *allowed*, as a speaker icon that does nothing when nobody is sharing. - **New fromWidget action** `io.lotus.screenshare_audio_state { present: boolean }`. - Each `LivekitRoomAudioRenderer` (one per SFU) reports whether a **remote** participant's `ScreenShareAudio` track is being received; the local participant is excluded. `lotusScreenshareAudio.ts` combines the reports (present if any room has it) and sends to the host **only when the answer changes**. When a renderer unmounts (call left, SFU switch), its report is cleared. - `LOTUS.md`: new row; the first column is widened to fit. **Tests:** new `lotusScreenshareAudio.test.ts` (changes only; any room counts; unmount clears). The renderer's existing tests still pass (19/19). tsc, oxlint and knip are clean. The cinny side follows after release. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
jared added 1 commit 2026-10-19 14:21:53 -04:00
feat(lotus): report remote screenshare audio to the host (cinny #277)
CI / Publish to Gitea npm registry (pull_request) Skipped
CI / Build embedded bundle (pull_request) Successful in 1m55s
5f4844cad5
New fromWidget action io.lotus.screenshare_audio_state { present }: each
LivekitRoomAudioRenderer reports whether a remote participant's
ScreenShareAudio track is being received; the combined answer is sent to
the host on change, and cleared when a renderer unmounts. cinny uses it to
show "Mute Screenshare Audio" only when there is something to mute.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
jared merged commit 5693e81bb9 into lotus 2026-10-19 14:28:57 -04:00
Sign in to join this conversation.