[QA] Shipped-but-unverified index: SW notification click, KaTeX, encrypted search cache, session blob migration, scheduled-cancel, emoji lazy-load, SW precache, forward-to-many, HSTS/Permissions-Policy, Linux desktop parity, EC deafen via widget action #194

Open
opened 2026-09-17 23:24:12 -04:00 by jared · 1 comment
Owner

Migrated from LOTUS_TESTING.md → Outstanding verification backlog (index ported from the retired LOTUS_BUGS.md) on 2026-09-17.

Items whose test steps live only in this table (the lettered-section items are their own [QA] issues). Tick each once verified live; on FAIL open a bug and link it here.

  • N105 — Notification clicks work after tab close (SW notificationclick + showNotification) — test: get a msg notif, close the tab, click it → app focuses/opens + routes to the room (sw.ts, utils/dom.ts, ClientNonUIFeatures.tsx)
  • P3-8 — Thread Panel (side drawer, chips, threaded receipts, thread composer) — test: 6-step checklist in LOTUS_TODO §P3-8 (features/room/thread/*, RoomTimeline/RoomInput)
  • P4-4 — KaTeX math ($…$, $$…$$, data-mx-maths; lazy chunk) — test: send $x^2$, $$\int f$$, $5 and $10 (stays text), math inside code block (stays text) (utils/mathParse.ts, components/math/)
  • P4-8 — Encrypted-search cache (opt-in toggle, clear button, logout wipe) — test: enable in search panel → search → reload → coverage persists; logout wipes (utils/searchCache.ts, message-search`)
  • N97a — Session blob migration + cross-tab logout sync — test: login on old build → new build migrates; logout in tab A → tab B drops to auth (state/sessions.ts, useSessionSync)
  • P4-1 — Slack-style thread notifications (participating default, All/Mentions/Mute, badge math) — test: 6-step checklist in LOTUS_TODO §P4-1 (utils/threadNotifications.ts, ClientNonUIFeatures, roomToUnread)
  • AW-1 — Scheduled-message cancel no longer ghost-sends (error row on failure) — test: schedule → cancel with network cut → item stays + error; retry works (ScheduledMessagesTray.tsx)
  • AW-2 — Emoji lazy-load (search/autocomplete/recents fill in; board opens fast) — test: first emoji-board open of a session: grid+search populate; reactions still label (plugins/emoji.ts + consumers`)
  • AW-3 — SW precache (repeat-visit near-instant; deploys still picked up immediately) — test: load app twice (2nd = cached assets); deploy → reload picks new version (sw.ts, vite.config.js)
  • P6-1 — Desktop Linux parity (no-sleep in calls, launcher badge), autostart toggle, tray Do-Not-Disturb — test: Linux desktop: no display sleep during a call; tray DND silences notifications; launch-on-login persists; Unity badge (Ubuntu); DND toggle polarity (native/power.rs, lib.rs, useTauriDnd, General.tsx)
  • P6-2 — EC deafen/screenshare-audio-mute via io.lotus.set_deafen (retires the <audio>.muted iframe hack) — test: AFTER publish+pin-bump: deafen silences remote audio + survives a reconnect / new screenshare / late joiner (the cases the DOM hack failed); screenshare-audio-mute toggles independently (fork lotusDeafen.ts, cinny CallControl.ts`)
  • P6-3 — Forward-to-multiple-rooms (multi-select + partial-failure summary) + live bookmark previews (edits/redactions, snapshot fallback) — test: forward one msg to 3 rooms (incl. 1 you cannot post to = partial summary); bookmark then edit shows edited; redact shows deleted; leave room shows snapshot (ForwardMessageDialog.tsx+forwardContent.ts, BookmarksPanel.tsx)
  • P6-4 — HSTS + Permissions-Policy on prod nginx (+ contrib examples) — test: after nginx -s reload: curl -sI https://chat.lotusguild.org shows HSTS + Permissions-Policy; a call (cam/mic/screenshare) + location share still work (matrix/cinny/nginx.conf, contrib/nginx, contrib/caddy)
_Migrated from `LOTUS_TESTING.md` → Outstanding verification backlog (index ported from the retired `LOTUS_BUGS.md`) on 2026-09-17._ Items whose test steps live only in this table (the lettered-section items are their own [QA] issues). Tick each once verified live; on FAIL open a bug and link it here. - [ ] **N105** — Notification clicks work after tab close (SW `notificationclick` + `showNotification`) — _test:_ get a msg notif, close the tab, click it → app focuses/opens + routes to the room (`sw.ts`, `utils/dom.ts`, `ClientNonUIFeatures.tsx`) - [ ] **P3-8** — Thread Panel (side drawer, chips, threaded receipts, thread composer) — _test:_ 6-step checklist in LOTUS_TODO §P3-8 (`features/room/thread/*`, `RoomTimeline/RoomInput`) - [ ] **P4-4** — KaTeX math (`$…$`, `$$…$$`, data-mx-maths; lazy chunk) — _test:_ send `$x^2$`, `$$\int f$$`, `$5 and $10` (stays text), math inside code block (stays text) (`utils/mathParse.ts`, `components/math/`) - [ ] **P4-8** — Encrypted-search cache (opt-in toggle, clear button, logout wipe) — _test:_ enable in search panel → search → reload → coverage persists; logout wipes (`utils/searchCache.ts`, message-search`) - [ ] **N97a** — Session blob migration + cross-tab logout sync — _test:_ login on old build → new build migrates; logout in tab A → tab B drops to auth (`state/sessions.ts`, `useSessionSync`) - [ ] **P4-1** — Slack-style thread notifications (participating default, All/Mentions/Mute, badge math) — _test:_ 6-step checklist in LOTUS_TODO §P4-1 (`utils/threadNotifications.ts`, `ClientNonUIFeatures`, `roomToUnread`) - [ ] **AW-1** — Scheduled-message cancel no longer ghost-sends (error row on failure) — _test:_ schedule → cancel with network cut → item stays + error; retry works (`ScheduledMessagesTray.tsx`) - [ ] **AW-2** — Emoji lazy-load (search/autocomplete/recents fill in; board opens fast) — _test:_ first emoji-board open of a session: grid+search populate; reactions still label (`plugins/emoji.ts` + consumers`) - [ ] **AW-3** — SW precache (repeat-visit near-instant; deploys still picked up immediately) — _test:_ load app twice (2nd = cached assets); deploy → reload picks new version (`sw.ts`, `vite.config.js`) - [ ] **P6-1** — Desktop Linux parity (no-sleep in calls, launcher badge), autostart toggle, tray Do-Not-Disturb — _test:_ Linux desktop: no display sleep during a call; tray DND silences notifications; launch-on-login persists; Unity badge (Ubuntu); DND toggle polarity (`native/power.rs`, `lib.rs`, `useTauriDnd`, `General.tsx`) - [ ] **P6-2** — EC deafen/screenshare-audio-mute via `io.lotus.set_deafen` (retires the `<audio>.muted` iframe hack) — _test:_ AFTER publish+pin-bump: deafen silences remote audio + survives a reconnect / new screenshare / late joiner (the cases the DOM hack failed); screenshare-audio-mute toggles independently (`fork `lotusDeafen.ts`, cinny `CallControl.ts`) - [ ] **P6-3** — Forward-to-multiple-rooms (multi-select + partial-failure summary) + live bookmark previews (edits/redactions, snapshot fallback) — _test:_ forward one msg to 3 rooms (incl. 1 you cannot post to = partial summary); bookmark then edit shows edited; redact shows deleted; leave room shows snapshot (`ForwardMessageDialog.tsx`+`forwardContent.ts`, `BookmarksPanel.tsx`) - [ ] **P6-4** — HSTS + Permissions-Policy on prod nginx (+ contrib examples) — _test:_ after `nginx -s reload`: `curl -sI https://chat.lotusguild.org` shows HSTS + Permissions-Policy; a call (cam/mic/screenshare) + location share still work (`matrix/cinny/nginx.conf`, `contrib/nginx`, `contrib/caddy`)
jared added this to the Manual QA backlog milestone 2026-09-17 23:24:12 -04:00
jared added the qa label 2026-09-17 23:24:12 -04:00
Author
Owner

Rows verified on the local dev homeserver with Playwright:

  • P6-3 forward-to-multiple — bug found + fixed (b3862186). Forwarding to Busy Room + Poll Room + a room alice cannot post to reported "Failed to forward. Try again." for all three, and only the comment landed in the first room. Cause: all targets were sent concurrently through matrix-js-sdk's message queue; the 403 in the read-only room made the scheduler clearQueue() and reject every send still waiting. Rooms are now sent one at a time → "Forwarded to 2/3. Failed: Read Only Room." and both good rooms get comment + forwarded message. (Screenshot below is the pre-fix state.)
  • P6-3 live bookmark previews: saved message shows the original; after the sender edits it the Saved Messages panel shows "(edited)" text live; after redaction it shows the deleted marker ✓
  • P4-4 KaTeX, P4-8 encrypted search cache, N97a session blob + cross-tab logout, AW-1 scheduled cancel, AW-2 emoji lazy-load: verified under #184.
  • N105 SW notification click after tab close, AW-3 SW precache, P6-4 HSTS headers: need prod / a real OS notification click — not testable headless. P6-1 Linux desktop, P6-2 EC deafen: desktop / calls.

forward

Rows verified on the local dev homeserver with Playwright: - **P6-3 forward-to-multiple — bug found + fixed (`b3862186`).** Forwarding to Busy Room + Poll Room + a room alice cannot post to reported **"Failed to forward. Try again."** for *all three*, and only the comment landed in the first room. Cause: all targets were sent concurrently through matrix-js-sdk's message queue; the 403 in the read-only room made the scheduler `clearQueue()` and reject every send still waiting. Rooms are now sent one at a time → "Forwarded to 2/3. Failed: Read Only Room." and both good rooms get comment + forwarded message. (Screenshot below is the pre-fix state.) - **P6-3 live bookmark previews:** saved message shows the original; after the sender edits it the Saved Messages panel shows "(edited)" text live; after redaction it shows the deleted marker ✓ - P4-4 KaTeX, P4-8 encrypted search cache, N97a session blob + cross-tab logout, AW-1 scheduled cancel, AW-2 emoji lazy-load: verified under #184. - N105 SW notification click after tab close, AW-3 SW precache, P6-4 HSTS headers: need prod / a real OS notification click — not testable headless. P6-1 Linux desktop, P6-2 EC deafen: desktop / calls. ![forward](https://code.lotusguild.org/attachments/616432cc-0ef5-49ac-a589-86c35398e213)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#194