From 8997e7d7852792e149dac63158eff1b6ad9671c5 Mon Sep 17 00:00:00 2001 From: EtienneLescot Date: Wed, 14 Oct 2026 12:20:47 +0200 Subject: [PATCH] docs(testing): log the Windows MCP pass on main build run 38538195250 --- technical-documentation/testing/manual-e2e-checklist.md | 1 + 1 file changed, 1 insertion(+) diff --git a/technical-documentation/testing/manual-e2e-checklist.md b/technical-documentation/testing/manual-e2e-checklist.md index 524bdf526..7fe9848da 100644 --- a/technical-documentation/testing/manual-e2e-checklist.md +++ b/technical-documentation/testing/manual-e2e-checklist.md @@ -958,3 +958,4 @@ These checks are the human slice: an agent cannot click Apple's picker (see abov | 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. | +| 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 --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. |