docs: consolidate EC test checklist into LOTUS_TESTING.md (§D2)
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 <noreply@anthropic.com>
This commit is contained in:
@@ -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.
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user