Nothing in CI or the test suite exercises src/lotus/* at all
#6
Closed
opened 2026-09-12 02:12:59 -04:00 by jared
·
1 comment
No Branch/Tag Specified
lotus
chore/dev-tool-security
feat/expected-devices
lotus-upstream-v0.28.0
feat/call-summary-details
feat/soundboard-mic-mix
feat/mobile-self-tile
feat/screenshare-audio-state
feat/decorations-origin
docs/lotus-call-error
lotus-stall-retry
docs/lotus-protocol
lotus-soundboard-not-permitted
lotus-mic-sampler-churn
lotus-call-error
fix/audio-output-list
lotus-notify-none
lotus-screenshare-prompt
lotus-call-origin
v0.28.0-lotus.4
v0.28.0-lotus.3
v0.28.0-lotus.2
v0.28.0-lotus.1
v0.25.0-lotus.29
v0.25.0-lotus.28
v0.25.0-lotus.27
v0.25.0-lotus.26
v0.25.0-lotus.25
v0.25.0-lotus.24
v0.25.0-lotus.23
v0.25.0-lotus.22
v0.25.0-lotus.21
v0.25.0-lotus.20
v0.25.0-lotus.19
v0.25.0-lotus.18
v0.25.0-lotus.17
v0.25.0-lotus.16
v0.25.0-lotus.15
v0.25.0-lotus.14
v0.25.0-lotus.13
v0.25.0-lotus.12
v0.25.0-lotus.11
v0.25.0-lotus.10
v0.25.0-lotus.9
v0.25.0-lotus.8
v0.25.0-lotus.7
v0.25.0-lotus.6
v0.25.0-lotus.5
v0.25.0-lotus.4
v0.25.0-lotus.3
v0.25.0-lotus.2
v0.25.0-lotus.1
v0.20.1
Labels
Clear labels
a11y
area: audio-pipeline
area: build-publish
area: deafen
area: decorations
area: denoise
area: livekit
area: mobile-ui
area: soundboard-inject
area: upstream-sync
area: widget-actions
bug
dependencies
docs
enhancement
performance
priority: critical
priority: high
priority: low
priority: medium
research
security
tech-debt
ux
Accessibility
Fork area: audio-pipeline
Fork area: build-publish
Fork area: deafen
Fork area: decorations
Fork area: denoise
Fork area: livekit
Fork area: mobile-ui
Fork area: soundboard-inject
Fork area: upstream-sync
Fork area: widget-actions
Something is not working
Package versions and advisories
Docs wrong or missing
New feature
Audio pipeline cost, re-render storms, leaks
Data loss, security hole, or crash on a main path
Broken feature or serious usability problem
Minor issue or polish
Wrong behaviour in an edge case or notable degradation
Origin checks, capability leaks, media/key handling
Code health, fragile patterns
Usability or visual inconsistency
Milestone
No items
No Milestone
EC fork audit 2026-09 · High
Projects
Clear projects
No projects
Notifications
Due Date
Dependencies
No dependencies set.
Reference: LotusGuild/element-call#6
Reference in New Issue
Block a user
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.
Severity: high · Type: tech-debt · Confidence: high
Location:
src/lotus/lotusActions.ts,lotusAudioInject.ts,lotusCallState.ts,lotusDeafen.ts,lotusDecorations.ts,lotusDenoise.ts,lotusDenoiseProcessor.ts,lotusFocus.ts,lotusQuality.ts,lotusSpotlight.ts,lotusWidget.ts(all 11 files)Problem
None of the 11 files under
src/lotus/have a colocated*.test.ts/*.test.tsx, andgrep -rl "lotus" src --include="*.test.ts*"returns nothing — no existing suite imports or exercises any lotus module.vitest.config.tswould pick up such tests automatically (include: ["src/**/*.test.ts", "src/**/*.test.tsx"]), so the gap is pure absence of tests, not a config exclusion. This is the module that implements everyio.lotus.*widget action (deafen, audio-inject including the previously-fixed double-publish race, focus/spotlight, quality caps, decorations, ML denoise) — i.e. all of the fork's actual behavioral surface — with no automated regression protection, and (per the finding above) CI wouldn't even run the tests if they existed.Lead review note: the cinny audit's fix round added unit tests alongside every fix; the same pattern (colocated
*.test.ts, run in CI) is the ask here.How to trigger
N/A (absence of coverage, not a specific repro).
Suggested fix
Add unit tests for at least the action encode/decode + gating logic in
lotusActions.ts,lotusAudioInject.ts(the double-publish race that was already fixed once), andlotusDeafen.ts; wirepnpm test:unitinto CI (see finding above) so they're enforced.Filed from the September 2026 audit (branch
lotus).Closed by the 0.25.0-lotus.2 fix round.
src/lotus/now has 11 colocated vitest files (lotusActions, lotusAudioConstraints, lotusAudioInject, lotusCallState, lotusDeafen, lotusDecorations, lotusDenoise, lotusDenoiseProcessor, lotusQuality, lotusSpotlight, lotusWidget — lotusFocus's payload parser is covered from lotusSpotlight.test.ts), 696 unit tests project-wide, and CI hard-gatespnpm test:unit(#5). Remaining thin spot: no end-to-end call test; tracked on the cinny side by the Playwright smoke test (cinny#90).