2026-08-20 - 2026-09-20
Overview
9 Releases published by 1 user
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
37 Issues closed from 1 user
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)
40 Issues created by 1 user
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)