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 actionio.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.
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
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 lotus2026-10-19 14:28:57 -04:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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.
io.lotus.screenshare_audio_state { present: boolean }.LivekitRoomAudioRenderer(one per SFU) reports whether a remote participant'sScreenShareAudiotrack is being received; the local participant is excluded.lotusScreenshareAudio.tscombines 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
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