2026-06-09 18:35:59 -04:00
# Lotus Chat — Bug Report & Technical Audit
2026-06-15 20:50:00 -04:00
2026-06-09 18:35:59 -04:00
**Date: ** June 2026
2026-06-14 00:33:04 -04:00
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.
2026-06-09 18:35:59 -04:00
---
2026-06-15 01:14:56 -04:00
## 🚩 Critical & UI Bugs
2026-06-14 00:33:04 -04:00
2026-06-15 01:14:56 -04:00
### 1. Avatar Decoration Displacement in Profile
2026-06-15 20:50:00 -04:00
2026-06-15 01:14:56 -04:00
**File: ** `src/app/components/user-profile/UserHero.tsx`
**Status: ** **OPEN **
2026-06-09 18:35:59 -04:00
2026-06-15 20:50:00 -04:00
- **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` .
2026-06-09 18:35:59 -04:00
2026-06-15 01:14:56 -04:00
### 2. Inconsistent Settings Dropdown Styling
2026-06-15 20:50:00 -04:00
2026-06-15 01:14:56 -04:00
**Files: ** `Profile.tsx` , `SystemNotification.tsx`
**Status: ** **OPEN **
2026-06-10 22:55:32 -04:00
2026-06-15 20:50:00 -04:00
- **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` .
2026-06-09 18:35:59 -04:00
2026-06-15 01:14:56 -04:00
### 3. Ringing Modal Fires in Voice Rooms
2026-06-15 20:50:00 -04:00
2026-06-15 01:14:56 -04:00
**File: ** `src/app/components/CallEmbedProvider.tsx`
**Status: ** **OPEN **
2026-06-09 18:35:59 -04:00
2026-06-15 20:50:00 -04:00
- **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.
2026-06-09 18:35:59 -04:00
2026-06-15 01:14:56 -04:00
### 4. No Camera Focus During Screenshare
2026-06-15 20:50:00 -04:00
2026-06-15 01:14:56 -04:00
**File: ** `src/app/features/call/CallControls.tsx`
**Status: ** **OPEN **
2026-06-15 20:50:00 -04:00
- **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.
2026-06-15 01:14:56 -04:00
### 5. Chat Background Animation Flickering
2026-06-15 20:50:00 -04:00
2026-06-15 01:14:56 -04:00
**File: ** `src/app/features/lotus/chatBackground.ts`
**Status: ** **OPEN **
2026-06-09 18:35:59 -04:00
2026-06-15 20:50:00 -04:00
- **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.
2026-06-09 18:35:59 -04:00
2026-06-14 00:33:04 -04:00
---
2026-06-10 22:55:32 -04:00
2026-06-15 01:14:56 -04:00
## 📱 PWA & Mobile Issues
2026-06-09 18:35:59 -04:00
2026-06-15 01:14:56 -04:00
### 1. Exclusive Background vs. Seasonal Choice
2026-06-15 20:50:00 -04:00
2026-06-15 01:14:56 -04:00
**Status: ** **OPEN **
2026-06-09 18:35:59 -04:00
2026-06-15 20:50:00 -04:00
- **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.
2026-06-10 22:55:32 -04:00
2026-06-15 01:14:56 -04:00
---
2026-06-09 18:35:59 -04:00
2026-06-15 01:14:56 -04:00
## 🔍 Technical & Performance Refinements
2026-06-10 22:55:32 -04:00
2026-06-15 01:14:56 -04:00
### 1. Decrypted Media Memory Leak (Gallery & Lightbox)
2026-06-15 20:50:00 -04:00
2026-06-15 01:14:56 -04:00
**File: ** `src/app/features/room/MediaGallery.tsx`
**Status: ** **OPEN **
2026-06-15 20:50:00 -04:00
- **Issue:** Every image in the gallery history is decrypted and converted to a Blob URL simultaneously.
- **Recommended Fix:** Implement virtualization for the gallery grid.
2026-06-15 01:14:56 -04:00
### 2. Scheduled Messages are Ephemeral
2026-06-15 20:50:00 -04:00
2026-06-15 01:14:56 -04:00
**File: ** `src/app/state/scheduledMessages.ts`
**Status: ** **OPEN **
2026-06-14 12:20:47 -04:00
2026-06-15 20:50:00 -04:00
- **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` .