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.