From 5af024f7e7129f118210de2c39fcd9a6668689f2 Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Tue, 30 Jun 2026 17:40:02 -0400 Subject: [PATCH] =?UTF-8?q?docs:=20consolidate=20EC=20test=20checklist=20i?= =?UTF-8?q?nto=20LOTUS=5FTESTING.md=20(=C2=A7D2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fold the Element Call fork Phase-2 feature tests into the canonical testing guide as §D2 (denoise reconnect/device-switch/4 models, event-driven speaker/mute, focus-during-screenshare, in-call decorations, transparency, + the dormant #3/#7). Each item keeps a plain ✅/❌ outcome for non-dev testers, so the standalone ELEMENT_CALL_TEST_CHECKLIST.md is removed — all in one place. Co-Authored-By: Claude Opus 4.8 --- ELEMENT_CALL_TEST_CHECKLIST.md | 122 --------------------------------- LOTUS_TESTING.md | 72 +++++++++++++++++++ 2 files changed, 72 insertions(+), 122 deletions(-) delete mode 100644 ELEMENT_CALL_TEST_CHECKLIST.md diff --git a/ELEMENT_CALL_TEST_CHECKLIST.md b/ELEMENT_CALL_TEST_CHECKLIST.md deleted file mode 100644 index b473aa965..000000000 --- a/ELEMENT_CALL_TEST_CHECKLIST.md +++ /dev/null @@ -1,122 +0,0 @@ -# Voice/Video Call — Testing Checklist 🎧 - -Thanks for helping test! We just upgraded the voice/video call system. Please run -through the checks below and tell us what happened. - -**What you need:** - -- 2 people (you + a friend), each on their own device, in the same call. A few - checks need one of you to have a **camera** and to **share your screen**. -- About 15–20 minutes. - -**How to report:** for each item just say ✅ (worked) or ❌ (didn't), and for any -❌ tell us what you saw. If something looks broken, a screenshot helps a lot. - ---- - -## ⭐ Most important — please do these first - -### 1. Your microphone keeps working after a connection hiccup - -This is the biggest thing we changed, so test it carefully. - -1. Join a call with your friend and talk for a few seconds (make sure they hear you). -2. Now **turn off your WiFi / internet for about 10 seconds**, then turn it back on. - (The call will show a "Connection lost / reconnecting" message — that's expected.) -3. Once it reconnects, **start talking again.** - -- ✅ **Good if:** your friend can still hear you normally after it reconnects, without - you having to leave and rejoin the call. -- ❌ **Tell us if:** your friend can't hear you after reconnecting, or your voice - sounds broken/robotic/muffled, until you leave and rejoin. - -### 2. Microphone quality / noise removal sounds normal - -1. In a call, just talk normally for a bit. -2. If there's background noise (fan, typing, TV), notice whether it's reduced. - -- ✅ **Good if:** your voice is clear and there's no silence, echo, or robotic warble. -- ❌ **Tell us if:** there are dropouts, echo, a "underwater"/metallic sound, or your - mic is silent even though you're talking. - -### 3. Switching your microphone mid-call - -1. While in a call, open call **Settings** and change your microphone to a - different one (e.g. headset ↔ built-in), then back. -2. Talk after each switch. - -- ✅ **Good if:** your friend keeps hearing you after each switch. -- ❌ **Tell us if:** your audio cuts out or doesn't come back after switching. - -### 4. All the call buttons still work - -Go down the call control bar and tap each one, checking it actually does the thing: - -- [ ] **Mute / unmute mic** (icon changes AND your friend stops/starts hearing you) -- [ ] **Camera on / off** -- [ ] **Deafen / sound** toggle (you stop/start hearing others) -- [ ] **Share screen** start and stop (including the "Share your screen?" prompt) -- [ ] **Full screen** on and off -- [ ] **"More" (⋮) menu** → the **Reactions**, **Settings**, and **Grid/Spotlight** - options each open the right thing -- [ ] **Leave / End call** — leaves cleanly - -- ❌ **Tell us if:** any button does nothing when you tap it (tell us which one). - ---- - -## 👀 Please also check these - -### 5. The "who's talking" highlight points at the right person - -1. In a call, have your friend talk, then you talk. - -- ✅ **Good if:** the highlight / glow appears around the person who is actually - talking (and the right person, not someone else). -- ❌ **Tell us if:** the wrong person lights up, or nobody lights up when talking. - -### 6. Mute badges show on the right person - -1. Have your friend mute their mic. - -- ✅ **Good if:** any "muted" indicator shows next to the person who is muted. -- ❌ **Tell us if:** it shows on the wrong person or doesn't update. - -### 7. Focus a camera while someone is sharing their screen - -_(Needs: one person sharing screen, another with camera on.)_ - -1. Person A **shares their screen.** -2. Person B turns their **camera on.** -3. Use the **"Focus camera"** option (from a participant's menu) on Person B. - -- ✅ **Good if:** Person B's camera becomes the highlighted/spotlighted view - **alongside or over** the shared screen. -- ❌ **Tell us if:** nothing happens, or it throws you out of the screen share, or - you get an error. - -### 8. Avatar decorations show on call tiles - -_(Needs: someone in the call has an avatar decoration set in Settings → Profile.)_ - -1. Have a person with a **profile decoration** join with their **camera off** (so - their avatar/picture shows instead of video). - -- ✅ **Good if:** their decoration (the frame/ring/effect around their picture) - shows on their tile **inside the call**, like it does elsewhere in the app. -- ❌ **Tell us if:** the decoration is missing, cut off, or in the wrong place. - -### 9. The call screen looks right - -1. Just look at the overall call screen. - -- ✅ **Good if:** backgrounds, colors, and layout look normal — nothing is a weird - black box, see-through in a bad way, or overlapping. -- ❌ **Tell us if:** anything looks visually broken or out of place. - ---- - -## 🙏 Thank you! - -If a call ever sounds bad for **everyone** (not just you), let us know right away — -that's the one we most want to hear about quickly, and we can switch back fast. diff --git a/LOTUS_TESTING.md b/LOTUS_TESTING.md index 284d27cb9..35866a27a 100644 --- a/LOTUS_TESTING.md +++ b/LOTUS_TESTING.md @@ -207,6 +207,78 @@ If any control does nothing, that usually means an EC DOM selector changed — c --- +## D2. Element Call **fork** — Phase 2 feature sweep (👥 2 people) — `0.20.1-lotus.1` + +> The whole EC iframe is now our **self-built fork** (`@lotusguild/element-call-embedded@0.20.1-lotus.1`). +> Five features are **active** (the host sets their flags / sends their actions); two ship **dormant**. +> **Confirm you're on the fork first:** EC iframe console prints `Element Call embedded-v0.20.1-lotus.1` +> (the old build prints `embedded-v0.20.1`). If it says the old version, the web deploy hasn't landed — +> the fork features won't be present, so don't test D2 yet. +> For non-dev testers, each item below also states the plain "✅ good if / ❌ tell us if" outcome. + +### D2-1. Denoise **in-source** — survives reconnect (fixes A7) ⭐ highest risk (everyone's mic) + +Flag: cinny sets `lotusDenoiseSource=1` when ML denoise is selected (the old build-time getUserMedia +shim is **removed**). This is the single change with the widest blast radius — test deliberately. + +- [ ] **Audio flows, no silence** with ML denoise on (baseline, also §D line 204). +- [ ] **Reconnect (the A7 fix):** in a call with ML denoise on, kill network ~10 s (devtools → Offline) + so EC shows "Connection lost / Reconnect", then restore. **Mic still works AND still denoised** + afterward, **without** End+rejoin. _(This is the exact bug that was reintroduced then fixed; if it + regresses, mic dies on every reconnect.)_ +- [ ] **Mic device switch mid-call** (Settings → change microphone): audio keeps working (same + `restart()` path as reconnect). +- [ ] **Mute → unmute** a few times: audio returns each time. +- [ ] **Each model** if the picker offers them: `rnnoise` (default), `speex`, `dtln`, `deepfilternet` — + each loads + denoises, no silence. (All four are in-source now; DTLN runs at 16 kHz, others 48 kHz.) +- [ ] **No double-processing:** audio isn't over-suppressed/artifacted (would mean the old shim is still + injected alongside the in-source engine). +- **Rollback if bad for everyone:** revert the cinny deploy commit (restores the shim + `@element-hq` parity). + +### D2-2. Speaking + mute indicators from widget **events** (#2) + +Flag: `lotusCallState=1`. cinny now reads speaker/mute state from `io.lotus.call_state` events instead of +scraping EC's DOM (DOM fallback retained). Overlaps **G1**. + +- [ ] **Speaking glow** lights the **correct** person when they talk (you, then your friend). +- [ ] **PiP "All muted" / "You muted" badge** points at the right person and updates on mute/unmute. + +### D2-3. Focus camera **during a screenshare** (#4 / A5) + +Action: cinny sends `io.lotus.focus_participant` (the DOM `.click()` hack is gone). Overlaps **A5 / G2**. + +- [ ] Person A screenshares; Person B camera on; **MemberGlance → Focus camera** on B → B's camera is + spotlighted **alongside/over** the shared screen (not ignored). +- [ ] Camera-**off** target = graceful (no error, no kick out of the screenshare). + +### D2-4. In-call avatar decorations (#6) — **NEW, beyond A6** + +Action: cinny pushes `io.lotus.decorations`. **A6 only covered the lobby roster** and called in-call EC +tiles out of scope — that's now in scope. + +- [ ] A participant with a **Profile decoration** joins **camera off** → the decoration ring renders on + their **in-call video-tile avatar** (inside EC, not just the lobby), correctly sized/positioned. +- [ ] Decoration tracks the right person across grid/spotlight layout changes; disappears when they leave. + +### D2-5. Native transparent background (#5) + +Flag: `lotusTransparent=1` (native, replacing the injected `background:none !important`). + +- [ ] Call background looks right — host wallpaper/surface shows through; **no** black box, bad + see-through, or layout breakage (also covered loosely by §D2 "looks right"). + +### D2-6. Dormant features — confirm they do NOTHING (no regression) + +EC ships the capability but cinny has **no UI** to trigger them yet: + +- [ ] **Soundboard audio-inject (#3)** and **quality controls (#7)** — there should be no new UI and no + effect. (Nothing to test; noted so a tester doesn't go hunting.) + +> If any D2 item fails, grab the **EC iframe console** (right-click the call → inspect the iframe) — a +> widget-action/payload mismatch shows up there as a `io.lotus.*` rejection or a `MissingKey`/transport log. + +--- + # Backlog of previously-fixed-but-unverified items > Sections A–D above are **this session's** work. Everything below was fixed in earlier waves and is still flagged **⚠️ UNTESTED** in `LOTUS_BUGS.md` / `LOTUS_TODO.md`. They're grouped by what kind of environment you need (mobile, desktop, screen reader, etc.) so you can knock out a whole category at once. None of these are urgent the way A–D are; do them as you have the right device handy.