2025-11-05 - 2026-11-05
Overview
34 Releases published by 1 user
Published
v0.28.0-lotus.4
Published
v0.28.0-lotus.3
Published
v0.28.0-lotus.2
Published
v0.28.0-lotus.1
Published
v0.25.0-lotus.29
Published
v0.25.0-lotus.28
Published
v0.25.0-lotus.27
Published
v0.25.0-lotus.26
Published
v0.25.0-lotus.25
Published
v0.25.0-lotus.24
Published
v0.25.0-lotus.23
Published
v0.25.0-lotus.22
Published
v0.25.0-lotus.21
Published
v0.25.0-lotus.20
Published
v0.25.0-lotus.19
Published
v0.25.0-lotus.18
Published
v0.25.0-lotus.17
Published
v0.25.0-lotus.16
Published
v0.25.0-lotus.15
Published
v0.25.0-lotus.14
Published
v0.25.0-lotus.13
Published
v0.25.0-lotus.12
Published
v0.25.0-lotus.11
Published
v0.25.0-lotus.10
Published
v0.25.0-lotus.9
Published
v0.25.0-lotus.8
Published
v0.25.0-lotus.7
Published
v0.25.0-lotus.6
Published
v0.25.0-lotus.5
Published
v0.25.0-lotus.4
Published
v0.25.0-lotus.3
Published
v0.25.0-lotus.2
Published
v0.25.0-lotus.1
Published
v0.20.1
21 Pull requests merged by 1 user
Merged
#66 feat(denoise): switch noise suppression mid-call (+ fix re-captures ignoring noiseSuppression)
Merged
#65 fix(denoise): DeepFilterNet attenuation limit 60 → 25 dB (choppy word endings)
Merged
#64 fix(denoise): stop DeepFilterNet silently passing raw audio through
Merged
#63 chore(deps): security fixes for dev/build tooling (Storybook, Vitest, Vite, transitive)
Merged
#62 feat(lotus): expected-device check before joining (cinny #121)
Merged
#61 merge: upstream Element Call v0.28.0 (cinny #201)
Merged
#60 feat(lotus): detailed call summary for the host (cinny #253)
Merged
#59 feat(lotus): soundboard works in voice channels with a call policy (#47)
Merged
#58 feat(lotus): keep your own tile on mobile with the camera off (cinny #265)
Merged
#57 feat(lotus): report remote screenshare audio to the host (cinny #277)
Merged
#56 feat(lotus): accept decorations from chat.lotusguild.org (matrix #22)
Merged
#55 docs(lotus): LOTUS.md lists io.lotus.call_error and io.lotus.reconnect (#50)
Merged
#53 docs(lotus): LOTUS.md: the io.lotus.* widget protocol, URL flags and release flow (#43)
Merged
#52 fix(lotus): soundboard says "not permitted" in audio-only rooms instead of failing silently (#47)
Merged
#51 fix(lotus): restart the shared mic sampler only when the LiveKit rooms change (#45)
Merged
#50 feat(lotus): tell the host when the call drops, and let it press Reconnect (cinny #318)
Merged
#54 fix(lotus): a homeserver stall shorter than the delayed-leave window no longer ends the call (#46)
Merged
#49 feat(lotus): report the frame's audio outputs to the host (cinny #310)
Merged
#48 feat(lotus): sendNotificationType=none turns the call-start notification off (cinny #295)
Merged
#42 In-frame "Share your screen?" prompt replaces the corner button (cinny #43)
Merged
#41 Work when served from its own origin (cinny #43)
45 Issues closed from 1 user
Closed
#47 Soundboard silently fails in audio-only rooms: the clip is published as an Unknown-source track, which the guard's microphone-only grant refuses
Closed
#44 io.lotus.set_audio_output stores the host's deviceId as-is; audio_output_state never sends the promised device list
Closed
#43 The Lotus fork has no documentation: the io.lotus.* widget protocol and URL flags are only described in code comments
Closed
#45 "You're muted" nudge never fires: the shared mic sampler restarts every ~1 s and each restart resets speakingWhileMuted
Closed
#46 A ~30 s homeserver stall ends everyone's call ("Connection lost — Reconnect"), even with the 60 s delayed-leave window prod configures
Closed
#36 [research] Per-participant volume: is it remembered across calls, and where is it stored?
Closed
#39 Screenshare reminders: shared window closed (black share) and long share with nobody watching
Closed
#38 Screenshare tile: show whether the share carries audio
Closed
#37 Report "speaking while muted" in io.lotus.call_state
Closed
#40 Speaking indicator stuck off for one participant after an SFU full reconnect (until they toggle their mic)
Closed
#35 EC fork audit 2026-09 — tracking index
Closed
#6 Nothing in CI or the test suite exercises src/lotus/* at all
Closed
#32 Landscape filmstrip rail-shrink query is height-only, not orientation- or device-aware
Closed
#33 lotusFlag/lotusParam URL cache is captured once at module load, not re-read
Closed
#21 lotusTransparent/lotusTheme provide no contrast guard for an arbitrary host background
Closed
#27 Audio-output sink is never restored when the selected device becomes undefined again
Closed
#12 Screenshare bitrate cap is applied per simulcast layer, so the aggregate can be N× the cap
Closed
#13 Soundboard clips are published to peers even while the local mic is muted
Closed
#14 Each soundboard clip creates a new AudioContext, against a per-document limit of ~6
Closed
#20 call_state can emit up to 8 messages/second; dedupe runs after the throttle
Closed
#18 Torn-down lotus actions pile up in the LazyEventEmitter backlog and replay stale
Closed
#17 Decoration roster and spotlight pin are lost on an EC handler remount and never re-pushed
Closed
#28 Decoration URLs derive from an unvalidated arbitrary profile field
Closed
#4 In-call avatar decoration is sized 1:1 with the avatar (no inset like the host) and has no onError fallback
Closed
#19 In-call avatar decoration (animated APNG) ignores prefers-reduced-motion, unlike the host renderer
Closed
#30 Manual pin resolves by userId only, so multi-device users pin an arbitrary device
Closed
#29 Pinning during a screenshare removes the PiP even when the pin is a third party
Closed
#3 focus_participant is a silent no-op in EC's default grid layout
Closed
#16 Spotlight pin can never be cleared once set
Closed
#25 Dry/wet floor sums an undelayed dry copy with the delayed denoised path (comb filtering)
Closed
#26 Denoise external-module contracts are untyped any and break silently on an asset bump
Closed
#24 Denoise worklet node ignores its channelCount: 1 (no channelCountMode: "explicit")
Closed
#9 Denoise graph keeps running (full ML inference) while the mic is muted
Closed
#7 Denoise init blocks LiveKit's track-change lock, freezing mute/unmute for seconds
Closed
#8 Model load failure silently publishes raw audio while the host UI says denoise is on
Closed
#23 Upstream fork is 6 minor releases behind with no cherry-picks; hotspot files have heavy upstream churn
Closed
#22 Published npm version consumed by cinny has no corresponding git tag
Closed
#5 Fork CI never runs the test/lint/typecheck suite before publish
Closed
#11 Sending null does not clear a quality cap, contrary to the host contract
Closed
#15 Incoming io.lotus.* toWidget actions are accepted from any origin
Closed
#31 lotusCallState=1 in standalone (non-widget) mode builds the whole pipeline for nothing
Closed
#34 CI workflow has no concurrency guard, unlike the cinny workflow it's modeled on
Closed
#1 Deafen via per-participant setVolume is undone by EC volume controls and clobbers tile volumes on undeafen
Closed
#2 Denoise restart fallback hands LiveKit the raw mic as processedTrack, which later gets stopped
Closed
#10 Racing LocalTrackPublished events start two denoise processors (two AudioContexts, two wasm inits)
45 Issues created by 0 users
Opened
#1 Deafen via per-participant setVolume is undone by EC volume controls and clobbers tile volumes on undeafen
Opened
#2 Denoise restart fallback hands LiveKit the raw mic as processedTrack, which later gets stopped
Opened
#3 focus_participant is a silent no-op in EC's default grid layout
Opened
#4 In-call avatar decoration is sized 1:1 with the avatar (no inset like the host) and has no onError fallback
Opened
#5 Fork CI never runs the test/lint/typecheck suite before publish
Opened
#6 Nothing in CI or the test suite exercises src/lotus/* at all
Opened
#7 Denoise init blocks LiveKit's track-change lock, freezing mute/unmute for seconds
Opened
#8 Model load failure silently publishes raw audio while the host UI says denoise is on
Opened
#9 Denoise graph keeps running (full ML inference) while the mic is muted
Opened
#10 Racing LocalTrackPublished events start two denoise processors (two AudioContexts, two wasm inits)
Opened
#11 Sending null does not clear a quality cap, contrary to the host contract
Opened
#12 Screenshare bitrate cap is applied per simulcast layer, so the aggregate can be N× the cap
Opened
#13 Soundboard clips are published to peers even while the local mic is muted
Opened
#14 Each soundboard clip creates a new AudioContext, against a per-document limit of ~6
Opened
#15 Incoming io.lotus.* toWidget actions are accepted from any origin
Opened
#16 Spotlight pin can never be cleared once set
Opened
#17 Decoration roster and spotlight pin are lost on an EC handler remount and never re-pushed
Opened
#18 Torn-down lotus actions pile up in the LazyEventEmitter backlog and replay stale
Opened
#19 In-call avatar decoration (animated APNG) ignores prefers-reduced-motion, unlike the host renderer
Opened
#20 call_state can emit up to 8 messages/second; dedupe runs after the throttle
Opened
#21 lotusTransparent/lotusTheme provide no contrast guard for an arbitrary host background
Opened
#22 Published npm version consumed by cinny has no corresponding git tag
Opened
#23 Upstream fork is 6 minor releases behind with no cherry-picks; hotspot files have heavy upstream churn
Opened
#24 Denoise worklet node ignores its channelCount: 1 (no channelCountMode: "explicit")
Opened
#25 Dry/wet floor sums an undelayed dry copy with the delayed denoised path (comb filtering)
Opened
#26 Denoise external-module contracts are untyped any and break silently on an asset bump
Opened
#27 Audio-output sink is never restored when the selected device becomes undefined again
Opened
#28 Decoration URLs derive from an unvalidated arbitrary profile field
Opened
#29 Pinning during a screenshare removes the PiP even when the pin is a third party
Opened
#30 Manual pin resolves by userId only, so multi-device users pin an arbitrary device
Opened
#31 lotusCallState=1 in standalone (non-widget) mode builds the whole pipeline for nothing
Opened
#32 Landscape filmstrip rail-shrink query is height-only, not orientation- or device-aware
Opened
#33 lotusFlag/lotusParam URL cache is captured once at module load, not re-read
Opened
#34 CI workflow has no concurrency guard, unlike the cinny workflow it's modeled on
Opened
#35 EC fork audit 2026-09 — tracking index
Opened
#36 [research] Per-participant volume: is it remembered across calls, and where is it stored?
Opened
#37 Report "speaking while muted" in io.lotus.call_state
Opened
#38 Screenshare tile: show whether the share carries audio
Opened
#39 Screenshare reminders: shared window closed (black share) and long share with nobody watching
Opened
#40 Speaking indicator stuck off for one participant after an SFU full reconnect (until they toggle their mic)
Opened
#43 The Lotus fork has no documentation: the io.lotus.* widget protocol and URL flags are only described in code comments
Opened
#44 io.lotus.set_audio_output stores the host's deviceId as-is; audio_output_state never sends the promised device list
Opened
#45 "You're muted" nudge never fires: the shared mic sampler restarts every ~1 s and each restart resets speakingWhileMuted
Opened
#46 A ~30 s homeserver stall ends everyone's call ("Connection lost — Reconnect"), even with the 60 s delayed-leave window prod configures
Opened
#47 Soundboard silently fails in audio-only rooms: the clip is published as an Unknown-source track, which the guard's microphone-only grant refuses