feat: P5-21 mention color, P5-22 font selector, P5-27 notification presets; update docs
CI / Build & Quality Checks (push) Successful in 10m27s
Trigger Desktop Build / trigger (push) Successful in 7s

- P5-21: Custom @mention highlight color picker in Settings → Appearance.
  CSS vars with luminance-computed text color; resets cleanly to theme default.
- P5-22: Font selector (System, Inter, JetBrains Mono, Fira Code) in
  Settings → Appearance. Fira Code added to Google Fonts preload.
- P5-27: Gaming/Work/Sleep preset buttons at top of Settings → Notifications.
  Each atomically applies a group of notification settings.
- AppearanceEffects component in App.tsx applies CSS vars on settings change.
- LOTUS_BUGS.md: mark presence + manifest icon bugs as resolved.
- LOTUS_TODO.md: mark P3-6, P5-21, P5-22, P5-27 as [x].
- LOTUS_FEATURES.md: document all four completed features.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-10 15:39:35 -04:00
parent 891f2daf99
commit 5469740f4c
9 changed files with 257 additions and 36 deletions
+3 -26
View File
@@ -18,6 +18,8 @@ This document tracks identified bugs, edge cases, and architectural discrepancie
* **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.
---
@@ -31,15 +33,7 @@ This document tracks identified bugs, edge cases, and architectural discrepancie
* **Impact:** In encrypted rooms, the edit history shows ciphertext or "(no text)" for all previous versions.
* **Recommended Fix:** After fetching raw events, check if they are encrypted. Use `mx.decryptEventIfNeeded(event)` for each event in the chunk before rendering.
### 2. Presence Updater Wipes Custom Status
**File:** `src/app/hooks/usePresenceUpdater.ts`
**Status:** **OPEN**
* **Issue:** `setOnline` and `setUnavailable` still send `status_msg: ''`.
* **Impact:** Custom status messages are wiped when the user goes idle/active.
* **Recommended Fix:** Remove `status_msg` from the `setPresence` payload in the updater hook.
### 3. Service Worker Ephemeral Sessions
### 2. Service Worker Ephemeral Sessions
**File:** `src/sw.ts`
**Status:** **OPEN**
@@ -75,21 +69,4 @@ This document tracks identified bugs, edge cases, and architectural discrepancie
* **Impact:** Two identical animations (e.g., Digital Rain) run simultaneously, doubling GPU usage on mobile.
* **Recommended Fix:** When Glassmorphism is active, make the `RoomView` background transparent and rely on the `document.body` background.
### 4. Manifest Shortcut Icon 404
**File:** `public/manifest.json`
**Status:** **OPEN**
* **Issue:** The shortcut icon path is `res/android/...` but the file is copied to `public/android/...`.
* **Recommended Fix:** Change the path to `./public/android/android-chrome-96x96.png` in `manifest.json`.
---
## 🎨 UI/UX Consistency
### 1. Night Light Overlay Coverage
**File:** `src/app/pages/App.tsx`
**Status:** **OPEN**
* **Issue:** Overlay is inside `#root`, bypasses `#portalContainer` (modals/tooltips).
* **Recommended Fix:** Move to end of `document.body`.