base-final-2.log RUN e2e v0.23.0 run 01a1ccc6-0850-7cbf-82ff-800b0b43b29e · targets: web, ios ✓ target "web" command at http://127.0.0.1:42777/.well-known/t3/environment ready 5.00s stderr | |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store Switched to a new branch 'proof-normal' Preparing worktree (new branch 'proof-linked') × |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store 48.16s → locator did not become visible: getByText("Action failed").first() ❯ |web| scenarios/commit-context-objects.e2e.ts (1 test | 1 failed) 48.16s ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ FAIL |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store LOCATOR_NOT_FOUND: locator did not become visible: getByText("Action failed").first() ❯ scenarios/commit-context-objects.e2e.ts:28:5 26| await app.screenshot(`${name}-empty-message`); 27| await screen.getByRole("button", "Commit", { exact: true }).tap(); 28| await screen.getByText("Action failed", { exact: true }).first().… | ^ 29| await browser.evaluate(async () => { 30| await Promise.all(document.getAnimations().map((animation) => a… ❯ at http://127.0.0.1:42777/8504109a-0d34-41fe-bb03-419dd0429662/mcp%3A805c15fe-8690-448a-ab45-79ab91cb3692 ❯ on screen #n18084 button "Git action options" [expanded] ❯ on screen #n21020 menu "Git action options" [focused] ❯ on screen #n18052 listitem "Thread actions for linked object-store proof" ❯ on screen #n18053 button "Thread actions for linked object-store proof" ❯ on screen #n18061 text="Ask anything. @ files, $ skills, / commands" ❯ app 2 warnings logged ❯ trace .e2e/manual-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/trace.md ❯ video .e2e/manual-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/video/video.webm ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 0 passed (1) Tests 1 failed | 0 passed (1) Start at 22:41:33 Duration 53.79s (startup 5.00s) Traces .e2e/manual-base/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/manual-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/001-normal-empty-message.png .e2e/manual-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/002-normal-object-store.png .e2e/manual-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/003-linked-empty-message.png Markdown .e2e/manual-base/summary.md Failed × |web| scenarios/commit-context-objects.e2e.ts:28 > Failed commit-message preparation leaves no blobs in either object store LOCATOR_NOT_FOUND: locator did not become visible: getByText("Action failed").first() trace .e2e/manual-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/trace.md base-final-3.log RUN e2e v0.23.0 run 01a1ccc7-5cc3-72ba-9243-1ac110921a40 · targets: web, ios ✓ target "web" command at http://127.0.0.1:44993/.well-known/t3/environment ready 4.33s stderr | |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store Switched to a new branch 'proof-normal' Preparing worktree (new branch 'proof-linked') × |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store 24.00s → expected [0,0] to equal [1,1] ❯ |web| scenarios/commit-context-objects.e2e.ts (1 test | 1 failed) 24.00s ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ FAIL |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store ASSERTION_FAILED: expected [0,0] to equal [1,1] ❯ scenarios/commit-context-objects.e2e.ts:49:25 47| await browser.evaluate(() => { document.getElementById("object-pr… 48| results.push(after ?? -1); 49| } | ^ 50| await expect(results).toEqual([1, 1]); 51| }); ❯ at http://127.0.0.1:44993/55097be4-1a20-4b3f-95fc-82391b919043/mcp%3Ae58f274d-3220-4cde-8a59-1cf9b616e7e2 ❯ app 2 warnings logged ❯ trace .e2e/manual-base-final/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/trace.md ❯ video .e2e/manual-base-final/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/video/video.webm ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 0 passed (1) Tests 1 failed | 0 passed (1) Start at 22:43:00 Duration 28.98s (startup 4.33s) Traces .e2e/manual-base-final/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/manual-base-final/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/001-normal-empty-message.png .e2e/manual-base-final/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/002-normal-object-store.png .e2e/manual-base-final/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/003-linked-empty-message.png .e2e/manual-base-final/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/004-linked-object-store.png Markdown .e2e/manual-base-final/summary.md Failed × |web| scenarios/commit-context-objects.e2e.ts:49 > Failed commit-message preparation leaves no blobs in either object store ASSERTION_FAILED: expected [0,0] to equal [1,1] trace .e2e/manual-base-final/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/trace.md base-final.log e2e collects anonymous usage telemetry to improve the framework: the command, the versions, the OS, and summaries of runs and MCP sessions. Never test names, app data, or credentials. Opt out with e2e telemetry disable or E2E_TELEMETRY_DISABLED=1. What is sent: https://e2e.com/docs/telemetry ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Run Errors 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ ERROR configuration error INVALID_CONFIG (config) --output "" is outside the project root name a directory inside it Test Files no test files Tests no tests executed Errors 1 error Start at 22:41:18 Duration 2ms Report (not written) ffmpeg-after-final.log ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers built with gcc 13 (Ubuntu 13.2.0-23ubuntu3) configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared libavutil 58. 29.100 / 58. 29.100 libavcodec 60. 31.102 / 60. 31.102 libavformat 60. 16.100 / 60. 16.100 libavdevice 60. 3.100 / 60. 3.100 libavfilter 9. 12.100 / 9. 12.100 libswscale 7. 5.100 / 7. 5.100 libswresample 4. 12.100 / 4. 12.100 libpostproc 57. 3.100 / 57. 3.100 Input #0, matroska,webm, from '': Metadata: creation_time : 2026-11-11T22:45:42.271000Z ENCODER : Lavf61.1.100 Duration: 00:00:21.72, start: 0.000000, bitrate: 660 kb/s Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, progressive), 1280x800, SAR 1:1 DAR 8:5, 25 fps, 25 tbr, 1k tbn (default) Metadata: ENCODER : Lavc61.3.100 libvpx-vp9 DURATION : 00:00:21.720000000 Stream mapping: Stream #0:0 -> #0:0 (vp9 (native) -> png (native)) Press [q] to stop, [?] for help Output #0, image2, to '': Metadata: encoder : Lavf60.16.100 Stream #0:0(eng): Video: png, rgb24(pc, gbr/unknown/unknown, progressive), 1600x1600 [SAR 1:1 DAR 1:1], q=2-31, 200 kb/s, 0.03 fps, 0.03 tbn (default) Metadata: DURATION : 00:00:21.720000000 encoder : Lavc60.31.102 png frame= 0 fps=0.0 q=-0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x [image2 @ 0x5c8dff510780] The specified filename '' does not contain an image sequence pattern or a pattern is invalid. [image2 @ 0x5c8dff510780] Use a pattern such as %03d for an image sequence or use the -update option (with -frames:v 1 if needed) to write a single image. [out#0/image2 @ 0x5c8dff507380] video:183kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown frame= 1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A speed= 0x ffmpeg-base.log ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers built with gcc 13 (Ubuntu 13.2.0-23ubuntu3) configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared libavutil 58. 29.100 / 58. 29.100 libavcodec 60. 31.102 / 60. 31.102 libavformat 60. 16.100 / 60. 16.100 libavdevice 60. 3.100 / 60. 3.100 libavfilter 9. 12.100 / 9. 12.100 libswscale 7. 5.100 / 7. 5.100 libswresample 4. 12.100 / 4. 12.100 libpostproc 57. 3.100 / 57. 3.100 Input #0, matroska,webm, from 'scripts/.e2e/manual-base-final/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/video/video.webm': Metadata: creation_time : 2026-11-11T22:43:05.476000Z ENCODER : Lavf61.1.100 Duration: 00:00:24.92, start: 0.000000, bitrate: 569 kb/s Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, progressive), 1280x800, SAR 1:1 DAR 8:5, 25 fps, 25 tbr, 1k tbn (default) Metadata: ENCODER : Lavc61.3.100 libvpx-vp9 DURATION : 00:00:24.920000000 Stream mapping: Stream #0:0 -> #0:0 (vp9 (native) -> png (native)) Press [q] to stop, [?] for help Output #0, image2, to '': Metadata: encoder : Lavf60.16.100 Stream #0:0(eng): Video: png, rgb24(pc, gbr/unknown/unknown, progressive), 1600x1200 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 0.03 fps, 0.03 tbn (default) Metadata: DURATION : 00:00:24.920000000 encoder : Lavc60.31.102 png frame= 0 fps=0.0 q=-0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x [image2 @ 0x5a33de78d800] The specified filename '' does not contain an image sequence pattern or a pattern is invalid. [image2 @ 0x5a33de78d800] Use a pattern such as %03d for an image sequence or use the -update option (with -frames:v 1 if needed) to write a single image. [out#0/image2 @ 0x5a33de784400] video:113kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown frame= 1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A speed= 0x ffmpeg-before-final.log ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers built with gcc 13 (Ubuntu 13.2.0-23ubuntu3) configuration: --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --disable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libjack --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-pocketsphinx --enable-librsvg --enable-libjxl --enable-shared libavutil 58. 29.100 / 58. 29.100 libavcodec 60. 31.102 / 60. 31.102 libavformat 60. 16.100 / 60. 16.100 libavdevice 60. 3.100 / 60. 3.100 libavfilter 9. 12.100 / 9. 12.100 libswscale 7. 5.100 / 7. 5.100 libswresample 4. 12.100 / 4. 12.100 libpostproc 57. 3.100 / 57. 3.100 Input #0, matroska,webm, from '': Metadata: creation_time : 2026-11-11T22:45:07.257000Z ENCODER : Lavf61.1.100 Duration: 00:00:21.60, start: 0.000000, bitrate: 681 kb/s Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, progressive), 1280x800, SAR 1:1 DAR 8:5, 25 fps, 25 tbr, 1k tbn (default) Metadata: ENCODER : Lavc61.3.100 libvpx-vp9 DURATION : 00:00:21.600000000 Stream mapping: Stream #0:0 -> #0:0 (vp9 (native) -> png (native)) Press [q] to stop, [?] for help Output #0, image2, to '': Metadata: encoder : Lavf60.16.100 Stream #0:0(eng): Video: png, rgb24(pc, gbr/unknown/unknown, progressive), 1600x1600 [SAR 1:1 DAR 1:1], q=2-31, 200 kb/s, 0.03 fps, 0.03 tbn (default) Metadata: DURATION : 00:00:21.600000000 encoder : Lavc60.31.102 png frame= 0 fps=0.0 q=-0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x [image2 @ 0x5ddfad80e780] The specified filename '' does not contain an image sequence pattern or a pattern is invalid. [image2 @ 0x5ddfad80e780] Use a pattern such as %03d for an image sequence or use the -update option (with -frames:v 1 if needed) to write a single image. [out#0/image2 @ 0x5ddfad805380] video:197kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown frame= 1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A speed= 0x head-final.log RUN e2e v0.23.0 run 01a1ccc7-ee6e-7cf0-b235-534ae673503c · targets: web, ios ✓ target "web" command at http://127.0.0.1:37949/.well-known/t3/environment ready 5.65s stderr | |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store Switched to a new branch 'proof-normal' Preparing worktree (new branch 'proof-linked') ✓ |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store 26.00s ✓ |web| scenarios/commit-context-objects.e2e.ts (1 test) 26.00s Test Files 1 passed (1) Tests 1 passed (1) Start at 22:43:37 Duration 32.45s (startup 5.65s) Traces .e2e/manual-head-final/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/manual-head-final/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/001-normal-empty-message.png .e2e/manual-head-final/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/002-normal-object-store.png .e2e/manual-head-final/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/003-linked-empty-message.png .e2e/manual-head-final/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/004-linked-object-store.png Markdown .e2e/manual-head-final/summary.md prove-1.log $ node scripts/prove-scenario.ts scripts/scenarios/commit-context-objects.e2e.ts --base eceeab4d5c5bb02b58906978ff9e50bbd595ec19 --head 10d10c270cebdb12ddc9ab5a524485b98a9948f3 --upload-command 'ghdrop upload' ⊘ cache disabled Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 12m ago) Lockfile is up to date, resolution step is skipped Packages are hard linked from the content-addressable store to the virtual store. Content-addressable store is at: Virtual store is at: node_modules/.pnpm Progress: resolved 397, reused 397, downloaded 0, added 382 Progress: resolved 990, reused 990, downloaded 0, added 975 Progress: resolved 1467, reused 1467, downloaded 0, added 1452 Progress: resolved 1661, reused 1660, downloaded 0, added 1650 Packages: +1677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1677, reused 1673, downloaded 0, added 1677, done .../esbuild@0.28.2/node_modules/esbuild postinstall$ node install.js .../esbuild@0.28.2/node_modules/esbuild postinstall: Done .../node_modules/node-pty install$ node scripts/prebuild.js || node-gyp rebuild .../react-native-enriched-markdown postinstall$ node postinstall.mjs .../node_modules/node-pty install: > Checking prebuilds... .../node_modules/node-pty install: Done .../node_modules/node-pty postinstall$ node scripts/post-install.js .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] restoring vendored native assets ... .../node_modules/node-pty postinstall: > Cleaning release folder... .../node_modules/node-pty postinstall: > Moving conpty.dll... .../node_modules/node-pty postinstall: SKIPPED (not Windows) .../node_modules/node-pty postinstall: Done .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] fetching runtime v0.26.3 from https://github.com/tree-sitter/tree-sitter/archive/refs/tags/v0.26.3.tar.gz .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] runtime -> react-native-enriched-markdown/cpp/highlight/vendor/tree-sitter/src .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-json@0.24.8 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-html@0.23.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-css@0.23.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading @tree-sitter-grammars/tree-sitter-markdown@0.3.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading @tree-sitter-grammars/tree-sitter-yaml@0.7.1 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-go@0.23.4 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-java@0.23.5 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-javascript@0.23.1 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-python@0.23.6 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-c@0.23.5 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-rust@0.23.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-bash@0.23.3 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-typescript@0.23.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-cpp@0.23.4 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-swift@0.7.0 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-php@0.24.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-ruby@0.23.1 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-c-sharp@0.23.1 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] json -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/json .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] html -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/html .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] css -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/css .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] markdown -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/markdown .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] yaml -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/yaml .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] go -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/go .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] java -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/java .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] javascript -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/javascript .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] python -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/python .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] c -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/c .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] rust -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/rust .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] bash -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/bash .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] typescript -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/typescript .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] tsx -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/tsx .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] cpp -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/cpp .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] swift -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/swift .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] php -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/php .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] ruby -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/ruby .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] c-sharp -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/c-sharp .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] grammar sources ready. .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] done. .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] fetching xcframework from https://github.com/erweixin/RaTeX/releases/download/v0.1.15/RaTeX.xcframework.zip .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] fetching source from https://github.com/erweixin/RaTeX/archive/refs/tags/v0.1.15.tar.gz .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] RaTeX v0.1.15 -> .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] done. .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] postinstall complete. .../react-native-enriched-markdown postinstall: Done Agent skills awaiting approval: e2e. Run "pnpm approve" to review them. . prepare$ vp config --no-agent . prepare: Done devDependencies: + @coderabbitai/config 1.2.0 + @effect/tsgo 0.67.1 + @shadcn/lint 0.1.5 + @types/node 24.12.4 + knip 6.34.0 + vite-plus 1.4.0 Done in 13.1s using pnpm v12.14.0 RUN e2e v0.23.0 run 01a1ccbf-b85c-7a49-b67f-f8f65f0db144 · targets: web, ios ✓ target "web" command at http://127.0.0.1:32935/.well-known/t3/environment ready 5.68s ✓ target "ios" command at http://127.0.0.1:8190/status ready 12.84s stderr | |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store Switched to a new branch 'proof-normal' Preparing worktree (new branch 'proof-linked') × |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store 37.21s → tap did not become actionable in time: locator.click: Timeout 20763ms ex… ❯ |web| scenarios/commit-context-objects.e2e.ts (1 test | 1 failed) 37.21s ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ FAIL |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 20763ms exceeded.
  • …
  • intercepts pointer events: getByText("normal object-store proof").first() ❯ at http://127.0.0.1:32935/draft/65491a68-f862-4ae9-b876-fa2f86dd9c89 ❯ trace .e2e/prove/base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/trace.md ❯ video .e2e/prove/base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/video/video.webm ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 0 passed (1) Tests 1 failed | 0 passed (1) Start at 22:34:39 Duration 57.75s (startup 18.52s) Traces .e2e/prove/base/results/ (1 page, trace.md in each test's directory) Markdown .e2e/prove/base/summary.md Failed × |web| scenarios/commit-context-objects.e2e.ts:9 > Failed commit-message preparation leaves no blobs in either object store ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 20763ms exceeded.
  • …
  • intercepts pointer events: getByText("normal object-store proof").first() trace .e2e/prove/base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/trace.md Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 14m ago) Lockfile is up to date, resolution step is skipped Packages are hard linked from the content-addressable store to the virtual store. Content-addressable store is at: Virtual store is at: node_modules/.pnpm Progress: resolved 889, reused 889, downloaded 0, added 873 Progress: resolved 1413, reused 1413, downloaded 0, added 1399 Progress: resolved 1667, reused 1667, downloaded 0, added 1661 Packages: +1677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1677, reused 1673, downloaded 0, added 1677, done Agent skills awaiting approval: e2e. Run "pnpm approve" to review them. . prepare$ vp config --no-agent . prepare: Done devDependencies: + @coderabbitai/config 1.2.0 + @effect/tsgo 0.67.1 + @shadcn/lint 0.1.5 + @types/node 24.12.4 + knip 6.34.0 + vite-plus 1.4.0 Done in 4.7s using pnpm v12.14.0 RUN e2e v0.23.0 run 01a1ccc0-ccde-7e4c-be26-a2eb97f16fad · targets: web, ios ✓ target "web" command at http://127.0.0.1:37739/.well-known/t3/environment ready 7.52s ✓ target "ios" command at http://127.0.0.1:8190/status ready 7.97s stderr | |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store Switched to a new branch 'proof-normal' Preparing worktree (new branch 'proof-linked') ✓ |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store 17.88s ✓ |web| scenarios/commit-context-objects.e2e.ts (1 test) 17.88s Test Files 1 passed (1) Tests 1 passed (1) Start at 22:35:50 Duration 34.28s (startup 15.50s) Traces .e2e/prove/head/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/prove/head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/001-normal-empty-message.png .e2e/prove/head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/002-normal-object-store.png .e2e/prove/head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/003-linked-empty-message.png .e2e/prove/head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/004-linked-object-store.png Markdown .e2e/prove/head/summary.md { "scenario": "Failed commit-message preparation leaves no blobs in either object store", "failsOnBase": false, "passesOnHead": true, "baseSha": "eceeab4d5c5bb02b58906978ff9e50bbd595ec19", "headSha": "10d10c270cebdb12ddc9ab5a524485b98a9948f3", "verdict": "Not proven: the scenario could not run on base `eceeab4d5c` (ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 20763ms exceeded.
  • …
  • intercepts pointer events: getByText(\"normal object-store proof\").first()).", "steps": { "base": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByText(\"normal object-store proof\").first()", "status": "failed" } ], "head": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"normal object-store proof, Done, Object-store-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot normal-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot normal-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"linked object-store proof, Done, Linked-worktree-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot linked-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot linked-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" } ] }, "captures": [ "", "", "", "", "" ], "videos": [ "", "" ], "markdown": "### Scenario: Failed commit-message preparation leaves no blobs in either object store\n\n**Not proven: the scenario could not run on base `eceeab4d5c` (ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 20763ms exceeded.
  • …
  • intercepts pointer events: getByText(\"normal object-store proof\").first()).**\n\n| | Base `eceeab4d5c` | Head `10d10c270c` |\n| --- | --- | --- |\n| Result | ⚠️ could not run
    ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 20763ms exceeded.
  • …
  • intercepts pointer events: getByText(\"normal object-store proof\").first() | ✅ passed |\n| failure | ![Base eceeab4d5c: failure](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/816194e3b08f2595/001-failure.png) | |\n| normal empty message | | ![Head 10d10c270c: normal empty message](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5e46c42e7283f680/001-normal-empty-message.png) |\n| normal object store | | ![Head 10d10c270c: normal object store](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c6ba0dd101b5cf28/002-normal-object-store.png) |\n| linked empty message | | ![Head 10d10c270c: linked empty message](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ddca178f1e969cf4/003-linked-empty-message.png) |\n| linked object store | | ![Head 10d10c270c: linked object store](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8035caf943b90f2c/004-linked-object-store.png) |\n", "base": { "sha": "eceeab4d5c5bb02b58906978ff9e50bbd595ec19", "status": "error", "title": "Failed commit-message preparation leaves no blobs in either object store", "message": "ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 20763ms exceeded.
  • …
  • intercepts pointer events: getByText(\"normal object-store proof\").first()", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByText(\"normal object-store proof\").first()", "status": "failed" } ], "captures": [ "" ], "videos": [ "" ] }, "head": { "sha": "10d10c270cebdb12ddc9ab5a524485b98a9948f3", "status": "passed", "title": "Failed commit-message preparation leaves no blobs in either object store", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"normal object-store proof, Done, Object-store-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot normal-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot normal-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"linked object-store proof, Done, Linked-worktree-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot linked-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot linked-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" } ], "captures": [ "", "", "", "" ], "videos": [ "" ] } } prove-2.log $ node scripts/prove-scenario.ts scripts/scenarios/commit-context-objects.e2e.ts --base eceeab4d5c5bb02b58906978ff9e50bbd595ec19 --head 10d10c270cebdb12ddc9ab5a524485b98a9948f3 --upload-command 'ghdrop upload' ⊘ cache disabled Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 15m ago) Lockfile is up to date, resolution step is skipped Packages are hard linked from the content-addressable store to the virtual store. Content-addressable store is at: Virtual store is at: node_modules/.pnpm Progress: resolved 1043, reused 1043, downloaded 0, added 1028 Progress: resolved 1670, reused 1670, downloaded 0, added 1661 Packages: +1677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1677, reused 1673, downloaded 0, added 1677, done Agent skills awaiting approval: e2e. Run "pnpm approve" to review them. . prepare$ vp config --no-agent . prepare: Done devDependencies: + @coderabbitai/config 1.2.0 + @effect/tsgo 0.67.1 + @shadcn/lint 0.1.5 + @types/node 24.12.4 + knip 6.34.0 + vite-plus 1.4.0 Done in 4.1s using pnpm v12.14.0 RUN e2e v0.23.0 run 01a1ccc2-1811-7634-8582-56ece93eab85 · targets: web, ios ✓ target "web" command at http://127.0.0.1:41781/.well-known/t3/environment ready 5.90s ✓ target "ios" command at http://127.0.0.1:8190/status ready 6.20s stderr | |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store Switched to a new branch 'proof-normal' Preparing worktree (new branch 'proof-linked') × |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store 26.79s → expected [0,0] to equal [1,1] ❯ |web| scenarios/commit-context-objects.e2e.ts (1 test | 1 failed) 26.79s ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ FAIL |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store ASSERTION_FAILED: expected [0,0] to equal [1,1] ❯ scenarios/commit-context-objects.e2e.ts:50:25 48| results.push(after ?? -1); 49| } 50| await expect(results).toEqual([1, 1]); | ^ 51| }); 52| ❯ at http://127.0.0.1:41781/59d5443c-1040-4348-ad88-9f8f1dc2b65c/mcp%3A29568b55-7dd0-476a-96a2-aac1b64c0d42 ❯ app 2 warnings logged ❯ trace .e2e/prove/base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/trace.md ❯ video .e2e/prove/base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/video/video.webm ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 0 passed (1) Tests 1 failed | 0 passed (1) Start at 22:37:15 Duration 39.68s (startup 12.10s) Traces .e2e/prove/base/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/prove/base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/001-normal-empty-message.png .e2e/prove/base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/002-normal-object-store.png .e2e/prove/base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/003-linked-empty-message.png .e2e/prove/base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/004-linked-object-store.png Markdown .e2e/prove/base/summary.md Failed × |web| scenarios/commit-context-objects.e2e.ts:50 > Failed commit-message preparation leaves no blobs in either object store ASSERTION_FAILED: expected [0,0] to equal [1,1] trace .e2e/prove/base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/trace.md Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 16m ago) Lockfile is up to date, resolution step is skipped Packages are hard linked from the content-addressable store to the virtual store. Content-addressable store is at: Virtual store is at: node_modules/.pnpm Progress: resolved 884, reused 884, downloaded 0, added 869 Progress: resolved 1451, reused 1451, downloaded 0, added 1439 Progress: resolved 1671, reused 1671, downloaded 0, added 1670 Packages: +1677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1677, reused 1673, downloaded 0, added 1677, done Agent skills awaiting approval: e2e. Run "pnpm approve" to review them. . prepare$ vp config --no-agent . prepare: Done devDependencies: + @coderabbitai/config 1.2.0 + @effect/tsgo 0.67.1 + @shadcn/lint 0.1.5 + @types/node 24.12.4 + knip 6.34.0 + vite-plus 1.4.0 Done in 4.2s using pnpm v12.14.0 RUN e2e v0.23.0 run 01a1ccc2-e41a-73d0-a2e3-fe2123edf888 · targets: web, ios ✓ target "web" command at http://127.0.0.1:39501/.well-known/t3/environment ready 5.18s ✓ target "ios" command at http://127.0.0.1:8190/status ready 6.23s stderr | |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store Switched to a new branch 'proof-normal' Preparing worktree (new branch 'proof-linked') ✓ |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store 19.86s ✓ |web| scenarios/commit-context-objects.e2e.ts (1 test) 19.86s Test Files 1 passed (1) Tests 1 passed (1) Start at 22:38:07 Duration 32.10s (startup 11.41s) Traces .e2e/prove/head/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/prove/head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/001-normal-empty-message.png .e2e/prove/head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/002-normal-object-store.png .e2e/prove/head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/003-linked-empty-message.png .e2e/prove/head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/004-linked-object-store.png Markdown .e2e/prove/head/summary.md { "scenario": "Failed commit-message preparation leaves no blobs in either object store", "failsOnBase": true, "passesOnHead": true, "baseSha": "eceeab4d5c5bb02b58906978ff9e50bbd595ec19", "headSha": "10d10c270cebdb12ddc9ab5a524485b98a9948f3", "verdict": "Proven: the scenario fails on base `eceeab4d5c` and passes on head `10d10c270c`.", "steps": { "base": [ { "step": "app.open ", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"normal object-store proof, Done, Object-store-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot normal-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot normal-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.open ", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"linked object-store proof, Done, Linked-worktree-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot linked-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot linked-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" } ], "head": [ { "step": "app.open ", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"normal object-store proof, Done, Object-store-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot normal-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot normal-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.open ", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"linked object-store proof, Done, Linked-worktree-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot linked-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot linked-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" } ] }, "captures": [ "", "", "", "", "", "", "", "", "" ], "videos": [ "", "" ], "markdown": "### Scenario: Failed commit-message preparation leaves no blobs in either object store\n\n**Proven: the scenario fails on base `eceeab4d5c` and passes on head `10d10c270c`.**\n\n| | Base `eceeab4d5c` | Head `10d10c270c` |\n| --- | --- | --- |\n| Result | ❌ failed
    ASSERTION_FAILED: expected [0,0] to equal [1,1] | ✅ passed |\n| normal empty message | ![Base eceeab4d5c: normal empty message](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3982c887e9242d4f/001-normal-empty-message.png) | ![Head 10d10c270c: normal empty message](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aae77c3c0b108fdc/001-normal-empty-message.png) |\n| normal object store | ![Base eceeab4d5c: normal object store](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4b02de557470072c/002-normal-object-store.png) | ![Head 10d10c270c: normal object store](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/97a5b861228aba00/002-normal-object-store.png) |\n| linked empty message | ![Base eceeab4d5c: linked empty message](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c1c5a22c20a1ef38/003-linked-empty-message.png) | ![Head 10d10c270c: linked empty message](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eb39519d3f32cfef/003-linked-empty-message.png) |\n| linked object store | ![Base eceeab4d5c: linked object store](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b8be1d3a69dec66f/004-linked-object-store.png) | ![Head 10d10c270c: linked object store](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7b38131d3354c80d/004-linked-object-store.png) |\n| failure | ![Base eceeab4d5c: failure](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a4a8842bcb029ed3/005-failure.png) | |\n", "base": { "sha": "eceeab4d5c5bb02b58906978ff9e50bbd595ec19", "status": "failed", "title": "Failed commit-message preparation leaves no blobs in either object store", "message": "ASSERTION_FAILED: expected [0,0] to equal [1,1]", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"normal object-store proof, Done, Object-store-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot normal-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot normal-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.open ", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"linked object-store proof, Done, Linked-worktree-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot linked-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot linked-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" } ], "captures": [ "", "", "", "", "" ], "videos": [ "" ] }, "head": { "sha": "10d10c270cebdb12ddc9ab5a524485b98a9948f3", "status": "passed", "title": "Failed commit-message preparation leaves no blobs in either object store", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"normal object-store proof, Done, Object-store-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot normal-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot normal-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.open ", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"linked object-store proof, Done, Linked-worktree-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot linked-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot linked-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" } ], "captures": [ "", "", "", "" ], "videos": [ "" ] } } prove-final.log $ node scripts/prove-scenario.ts scripts/scenarios/commit-context-objects.e2e.ts --base eceeab4d5c5bb02b58906978ff9e50bbd595ec19 --head 10d10c270cebdb12ddc9ab5a524485b98a9948f3 --upload-command 'ghdrop upload' ⊘ cache disabled Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 17m ago) Lockfile is up to date, resolution step is skipped Packages are hard linked from the content-addressable store to the virtual store. Content-addressable store is at: Virtual store is at: node_modules/.pnpm Progress: resolved 861, reused 861, downloaded 0, added 845 Progress: resolved 1433, reused 1433, downloaded 0, added 1418 Progress: resolved 1624, reused 1624, downloaded 0, added 1611 Packages: +1677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1677, reused 1673, downloaded 0, added 1677, done Agent skills awaiting approval: e2e. Run "pnpm approve" to review them. . prepare$ vp config --no-agent . prepare: Done devDependencies: + @coderabbitai/config 1.2.0 + @effect/tsgo 0.67.1 + @shadcn/lint 0.1.5 + @types/node 24.12.4 + knip 6.34.0 + vite-plus 1.4.0 Done in 5.4s using pnpm v12.14.0 RUN e2e v0.23.0 run 01a1ccc3-b54b-73c1-93df-a0e9eb684626 · targets: web, ios ✓ target "web" command at http://127.0.0.1:42417/.well-known/t3/environment ready 6.01s ✓ target "ios" command at http://127.0.0.1:8190/status ready 7.92s stderr | |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store Switched to a new branch 'proof-normal' Preparing worktree (new branch 'proof-linked') × |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store 50.29s → locator did not become visible: getByText("Action failed").first() ❯ |web| scenarios/commit-context-objects.e2e.ts (1 test | 1 failed) 50.29s ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ FAIL |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store LOCATOR_NOT_FOUND: locator did not become visible: getByText("Action failed").first() ❯ scenarios/commit-context-objects.e2e.ts:33:5 31| await app.screenshot(`${name}-empty-message`); 32| await screen.getByRole("button", "Commit", { exact: true }).tap(); 33| await screen.getByText("Action failed", { exact: true }).first().… | ^ 34| const after = spawnSync("git", ["cat-file", "-e", hash], { cwd })… 35| const history = git(cwd, "show", "HEAD:README.md"); ❯ at http://127.0.0.1:42417/e03ed2d3-6bc0-4dc7-9af2-e7ec518a7642/mcp%3Af3b3cdaa-d98e-4666-a096-76b9256d5797 ❯ on screen #n3072 button "Git action options" [expanded focused] ❯ on screen #n6017 menu "Git action options" ❯ on screen #n3040 listitem "Thread actions for normal object-store proof" ❯ on screen #n3041 button "Thread actions for normal object-store proof" ❯ on screen #n3049 text="Ask anything. @ files, $ skills, / commands" ❯ app 1 warning logged ❯ trace .e2e/prove/base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/trace.md ❯ video .e2e/prove/base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/video/video.webm ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 0 passed (1) Tests 1 failed | 0 passed (1) Start at 22:39:01 Duration 65.52s (1m 6s, startup 13.94s) Traces .e2e/prove/base/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/prove/base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/001-normal-empty-message.png Markdown .e2e/prove/base/summary.md Failed × |web| scenarios/commit-context-objects.e2e.ts:33 > Failed commit-message preparation leaves no blobs in either object store LOCATOR_NOT_FOUND: locator did not become visible: getByText("Action failed").first() trace .e2e/prove/base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/trace.md Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 18m ago) Lockfile is up to date, resolution step is skipped Packages are hard linked from the content-addressable store to the virtual store. Content-addressable store is at: Virtual store is at: node_modules/.pnpm Progress: resolved 1125, reused 1125, downloaded 0, added 1110 Packages: +1677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1677, reused 1673, downloaded 0, added 1677, done Agent skills awaiting approval: e2e. Run "pnpm approve" to review them. . prepare$ vp config --no-agent . prepare: Done devDependencies: + @coderabbitai/config 1.2.0 + @effect/tsgo 0.67.1 + @shadcn/lint 0.1.5 + @types/node 24.12.4 + knip 6.34.0 + vite-plus 1.4.0 Done in 2.9s using pnpm v12.14.0 RUN e2e v0.23.0 run 01a1ccc4-e504-7f1e-9876-3edb8e890e77 · targets: web, ios ✓ target "web" command at http://127.0.0.1:42383/.well-known/t3/environment ready 3.81s ✓ target "ios" command at http://127.0.0.1:8190/status ready 5.32s stderr | |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store Switched to a new branch 'proof-normal' Preparing worktree (new branch 'proof-linked') ✓ |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store 16.62s ✓ |web| scenarios/commit-context-objects.e2e.ts (1 test) 16.62s Test Files 1 passed (1) Tests 1 passed (1) Start at 22:40:18 Duration 26.46s (startup 9.13s) Traces .e2e/prove/head/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/prove/head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/001-normal-empty-message.png .e2e/prove/head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/002-normal-object-store.png .e2e/prove/head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/003-linked-empty-message.png .e2e/prove/head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/004-linked-object-store.png Markdown .e2e/prove/head/summary.md { "scenario": "Failed commit-message preparation leaves no blobs in either object store", "failsOnBase": false, "passesOnHead": true, "baseSha": "eceeab4d5c5bb02b58906978ff9e50bbd595ec19", "headSha": "10d10c270cebdb12ddc9ab5a524485b98a9948f3", "verdict": "Not proven: the scenario could not run on base `eceeab4d5c` (LOCATOR_NOT_FOUND: locator did not become visible: getByText(\"Action failed\").first()).", "steps": { "base": [ { "step": "app.open ", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"normal object-store proof, Done, Object-store-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot normal-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "failed" } ], "head": [ { "step": "app.open ", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"normal object-store proof, Done, Object-store-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot normal-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot normal-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.open ", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"linked object-store proof, Done, Linked-worktree-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot linked-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot linked-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" } ] }, "captures": [ "", "", "", "", "", "" ], "videos": [ "", "" ], "markdown": "### Scenario: Failed commit-message preparation leaves no blobs in either object store\n\n**Not proven: the scenario could not run on base `eceeab4d5c` (LOCATOR_NOT_FOUND: locator did not become visible: getByText(\"Action failed\").first()).**\n\n| | Base `eceeab4d5c` | Head `10d10c270c` |\n| --- | --- | --- |\n| Result | ⚠️ could not run
    LOCATOR_NOT_FOUND: locator did not become visible: getByText(\"Action failed\").first() | ✅ passed |\n| normal empty message | ![Base eceeab4d5c: normal empty message](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bf1879d3936e66e0/001-normal-empty-message.png) | ![Head 10d10c270c: normal empty message](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c8d6d963f0501af2/001-normal-empty-message.png) |\n| failure | ![Base eceeab4d5c: failure](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/12deb0e7950cc687/002-failure.png) | |\n| normal object store | | ![Head 10d10c270c: normal object store](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3d5e989ee4ad5349/002-normal-object-store.png) |\n| linked empty message | | ![Head 10d10c270c: linked empty message](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/147597eec99357d2/003-linked-empty-message.png) |\n| linked object store | | ![Head 10d10c270c: linked object store](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cf64476ae6cab82a/004-linked-object-store.png) |\n", "base": { "sha": "eceeab4d5c5bb02b58906978ff9e50bbd595ec19", "status": "error", "title": "Failed commit-message preparation leaves no blobs in either object store", "message": "LOCATOR_NOT_FOUND: locator did not become visible: getByText(\"Action failed\").first()", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"normal object-store proof, Done, Object-store-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot normal-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "failed" } ], "captures": [ "", "" ], "videos": [ "" ] }, "head": { "sha": "10d10c270cebdb12ddc9ab5a524485b98a9948f3", "status": "passed", "title": "Failed commit-message preparation leaves no blobs in either object store", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"normal object-store proof, Done, Object-store-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot normal-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot normal-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.open ", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"linked object-store proof, Done, Linked-worktree-proof\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Git action options\")", "status": "passed" }, { "step": "locator.tap getByRole(\"menuitem\", name: \"Commit\")", "status": "passed" }, { "step": "app.screenshot linked-empty-message", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Commit\")", "status": "passed" }, { "step": "locator.waitFor getByText(\"Action failed\").first() → visible", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot linked-object-store", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" } ], "captures": [ "", "", "", "" ], "videos": [ "" ] } } stable-base-2.log RUN e2e v0.23.0 run 01a1ccc9-3de5-7807-af50-87262b53c4da · targets: web, ios ✓ target "web" command at http://127.0.0.1:39469/.well-known/t3/environment ready 3.08s stderr | |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store Switched to a new branch 'proof-normal' Preparing worktree (new branch 'proof-linked') × |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store 21.22s → expected [0,0] to equal [1,1] ❯ |web| scenarios/commit-context-objects.e2e.ts (1 test | 1 failed) 21.22s ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ FAIL |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store ASSERTION_FAILED: expected [0,0] to equal [1,1] ❯ scenarios/commit-context-objects.e2e.ts:64:25 62| results.push(after ?? -1); 63| } 64| await expect(results).toEqual([1, 1]); | ^ 65| }); 66| ❯ at http://127.0.0.1:39469/cc3247db-dc63-4020-8596-f1f33deab51c/mcp%3Af6e433ff-709d-44df-823c-acfaf470328a ❯ app 2 warnings logged ❯ trace .e2e/stable-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/trace.md ❯ video .e2e/stable-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/video/video.webm ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 0 passed (1) Tests 1 failed | 0 passed (1) Start at 22:45:03 Duration 24.92s (startup 3.08s) Traces .e2e/stable-base/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/stable-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/001-normal-empty-message-stability.png .e2e/stable-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/002-normal-empty-message.png .e2e/stable-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/003-normal-empty-message.png .e2e/stable-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/004-normal-object-store-stability.png .e2e/stable-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/005-normal-object-store.png .e2e/stable-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/006-normal-object-store.png .e2e/stable-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/007-linked-empty-message-stability.png .e2e/stable-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/008-linked-empty-message.png .e2e/stable-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/009-linked-empty-message.png .e2e/stable-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/010-linked-object-store-stability.png and 2 more (the report lists every artifact) Markdown .e2e/stable-base/summary.md Failed × |web| scenarios/commit-context-objects.e2e.ts:64 > Failed commit-message preparation leaves no blobs in either object store ASSERTION_FAILED: expected [0,0] to equal [1,1] trace .e2e/stable-base/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/trace.md stable-base.log error: Command 'e2e' not found in node_modules/.bin Run `vp install` to install dependencies, or use `vpx` for invoking remote commands. stable-head.log RUN e2e v0.23.0 run 01a1ccc9-c7ff-7ec3-96e2-2ff16f8c7a9f · targets: web, ios ✓ target "web" command at http://127.0.0.1:34003/.well-known/t3/environment ready 2.91s stderr | |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store Switched to a new branch 'proof-normal' Preparing worktree (new branch 'proof-linked') ✓ |web| scenarios/commit-context-objects.e2e.ts > Failed commit-message preparation leaves no blobs in either object store 21.31s ✓ |web| scenarios/commit-context-objects.e2e.ts (1 test) 21.31s Test Files 1 passed (1) Tests 1 passed (1) Start at 22:45:38 Duration 24.76s (startup 2.91s) Traces .e2e/stable-head/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/stable-head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/001-normal-empty-message-stability.png .e2e/stable-head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/002-normal-empty-message.png .e2e/stable-head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/003-normal-empty-message.png .e2e/stable-head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/004-normal-object-store-stability.png .e2e/stable-head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/005-normal-object-store.png .e2e/stable-head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/006-normal-object-store.png .e2e/stable-head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/007-linked-empty-message-stability.png .e2e/stable-head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/008-linked-empty-message.png .e2e/stable-head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/009-linked-empty-message.png .e2e/stable-head/results/commit-context-objects-failed-commit-message-cc65faeba044b7bf/attempt-1/screenshots/010-linked-object-store-stability.png and 2 more (the report lists every artifact) Markdown .e2e/stable-head/summary.md