diff --git a/technical-documentation/testing/manual-e2e-checklist.md b/technical-documentation/testing/manual-e2e-checklist.md index 123974e28..c65cdaa74 100644 --- a/technical-documentation/testing/manual-e2e-checklist.md +++ b/technical-documentation/testing/manual-e2e-checklist.md @@ -955,3 +955,4 @@ These checks are the human slice: an agent cannot click Apple's picker (see abov | 2026-10-12 | installed `v2.1.0` candidate, CI-built DMG `Openscreen-macOS-Apple-Silicon-2.0.0.dmg` from build run 38252812147 (`openscreen-mac-arm64`, `release/v2.1.0` @ `9c55596e1`), Developer ID signed and notarized (`spctl`: accepted, Notarized Developer ID, M4LK7C6S84), installed over the previous `/Applications/Openscreen.app`; About reports `2.0.0 (dmg)` (the branch does not bump `package.json`), Electron 41.2.1, Chromium 146.0.7680.188, Node 24.14.1 | macOS 26.5 (25F71), Mac mini M1 (arm64), one 3840×2160 display at 2×, no camera (Scaleway MDM `allowCamera=false`), BlackHole 2ch as the only input | Partial, 6 defects | Real OS mouse and keyboard through computer-use, launched with `open --env OPENSCREEN_DIAGNOSTIC=1` (no content-protection flag needed on 26), then `OPENSCREEN_MAC_SOURCE_PICKER=legacy` for every take after the first; tones into BlackHole (440 Hz) and the speakers (1 kHz) gave the mic and system-audio signals; every number below is ffprobe/ffmpeg on the files. **Covered, post-2.0.0 first:** recordings folder (row last, native picker, take lands in the custom folder, row survives restart, *Reset to default* only while custom and takes return to `userData/recordings`, deleted folder recreated by the next take, ejected volume gives "Can't reach the recordings folder", 298 MB volume refused from the HUD and the voice-over with "Not enough disk space ... (only 298 MB free)", from Record mode no take and no file but the toast was not captured, Restart on a volume filled under 500 MB gives "The new recording could not start. The previous one was deleted." with no file left); mic double-click stays off; Play past the last clip holds clip 2's own last frame and stops at the total (#997); duplicate clip carries zooms, speed and annotation (#1011); Edit clip trim-bar playhead, in-point frame, scrub with *Apply* disabled, grip pushes the playhead; zoom trails and their in/out/pan/trim/junction tooltips, trails follow a dragged trim, a trim between two zooms breaks the pan, end of timeline is no junction; Names and terms ("OpenScreen" spelled, opening kept, not Title Case; one undo restores field and transcript), transcript Backspace cut and Cmd+Z (#1012), Cmd+Z inside an edited word; agent: filler words plus a quoted phrase as one trim with no sliver, *Screen turned left* then *3D Orbit*, stretch into a neighbour refused naming it; two conversations and the last reply survive a quit right after the reply, history is per project; MCP stdio (`help` lists `mcp`, `listSources`, `startRecording` on a window: 2944×1926 take in the custom folder, no Apple picker, 3 clicks 1.7 s apart grouped into one zoom; edit while closed, `exportVideo` 25.82 s = 33.82 − 8 s trim, `getFrames`, `restoreCheckpoint` back to the raw take, stale warning with `projectId`; edits refused on the project open in the editor and on a closed project without checkpoint); in-app server off by default, *Running* with port, token and snippets; GIF of 61 s at 20 fps Small in about 8 s; Glass Lens and 3D Glass Lens in preview and in a 720p export (refraction, shadow); *Mouse clicks* off by default, *Click volume* row, clicks in the export at the speed-mapped times (±20 ms). **Covered, rest of the file:** HUD launch, layout toggle, drag without drift or jump, language menu, tooltips on both bars idle and recording (a teleported pointer needs one small move, as a hand gives), gear lists inputs with a moving meter, "No camera found" and no *Camera quality* row, camera toggle refused with "Camera not found.", hide and tray refocus, tray menus idle and recording (only *Stop Recording*), quit and relaunch, single instance (`open -n` exits), *Update Settings* modes persisted in `update-settings.json` across restart; app menu items; About box; legacy selector; Record mode rows, Auto-zoom row only with Editable cursor, mic meter, hand-over to the HUD with the same settings, zooms placed after a take and none with Auto-zoom off; pause/resume, Restart, cancel without editor, stop from HUD and from the tray; gear does not open during a take; full-screen take fills 3840×2160 edge to edge (HiDPI), HUD absent, desktop icons absent while still on the desktop; mic and system audio each audible alone and together (−23.8 / −34.6 dB band levels); editor opens in Edit with the take and toast; New project, Import, *Add to timeline* toast, Media card name/duration/size, Export disabled with no asset; local transcription on Metal with French detected; Cmd+O, theme and language switches (UI and native menus follow, back to English); export dialog (formats, qualities with sizes, fps, no codec, GIF options and summary), MP4 progress, cancel with no partial and same options, retry, *Saved to*, *Show in folder*, GIF cancel keeps the existing destination, MP4 in QuickTime and GIF in Preview; imported audio pill named after the file at −18 dB with 1 s fades, a bed past the programme end is cut without pulling its fade-out forward; Save Diagnostics from the app menu writes a bundle; reopened project keeps clips, in/out, zooms, speeds and trims. **Defects:** (1) dragging a zoom into a neighbour of the same level passes into it instead of stopping flush (#1008): 23.0 s zoom dragged left landed at 20.055–21.984 s over 19.975–21.904 s, a 2 px nudge still overlaps by 40 ms; the pair draws as one pill and a level change on one half changed both, so #1017 could not be judged on exactly touching regions; medium. (2) MP4 export of the speech fixture (source −17.6 LUFS, +4.9 dBTP) measures −17.3 LUFS, sample peak −0.59 dBFS, true peak +0.5 dBTP against about −16 LUFS and at most −1 dBTP; medium. (3) agent title "Demo OpenScreen" with a switch to 9:16 in the same turn: box 95 %×9.33 % at size 64, only "Demo" visible in the preview and in the exported frame at 3.0 s; medium. (4) click sounds missing on a duplicated clip: clip 1 clicks at 6.04, 10.26, 14.44, 28.59, 36.91 s are in the export, the duplicate's click expected at 43.17 s is absent; low to medium. (5) HUD error toasts sit over the HUD's own controls, their × does not take the click (it reaches the window behind) and they stay while the pointer is over them; the mic toast at take start hid Pause, Restart and Cancel until the pointer left; medium. (6) a microphone picked as "BlackHole 2ch (Virtual)" is not resolved by the SCK helper (`[native-sck] recording the default input; microphone was not resolved`), so every take toasts "The chosen microphone could not be identified"; low. **Observations, not filed:** transcription shows "Transcribing 0%" for the whole job, 66.2 s of French in 101.6 s and 112 s (0.6–0.7× real time with the fr CTC aligner) against 61× on a speech-free take; the legacy *Windows* tab listed one window while the Claude window was on screen; the disk-space refusal comes after the 3-2-1 countdown; "Loop off" writes a NETSCAPE loop count of 1. **Skipped:** Apple's picker slice and the permissions window's first-run rows (operator asked for an unattended legacy run; Screen Recording already granted and not reset; one early take went through the picker and is not judged); every camera, webcam-quality, Full Camera and camera-background check (MDM blocks cameras); Windows, Windows on ARM, Linux and macOS 13/14 sections (other OS or version); Intel ONNX check (arm64 only); second display at another scale (one display); GIF speed against v2.0.0 (no v2.0.0 left installed to compare); in-app MCP edits and port change (no HTTP MCP client here without downloading one) and `setPointerTrack`; Escape checks and Ctrl/Shift-scroll (unreachable from computer-use on this Mac); Spaces switch (no system key combos granted); no-microphone refusal and unplugged mic (BlackHole cannot be removed here); not run for time: captions and caption placement, translation, annotation types (image, arrow, blur), v1.8.0 anchoring section, most audio-track checks, voice-over take, inspector facets, shortcuts dialog, editor window bounds, migrated-project persistence, chat rewind/compaction/rename/delete, export speed-region audio section. | | 2026-10-12 | installed `v2.1.0` candidate after `release/v2.1.0` was fast-forwarded to `main` @ `bd04d3a7` (adds #1147, #1151, #1155, #1158, #1160, #1166, #1131), CI-built DMG `Openscreen-macOS-Apple-Silicon-2.0.0.dmg` from build run 38309126813 (`openscreen-mac-arm64`), Developer ID signed and notarized (`spctl`: accepted, Notarized Developer ID, M4LK7C6S84); the SCK helper is dated 23:22 that day and carries the new Chromium suffixes (Virtual, Bluetooth, Built-in) | macOS 26.5 (25F71), Mac mini M1 (arm64), one 3840×2160 display at 2×, no camera (MDM), BlackHole 2ch as the only input | Pass, scoped to the merged fixes | **Targeted re-run of the six fixes from the pass above, real OS mouse and keyboard through computer-use**, launched with `open --env OPENSCREEN_DIAGNOSTIC=1 --env OPENSCREEN_MAC_SOURCE_PICKER=legacy`; numbers are ffprobe/ffmpeg on the files. **#1158 (HUD toasts):** "Camera not found." now shows centred above the horizontal bar, clear of every control, and its × dismisses it with a real click. **#1147 (microphone suffix):** "BlackHole 2ch (Virtual)" picked explicitly in the gear, mic on, HUD take: no "could not be identified" toast, no `microphone was not resolved` line in the main log, and a 440 Hz tone sent into BlackHole is in the take at −23.7 dB band level; only one input exists here, so picking an input that is not the default was not exercised. **#1151 (click sounds on a duplicated clip):** re-export (720p 30 fps) of the two-clip project: clip 1 clicks at 6.04, 10.26, 14.44, 28.59, 36.91 s unchanged, and the duplicate's click is now present at 43.16 s (expected 43.17 s). **#1166 (export loudness):** the speech fixture exported at 1080p 30 fps measures true peak −1.5 dBTP (was +0.5), sample peak −1.52 dBFS, integrated −17.2 LUFS (the clipped source cannot reach −16 without re-clipping, as the PR states), AAC at 264 kb/s. **#1160 (agent title fit):** the chat agent, asked to switch to 16:9, add "Bonjour OpenScreen", then switch to 9:16, refits both titles (56 px and 61 px, one line each); the exported 1080×1920 frames show "Demo OpenScreen" and "Bonjour OpenScreen" whole, where the earlier build showed only "Demo". Smoke: launch, HUD, record, stop and editor open, Cmd+O, export dialog. **Skipped:** #1155 (Windows WGC helper only, needs a 10 min loaded take on Windows); the rest of the file (covered by the row above on the earlier build). | | 2026-10-12 | `release/v2.1.0` @ `9c55596e1`, CI artifact `openscreen-windows-x64` from build run 38252812147 (NSIS sha512 matched `update-info-win-x64.json`), silent per-user install over 2.0.0, About reports `2.0.0` (`win32 x64 · nsis`, Electron 41.2.1, Chromium 146.0.7680.188, Node 24.14.1); `package.json` is still 2.0.0 on the branch, so only the run id tells this build apart | Windows 11 Home 26200 (x64), AMD Ryzen 7 5800X 8 cores, RTX 4070 Ti, 1920×1080 @ 100 %; Logitech StreamCam (sub-4K, MJPEG 1080p30 max), NVIDIA Broadcast camera (DirectShow-only) | **Fail — 2 should-fix, 1 medium, 6 minor; post-2.0.0 sections first, rest partial** | Real OS input through computer-use; grant `openscreen.exe` by executable, because `Openscreen` resolves to the Store 2.0.0 package (same trap as rc.3). **Defects. (1) Should-fix, MCP stdio:** an edit sent to a project open in the editor is accepted ("not open in the editor"), written to disk, then silently dropped by the editor's next autosave (trim added 17:07:25, gone at 17:07:44, `listProjects` reports `open:false`). **(2) Should-fix, #945:** 10:25 take, webcam + system audio, under a continuous CLI export loop: the screen track is in step with the wall clock until 5:00 (HUD-timer flips at 21.017 s and 301.017 s), then loses 217 ms by 10:00 (−0.033 @376, −0.083 @411, −0.150 @451, −0.200 @601); audio loses 43 ms, webcam none, so the screen ends 187 ms short of audio and 221 ms short of webcam. **(3) Medium:** any CLI/MCP process shares `%APPDATA%\openscreen` and takes Chromium's Local Storage lock (Restart Manager: holder `electron … mcp`), so the GUI runs on in-memory storage: the system-language prompt returns on every launch after "Keep current language", and the stdio server logs `Unable to move the cache: Accès refusé`. **Minor:** identical speed regions dragged into each other overlap (1.27 s) instead of stopping, then edit together; a project's first chat message shows a raw ISO UTC time; `stopRecording` gives 1 zoom for 2 clicks (first at 1.9 s) while its description promises one per click; MCP `listSources` lists 3 windows where the HUD lists 5 (Settings absent); the open-project search ignores Enter on a single match; HUD dropped near the top moves ~68 px down when a popover opens and stays there. Doc drift: camera shape is Square/Original, not Rectangle/Square. Open question: main export 2451 frames at 30 fps against 2444.9 predicted (97.579 s − 10.686 s trims − 5.397 s speed), +6 frames over 13 segment boundaries, per-segment rounding suspected, not proven. **Passed:** HUD launch, layout toggle, drag, language menu (Esc closes it), camera/mic toggles, mic double-click cancels, camera quality 1080p persists, hand-edited `720p` shows 4K, tray refocus and red recording icon with "Recording: Tout l'écran", single instance; record with no source opens the picker and starts; pause (62.5 s wall for 48.8 s file), restart (old take deleted), cancel, all-off stop → editor < 2 s, gear locked during a take, content protection ON keeps the HUD out of the file; screen High/no B-frames/bt709 tv, AAC 48 kHz, `videoEncoderRuntime: "hardware"`; webcam 1920×1080@30 = `webcamFormat`, 16 Mbit/s, last frame live; DirectShow camera resolved, file = negotiated 1080p30; Hide desktop icons (wallpaper in file, icons back after); recordings folder pick/persist/recreate/reset; zoom trails, hatched cut tooltip, pan chain and its break, flush drag and resize (#1008, different values), #1017 on touching regions, clip duplicate carries zoom/speed/annotation/Full Camera (#1011), Edit clip scrub (#997 last-frame hold too), Full Camera across an inner trim; names and terms fix the spelling and undo with the field, transcript Backspace + Ctrl+Z (#1012), word correction; chat: filler words (one trim), quoted phrase, screen turned left → 3D Orbit, 9:16 + fitted title, refused stretch naming the neighbour, one undo per turn, two conversations survive a quit, per-project history, project delete removes `chat.json`; stdio MCP: `help` lists `mcp`, `listSources`, window take → project in the editor's list, edit refused without checkpoint, `restoreCheckpoint` to the raw take, export, `getFrames` through trims and its stale warning, `setPointerTrack` draws the cursor and zooms on scripted clicks; Glass Lens 2D/3D in exports, click sound at 3.72 s for 3.727 s predicted after a 1.5× region, none in a trim, none with Show cursor off; GIF 13.4 s vs 127.4 s on v2.0.0 (9.5×, 8 cores, same 249 frames); export dialog v2, MP4/GIF cancel (no partial, destination hash unchanged), −15.9 LUFS / −1.6 dBFS, A/V within one frame; imported track −18 dB/1 s fades, ~10 dB duck under speech, continuous across the junction; captions + French translation; About/update dialog; theme and language; Media/Edit/Record; navigator pan/zoom; editor bounds and invalid-file fallback; persistence across restarts. **Skipped, with reason:** microphone checks (StreamCam mic delivers no samples even to ffmpeg, headset mic is digital silence), voice-over; in-app HTTP MCP client checks (copying the token was refused by the agent's classifier); tray right-click (shell granted at tier click) so Save Diagnostics, Update Settings and `helperOutput` (delivered=, no-visible-frame) are unread, and Alt never showed the Help menu (keyboard negative, unconfirmed by hand); Ctrl/Shift+wheel (wheel events never reach the editor through this driver); DPI scaling (changing OS settings is outside what the agent may do); 4K, no-30-fps, 640×480 and C920 cameras, covered lens, 96 kHz device, second display, removable drive and low-disk volume, notes window; Windows 10, ARM, macOS, Linux. | +| 2026-10-13 | `release/v2.1.0` @ `912b44800` (fast-forwarded to `main`: #1144, #1145, #1150, #1152, #1153, #1154, #1156, #1161, #1163, #1165), CI artifact `openscreen-windows-x64` from build run 38370716184 (NSIS sha512 matched `update-info-win-x64.json`; the run's macOS x64 job failed once on a notarization-staple network error, `NSURLErrorDomain -1005`, and passed on re-run), silent per-user install, About still `2.0.0` (intermediate build) | Windows 11 Home 26200 (x64), Ryzen 7 5800X, RTX 4070 Ti, 1920×1080 @ 100 %; Logitech StreamCam | **Pass — scoped re-run of the fixes from the 2026-10-12 row, 1 new minor** | Real OS input through computer-use, measurements on the files. **#945 / #1165:** 10:57 full-screen take, StreamCam 1080p30 + system audio, while 44 CLI exports ran back to back: screen 657.535 s, audio 657.536 s, webcam 657.537 s (2026-10-12: screen −187 ms and −221 ms); HUD-timer flips filmed at 21, 301, 451, 601 and 651 s all sit at +0.033 to +0.050 s, so the screen holds the wall clock to one frame over the whole take (2026-10-12: −217 ms after 5:00); TTS markers drift 0 ms over 567 s. **#1163:** CLI export of the two-clip project at 60 fps gave 4886 frames against 4886.8 predicted from the clips' real video length (48.765 s each); the progress total said 4890, the residual the PR documents. **#1154:** with the project open in the editor, stdio `listProjects` reports it `open: true`, `createCheckpoint` + `addTrim` is refused ("open in the OpenScreen editor …") and the file is untouched; `.open-in-editor.json` carries the GUI's pid. **#1145:** an installed `Openscreen.exe mcp` locks its own `cli-sessions\-\Local Storage`, never the GUI profile, with no cache error, and dead runs' folders are swept on the next run. The GUI-side symptom (language prompt on every launch) could not be re-tested: ten older dev `electron … mcp` servers from another worktree, built before the fix, still hold `%APPDATA%\openscreen\Local Storage\leveldb\LOCK`. **#1150/#1153:** `listSources`, `startRecording`'s not-found error and `stopRecording` now say what is not listed and how clicks share zooms; the not-found error still carries a JavaScript stack trace. **#1152:** a project's first chat message shows `11:16:44`, like the reply. **#1156:** Enter in the Open project search opens the highlighted single match. **#1161:** HUD dropped at y≈200, the language menu and Device settings each push the bar down while open and it returns to y≈200 once they close. **#1144:** two identical 1.5× regions, the second dragged into the first, stop flush at 25.173 s with the length kept (4.983 s). **New, minor:** adding a region with its key while the playhead is inside an existing region of the same kind creates an overlapping one, whatever the values (2× 20.190–25.173 then 1.5× 23.253–28.236), the creation counterpart of #1133. Not re-run: microphone (no working input on this machine), everything outside the fixed points. |