diff --git a/technical-documentation/testing/manual-e2e-checklist.md b/technical-documentation/testing/manual-e2e-checklist.md index 10e09ab9e..ae932e63d 100644 --- a/technical-documentation/testing/manual-e2e-checklist.md +++ b/technical-documentation/testing/manual-e2e-checklist.md @@ -841,3 +841,5 @@ On macOS 15.2+ it opens at launch, until it has been closed once, while one of i | 2026-09-26 | worktree `fix-3d-cameras-left-right-02603d`, `claude/fix-3d-cameras-left-right-02603d` on `cbf85dc7` + this change; `compositor_view.node` rebuilt from this tree by `npm run build:native:compositor`, the rest of `bin/win32-x64` copied from the installed `v1.13.0-rc.6` (ffmpeg DLLs hash-identical to the vendored SDK); renderer rebuilt with `npm run build-vite`. Reference: installed `v1.13.0-rc.6` (= v1.13.0) through its own CLI | Windows 11 26200, NVENC export | Partial — no defect | **3D cameras against v1.13.0, `openscreen export` on both builds**, same synthetic 14 s 1080p grid and cursor sidecar (three held positions), zoom depth 2, `hideCursor`, motion blur 0. During the hold (2.5, 3.5, 7.5, 11.5 s), `left` here and `iso` in v1.13.0 differ only in a ~50×65 px box around the cursor sprite (0.05–0.09 % of pixels > 24; the cursor size changed since); same for `follow-cursor`. `iso` here renders byte-identical to `left`. `right` is the mirror of `left`: screen edge 1–2 px apart, row by row. With motion blur 0.35 the orbit differs while the camera moves (mean abs diff 9, 9 % of pixels): the mode-8 trail added on 25/09, kept on purpose. Not covered: editor preview, GUI, macOS and Linux, zoom ramps (their pacing changed with #683). | | 2026-09-26 | worktree `openscreen-screen-mask-zoom-e21ce9`, `claude/openscreen-screen-mask-zoom-e21ce9` on `1d67754c` (`integration/demo-never-ugly`) + the frame-container change; `compositor_view.node` rebuilt from this tree by `npm run build:native:compositor`, baseline addon and renderer built from `1d67754c` in a scratch worktree; ffmpeg DLLs hash-identical to the vendored SDK; renderer rebuilt with `vite build` | Windows 11 26200, h264 export | Partial — no defect | **Block layouts under a window or device frame: the frame is the fixed container, the footage zooms and tilts inside it, and the block lays the frame out beside the camera. Through the app's real export (`electron . export -o `).** Source: synthetic 1920×1080 `testsrc2` screen and 1280×720 `mandelbrot` webcam, 8 s. Legacy projects, default padding, a depth-4 zoom at focus (0.3, 0.6) on [1.5 s, 3.5 s] and a depth-3 `iso` zoom on [5.5 s, 7.8 s], frames at 0.2, 2.8 and 7.0 s. `dual-frame` (16:9) and `vertical-stack` (9:16) under window, laptop, phone and monitor. Baseline: the whole frame zooms and tilts over the camera, and at rest the laptop's deck and the monitor's stand run under it. New: the frame stays at rest, lined up with the camera on its body, deck and stand clear of it; the flat zoom and the `iso` tilt stay inside the aperture, over the device's black glass or the window chrome's fill, with square top corners under the title bar. `picture-in-picture` with and without a laptop, `no-webcam` with a laptop, and both block layouts without a frame: every decoded frame identical to the baseline (framemd5, 480 video frames plus audio). **Not covered:** the GUI editor preview (same `plan_frame` and `computeCompositeLayout`, not driven), `follow-cursor` inside a frame (unit-tested only), the Auto format with a frame in a block layout (its resting shape ignores the frame, so the camera is not exactly square there), macOS and Linux rendering (WGSL validated with naga, Metal not compiled). | | 2026-09-27 | worktree `camera-size-zoom-balance-7e14d7`, `claude/camera-size-zoom-balance-7e14d7` on `7aa00935` (`integration/demo-never-ugly`) + the camera size change; `compositor_view.node` built from this tree (`cargo build -p compositor-view-napi --release`), baseline addon built the same way with the old `1/zoom` curve; renderer built with `vite build` for each side, the baseline with the old 10–35 bounds; rest of `bin/win32-x64` copied from a 26/09 build, ffmpeg DLLs hash-identical to the vendored SDK | Windows 11 26200, NVENC export | Partial — no defect | **Camera size range and shrink on zoom, through the app's real export (`electron . export -o `).** Source: a real 1920×1080 recording with its 640×480 webcam; legacy 16:9 projects, picture-in-picture bottom right, shrink on zoom on, a depth-3 (1.8×) zoom on [4 s, 10 s]; frames at 2.5 s and 7 s, camera boxes measured by difference with a camera-less export. During the zoom: default 25 %, 150×113 → **210×158** px; minimum 10 → 15 %, 60×45 → **126×95**; maximum 35 → 50 %, 210×158 → **420×315**, each equal to the computed rect. At rest: 378 and 540 px wide at 35 and 50 %. **Not covered:** the GUI editor preview and the slider (unit-tested: `min` 15, `max` 50), the square camera, macOS and Linux rendering (same `plan_frame`, not compiled here). | +| 2026-09-30 | installed `v2.0.0-rc.1` (CI artifact, sha512 matched `latest.yml`), installed over 1.10.0 | Windows 11 26200, 1920×1080 @ 125 %, AMD Radeon iGPU | Partial — 2 defects | Launch/HUD, source selector (window and full screen), record with pause/resume, stop→editor ~0.65 s, transport, seek, zoom/speed/trim/full-camera regions with undo/redo, autosave, imported audio track (mixed at the right place and gain), voiceover take, Rec mode, MP4 export (duration = source video stream − trim − speed gain, exact), GIF export (ffmpeg and Pillow decode byte-identical). **Defects:** HUD walks up on a vertical→horizontal flip (#951, fixed in rc.5 by #953); transcript word times VAD-compressed, ~−14 s (fixed for rc.3, #948). GIF export ~3 frames/s vs MP4 ~84 fps (#952). **Not defects, re-triaged:** the Whisper Vulkan boot crash came from a helper staged from an unrelated branch (409cf4d7); "HUD not topmost" is computer-use's own doing (a `screenshot` clears `WS_EX_TOPMOST` on the HUD); the 98 % progress stop was the Windows audio tail (#942). Not covered: installer UI (ran `/S`), updater, tray, cancel/restart, notes, reopen from library, AI chat, macOS/Linux. | +| 2026-10-01 | installed `v2.0.0-rc.6` (CI artifact, sha512 matched `latest.yml`), installed over rc.1 | Windows 11 26200, 1920×1080 @ 125 %, AMD Radeon iGPU | Partial — 1 defect (transcript) | Targeted at the Windows changes since rc.1. **#951:** two vertical↔horizontal round trips with real clicks, state read after each, HUD back at the same bounds (`302,149`). **Recording** (full screen + mic + system audio + webcam, instant pause/resume mid-take): screen and webcam H.264 **High**, BT.709 primaries/transfer/matrix, TV range; audio runs 28 ms past video (rc.1: 0.87 s); stop→editor ~1 s. Screen at 57.2 fps average — 181 missed 60 Hz ticks over 52 s, timestamps stay on the clock (video 52.17 s vs audio 52.20 s) — known, #945. **STT:** helper boots on Vulkan, VAD on CPU, no crash; on a ground-truth clip (12.12 s silence then speech), first word at 12.10 s and every sentence boundary within 0.12 s; the "en" CTC aligner downloads in the background and only applies from the next transcription. **Defect:** the last word before one pause ("happened.") lands after it as a 20 ms word, its audio given to the previous word; without the aligner the display order also inverts ("nothing The happened."). Reported to #948. **Export:** 3-clip MP4 720p30, progress reaches 100 % (4200/4203), 4200 frames, video 139.97 s / audio 140.00 s, each clip's speech at the expected offset, decodes clean. **Mixer (#911, instant resume):** a second take with system audio only (mic off) while a 26 s TTS WAV played at 76 % volume (output peak meter 0.985 during the take). No punched hole anywhere in the voice: an alignment-free scan for 2–12 ms dips below 5 % between loud neighbours found none, and the same scan finds 10 ms holes injected into the take. Instant pause/resume (0.32 s button to button) skips 0.330 s of the source, so no voice before the pause is lost (the bug was 80–90 ms). Take is +3 dB over the source, peak −0.1 dBFS, 0 full-scale samples. The first take of this pass had the speakers muted at 0 %, which silences WASAPI loopback, so its audio was not usable. **Not covered:** preview limiter; MCP server; keep-awake; tray; GIF; macOS/Linux. |