diff --git a/LOTUS_TODO.md b/LOTUS_TODO.md index 681241a78..34db97075 100644 --- a/LOTUS_TODO.md +++ b/LOTUS_TODO.md @@ -73,34 +73,50 @@ DM last-message preview, Media gallery, Knock-to-join full UX | ~~JetBrains Mono not bundled~~ | **Already loaded via Google Fonts CDN** in `index.html:33-35`. Other fonts: use `@fontsource` npm packages | | ~~Animated backgrounds: add to backgroundImage~~ | **backgroundImage can't have @keyframes** — use CSS `::before` pseudo-element on `` component with `position:absolute, inset:0, z-index:-1` | -#### Confirmed facts +#### Confirmed facts (all audits complete as of June 2026) | Finding | Impact | |---|---| -| `folds AvatarImage` does NOT accept children | Add frame/overlay inside `UserAvatar.tsx` component itself (see correction above) | -| No in-app toast system exists | Toast redesign (#80): build `ToastProvider` + Jotai atom queue; insert after `OverlayContainerProvider` at `App.tsx:65`; use `portalContainer` div from `index.html:101` | -| `useUnverifiedDeviceCount()` hook EXISTS | Task #65 is trivial: `src/app/hooks/useDeviceVerificationStatus.ts:65-106` — call it in `RoomInput.tsx` | +| `folds AvatarImage` does NOT accept children | Add frame/overlay inside `UserAvatar.tsx` itself — optional `frameName` prop | +| No in-app toast system exists | Task #80: build `ToastProvider` + Jotai queue; insert at `App.tsx:65` after `OverlayContainerProvider`; `portalContainer` in `index.html:101` | +| `useUnverifiedDeviceCount()` hook EXISTS | Task #65 is trivial: `src/app/hooks/useDeviceVerificationStatus.ts:65-106` | | Voice player: `AudioContent.tsx:44-223` | Task #8: `playbackRate` on hidden `