Files
cinny/LOTUS_BUGS.md
T
jared 4a401cf816
CI / Build & Quality Checks (push) Successful in 10m26s
Trigger Desktop Build / trigger (push) Successful in 17s
fix(calls): harden ML denoise shim against static; fix lint/format
ML noise suppression produced loud static on real calls. RNNoise requires
mono 48kHz float input; feeding it stereo or wrong-rate data is the classic
cause of that static. Harden the shim:
- request mono (channelCount:1) + 48kHz capture
- run a 48kHz AudioContext and BAIL to the raw mic if the browser won't
  give a true 48kHz context (wrong-rate data -> static)
- force the worklet node to explicit mono in/out
- use the non-SIMD rnnoise.wasm (SIMD build artifacts on some GPUs)
- share one AudioContext across captures

Also fix the two CI-blocking eslint errors (unused vars in UrlPreviewCard
and useLocalMessageSearch) and apply repo-wide prettier formatting so
check:eslint and check:prettier pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 20:50:00 -04:00

3.2 KiB

Lotus Chat — Bug Report & Technical Audit

Date: June 2026

This document tracks identified bugs, edge cases, and architectural discrepancies found during the audit of the Lotus Chat codebase. Recommended fixes are provided for each item.


🚩 Critical & UI Bugs

1. Avatar Decoration Displacement in Profile

File: src/app/components/user-profile/UserHero.tsx Status: OPEN

  • Issue: Avatar decorations appear displaced left of the avatar when viewing the profile modal.
  • Root Cause: The AvatarPresence badge sticking out to the right shifts the center of the inline-flex container. The decoration centers on the container, not the avatar.
  • Recommended Fix: Wrap only the Avatar component with AvatarDecoration.

2. Inconsistent Settings Dropdown Styling

Files: Profile.tsx, SystemNotification.tsx Status: OPEN

  • Issue: Dropdowns for Status Expiry and Notification Sounds use raw HTML <select> elements.
  • Recommended Fix: Replace with the custom-styled Menu + PopOut pattern used in General.tsx.

3. Ringing Modal Fires in Voice Rooms

File: src/app/components/CallEmbedProvider.tsx Status: OPEN

  • Issue: Joining a static voice room triggers the "Incoming Call" ringing.
  • Recommended Fix: Check notification_type in the Matrix RTC event. Only 'ring' should trigger the modal.

4. No Camera Focus During Screenshare

File: src/app/features/call/CallControls.tsx Status: OPEN

  • Issue: When someone is screensharing and another participant turns on their camera, there is no way to switch the primary display to the camera or go fullscreen on it.
  • Recommended Fix: Implement a "Focus" toggle on participant tiles that overrides the automatic screenshare spotlight.

5. Chat Background Animation Flickering

File: src/app/features/lotus/chatBackground.ts Status: OPEN

  • Issue: Some animated backgrounds (like Fireflies) cause flickering/flashing of the message text and composer area on certain browsers/GPUs.
  • Recommended Fix: Ensure animations are scoped strictly to background properties (background-position, background-size) and do not use properties like filter or opacity on the main container.

📱 PWA & Mobile Issues

1. Exclusive Background vs. Seasonal Choice

Status: OPEN

  • Issue: Users can have both a Chat Background and a Seasonal Theme active, causing visual clutter and excessive GPU usage on mobile.
  • Recommended Fix: Implement a "Choose One" toggle in Settings.

🔍 Technical & Performance Refinements

File: src/app/features/room/MediaGallery.tsx Status: OPEN

  • Issue: Every image in the gallery history is decrypted and converted to a Blob URL simultaneously.
  • Recommended Fix: Implement virtualization for the gallery grid.

2. Scheduled Messages are Ephemeral

File: src/app/state/scheduledMessages.ts Status: OPEN

  • Issue: Refreshing the page clears the "Scheduled" tray, making it impossible for users to see or cancel messages they have already scheduled.
  • Recommended Fix: Persist the scheduled message metadata in localStorage.