# Lotus Chat — Work Backlog **Repo:** `lotus` branch at `https://code.lotusguild.org/LotusGuild/cinny` **Deploy:** push to `lotus` → CI → auto-deploy to `chat.lotusguild.org` (~11 min) --- ## ⚠️ TDS DESIGN LAW — READ BEFORE TOUCHING ANY UI > **ALL Lotus Terminal Design System (TDS) styling — colors, animations, glows, borders, fonts, spacing — MUST come exclusively from `/root/code/web_template/base.css` CSS variables.** > Do NOT hardcode hex values. Do NOT invent new variable names. Do NOT deviate from the design tokens defined in that file. > The canonical variable reference: `--lt-accent-orange`, `--lt-accent-cyan`, `--lt-accent-green`, `--lt-glow-orange`, `--lt-box-glow-*`, `--lt-border-color`, etc. > Reference implementation for code patterns: `/root/code/tinker_tickets/` (markdown.js, base.js, ticket.css) > This rule applies to EVERY task in this file without exception. --- Completed features are documented in [LOTUS_FEATURES.md](./LOTUS_FEATURES.md). --- Legend: - `[AUDIT REQUIRED]` — at least one assumption needs code/server verification before implementing - `[SERVER CHECK]` — depends on a Synapse feature or MSC; verify on `matrix.lotusguild.org` - `[LOW PRIORITY]` — implement after all higher-priority items - `[EXTREME COMPLEXITY]` — multi-sprint, plan separately before touching - `[BLOCKED]` — cannot build until a server upgrade, upstream MSC, or dependency resolves - `[IMPROVE]` — feature exists in upstream Cinny; this task enhances it for Lotus Chat Status: `[ ]` pending · `[~]` in progress · `[x]` completed --- ## Server Capabilities (as of June 2026) - **Homeserver:** `matrix.lotusguild.org` - **Synapse version:** `1.153.0` (2026-05-19) — fully up to date - **Matrix spec:** up to `v1.12` formally; newer MSC features via `unstable_features` ### Confirmed facts | Finding | Impact | | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | | **MSC flags ON:** `msc4140` · `msc3771` · `msc3440.stable` · `msc4133.stable` · `simplified_msc3575` | All safe to use now | | **MSC flags OFF:** `msc4306` (thread subscriptions) · `msc3882` · `msc3912` · `msc4155` | These features are BLOCKED | | **MSC3266** room summary: returns 404 | Room Preview feature BLOCKED | | **MSC3892** relation redaction: not in flags | Reaction Redaction feature BLOCKED | | **MSC4260** report user: server at v1.12, endpoint may not exist | Report User feature BLOCKED | | **MSC4151** report room: HTTP 405 on GET = endpoint exists (POST only) | Report Room live ✅ | | `folds AvatarImage` does NOT accept children | Add frame/overlay inside `UserAvatar.tsx` itself — optional `frameName` prop | | No in-app toast system exists (was) | Built `ToastProvider` + Jotai queue; at `App.tsx:65` | | `useUnverifiedDeviceCount()` hook exists | `src/app/hooks/useDeviceVerificationStatus.ts:65-106` | | Voice player: `AudioContent.tsx:44-223` | Playback rate on hidden `