Files
cinny/LOTUS_BUGS.md
T

70 lines
3.4 KiB
Markdown
Raw Normal View History

# Lotus Chat — Bug Report & Technical Audit
2026-06-10 22:55:32 -04:00
**Date:** June 2026
This document tracks identified bugs, edge cases, and architectural discrepancies.
---
## ✅ Resolved Issues (Recently Fixed)
2026-06-10 22:55:32 -04:00
- **GIF Sending Bypasses E2EE**: Fixed in `RoomInput.tsx`.
- **Scheduled Messages Bypass E2EE**: Fixed in `scheduledMessages.ts`.
- **Drag-and-Drop Overlay Persistence**: Fixed in `useFileDrop.ts`.
- **Stale Member List in Verification Banner**: Fixed in `useDeviceVerificationStatus.ts`.
- **Incomplete Python Comment Highlighting**: Fixed in `syntaxHighlight.ts`.
- **Search Button Hidden in E2EE Rooms**: Fixed in `RoomViewHeader.tsx`.
- **TDS Design Law Violations (Hardcoded Hex)**: Fixed in `GifPicker.tsx` and `VoiceMessageRecorder.tsx`.
- **Recent Emoji Sort Order**: Fixed in `recent-emoji.ts` (recency order, not frequency).
- **Encrypted Search Misses Historic Events**: Fixed in `useLocalMessageSearch.ts`.
- **Presence Updater Base URL Hack**: Fixed in `usePresenceUpdater.ts`.
- **Presence Badge Accessibility**: Fixed in `Presence.tsx` (`aria-label` on badge).
- **Presence Updater Wipes Custom Status**: Fixed in `usePresenceUpdater.ts` (removed `status_msg: ''`).
- **Manifest Main Icon Paths 404**: Fixed in `public/manifest.json` (`./public/android/``./res/android/`). Shortcut icon was already correct.
---
## 🛡️ Critical Security & Logic
### 1. Edit History Broken for E2EE
2026-06-10 22:55:32 -04:00
**File:** `src/app/features/room/message/EditHistoryModal.tsx`
2026-06-12 18:15:16 -04:00
**Status:** **FIXED**
2026-06-12 18:15:16 -04:00
- **Issue:** The modal fetches edit history via raw `fetch`. Edit events not found in the room cache were constructed from raw encrypted content and never decrypted.
- **Fix:** Each newly constructed `MatrixEvent` is now passed through `mx.decryptEventIfNeeded()` before rendering when `evt.isEncrypted()` is true.
### 2. Service Worker Ephemeral Sessions
2026-06-10 22:55:32 -04:00
**File:** `src/sw.ts`
2026-06-12 18:15:16 -04:00
**Status:** **NOT A BUG — by design**
2026-06-12 18:15:16 -04:00
- The `sessions` Map is intentionally in-memory. The main window re-posts the session to the SW via `postMessage` on every load. Persisting access tokens in SW IndexedDB would duplicate credential storage unnecessarily and is not required for the current feature set.
---
## 📱 PWA & Mobile Issues
### 1. No PWA Precaching (Offline Mode Broken)
2026-06-10 22:55:32 -04:00
**File:** `src/sw.ts`, `vite.config.js`
2026-06-12 18:15:16 -04:00
**Status:** **DEFERRED — out of scope**
2026-06-12 18:15:16 -04:00
- Full offline Matrix requires persisting sync state, E2EE keys, and an event send queue. The SW exists for authenticated media and notifications, which it handles correctly. Adding Workbox precaching is a multi-sprint project with limited benefit for a Matrix client.
### 2. PiP Resize Impossible on Mobile
2026-06-10 22:55:32 -04:00
**File:** `src/app/components/CallEmbedProvider.tsx`
2026-06-12 18:15:16 -04:00
**Status:** **FIXED**
2026-06-12 18:15:16 -04:00
- **Issue:** Resize corner `onMouseDown` handlers did not fire on touch devices.
- **Fix:** Added `handleResizeTouchStart` using touch events with the same geometry math extracted into a shared `applyResize` helper. `onTouchStart` is now wired to all four resize corners.
### 3. Double Background Animation (GPU Waste)
2026-06-10 22:55:32 -04:00
**File:** `src/app/pages/client/SidebarNav.tsx`, `src/app/features/room/RoomView.tsx`
2026-06-12 18:15:16 -04:00
**Status:** **FIXED**
2026-06-12 18:15:16 -04:00
- **Issue:** When Glassmorphism is enabled, the chat background was rendered on both `document.body` and `RoomView`, running the same CSS animation twice.
- **Fix:** `RoomView` now reads the `glassmorphismSidebar` setting and skips applying `chatBgStyle` when it is active, relying entirely on the `document.body` background that `SidebarNav` already mirrors.