Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions technical-documentation/testing/manual-e2e-checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -959,3 +959,4 @@ These checks are the human slice: an agent cannot click Apple's picker (see abov
| 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\<pid>-<id>\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. |
| 2026-10-14 | `main` @ `b668b2c8d` (MCP unification #1174: #1175, #1176, #1179; editor parity #1180: #1181 to #1186), CI artifact `openscreen-windows-x64` from build run 38538195250 (NSIS sha512 matched `update-info-win-x64.json`), 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 | **Partial — MCP server section only, 2 defects** | Real OS input through computer-use; MCP calls from an SDK client (`@modelcontextprotocol/sdk`) to the installed `Openscreen.exe mcp`, with the app running unless stated. **Tools:** `listTools` lists all 51 tools (record, export, frames, settings, captions, transcription, clips, projects, media). **Record:** `startRecording` on a Notepad window with `camera: "StreamCam"` and system audio, then real clicks and `stopRecording`, gives an 890×596 60 fps take with a webcam track, a cursor sidecar and 1 zoom for 3 close clicks. `cursor: "system"` gives no zoom and the session says `system`. A take dies with its stdio server: a client that disconnects after `startRecording` leaves an 83-byte MP4 and an empty webcam file. **Closed project, app running:** `restoreCheckpoint` with the checkpoint from another client's `stopRecording` works, because it lives in the app. **Media, transcription, captions:** `importMedia` of a spoken 17.2 s MP4, then `insertClip`. `transcribe` finds 40 English words in about 15 s, and `getCaptionTranslationUnits fr` returns 6 units. `putCaptionTranslation` writes all 6, and `setCaptionSettings {enabled, style: bold, language: fr}` shows them. **Look:** `setEditorSettings` applies a laptop frame, a wallpaper, 16:9 and a camera blur cut-out, and turns format fill on as the editor does. The `inactive` reasons are read back. Also tested: `addAnnotation` for a 72 px text and a mosaic blur. **Export:** `exportVideo` at `fps: 30` gives 1920×1080 at 30 fps, 1472 frames for 49.07 s. The frames at 5 and 35 s show the blur, the webcam cut-out top-right, the title and the French captions. `gifLoop` on an `.mp4` is refused. **Open in the editor:** `listProjects` reports `open: true`. `addZoom` and a wallpaper change land live, and each comes off with one Ctrl+Z. `restoreCheckpoint` resets the take live, and one Ctrl+Z brings every edit back. **App quit and relaunch:** one client session spans an app quit and a relaunch. With the app gone, an edit asks for a checkpoint and lands in the file after `createCheckpoint`. Once the app is relaunched and the project reopened, the same session's edit shows live, with no client restart. **Other tools:** `setProjectInfo`, `duplicateClip`, a clip `cropRegion`, `addAutoZooms` (0 new, telemetry reported per asset) and `importMedia` of an MP3 work. `removeMedia` refuses an asset still on the timeline and names its clips, and `createProject` from a video returns a checkpoint. **CLI:** `Openscreen.exe captions <project> --max-words 5` writes a 40-word transcript, turns captions on, and leaves no `auto-caption` annotation. **Defect 1 (P1): every GIF export over MCP fails.** It fails with the app running and without it: `exportVideo` to `.gif` → "--quality is only supported for MP4 exports", because `electron/mcp/media-tools.ts` always sends `quality: "good"` and the export runner refuses a quality on a GIF. **Defect 2 (P2): the recording bar loses always-on-top** after the source picker or the language prompt closes. Its window style goes from `0x280028` to `0x200000` and it sinks behind other windows; Ctrl+Shift+O brings it forward, still not topmost. **Minor:** `camera: true` picks the first listed camera, a virtual "VCam Camera" here, which wrote a 0-byte webcam file that the take dropped without a word. The language prompt shows on every launch, the #1145 symptom: ten older dev `mcp` servers from another worktree still hold the profile. The first two MCP takes had silent system audio (−91 dB) although the narration played; a take from the bar and three later MCP takes, with and without StreamCam, all had it (−3 dB), so this is not attributed. Not run: the in-app HTTP server, because copying its access token is refused to the agent; the microphone, with no working input on this machine; everything outside the MCP section. |
| 2026-10-14 | `main` @ `5bc559198` (adds #1192 GIF export over MCP, #1194 recording bar kept on top, #1197 GIF plays once), CI artifact `openscreen-windows-x64` from build run 38564622152 (NSIS sha512 matched `update-info-win-x64.json`), 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 — MCP server section re-run, both earlier defects fixed** | Same scope and method as the earlier row of this day (run 38538195250). **#1194:** the recording bar keeps `WS_EX_TOPMOST` (`0x280028`) after the language prompt and after the source picker, and stays above a Notepad window brought to the front. **#1192 / #1197:** `exportVideo` to a `.gif` with `gifSize: "small"` gives 852×480 at 15 fps; with `gifLoop: false` the file carries no NETSCAPE block, so it plays once, and with looping on its count is 0. **Record:** `startRecording` on a Notepad window with `camera: "StreamCam"` and system audio gives a 40.6 s 1166×888 60 fps take with a webcam file, system audio at −3.6 dB and 1 zoom. **Transcript and captions:** `transcribe` finds 18 English words, and `putCaptionTranslation` writes 3 French units. **Look and annotations:** `setCaptionSettings` shows the French captions in the `bold` style. `setEditorSettings` applies a laptop frame, 16:9 and a camera blur cut-out, and `addAnnotation` adds a 72 px title and a mosaic blur. **MP4 export:** 1920×1080 at 30 fps, 1219 frames for 40.63 s; the 4 s frame shows the title, the French caption, the blur and the cut-out webcam. **Open project:** `listProjects` reports `open: true`. A zoom and a wallpaper change land live, and each comes off with one Ctrl+Z. **One client session across an app quit and relaunch:** with the app gone, an edit asks for a checkpoint and lands in the file after `createCheckpoint`. Back in the reopened editor, the next edit shows live. **Media, clips, checkpoints:** `importMedia` of an MP4 and an MP3, `insertClip`, `addAudio` with a fade, `duplicateClip`, a clip `cropRegion` and `setProjectInfo` work. `removeMedia` refuses an asset still on the timeline. `restoreCheckpoint` on the open project resets it, and one Ctrl+Z brings every edit back. **Without the app:** `createProject` from a video returns a checkpoint, and `Openscreen.exe captions` writes a 40-word transcript with captions on and no `auto-caption` annotation. Not run: the in-app HTTP server (copying its access token is refused to the agent), the microphone (no working input on this machine), everything outside the MCP section. |
Loading