4a401cf816
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>
3.2 KiB
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
AvatarPresencebadge sticking out to the right shifts the center of theinline-flexcontainer. The decoration centers on the container, not the avatar. - Recommended Fix: Wrap only the
Avatarcomponent withAvatarDecoration.
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+PopOutpattern used inGeneral.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_typein 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 likefilteroropacityon 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
1. Decrypted Media Memory Leak (Gallery & Lightbox)
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.