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 @@ -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\<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. |
Loading