$ node scripts/prove-scenario.ts scripts/scenarios/middle-click-primary.e2e.ts --base 5f95653f25ae0f5655145fa83d94d618c2951432 --head fba987f45dee16c224cc3a82bbd10ff0672723b4 --upload-command 'ghdrop upload' ⊘ cache disabled Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 35m 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: /.local/share/pnpm/store/v11 Virtual store is at: node_modules/.pnpm Progress: resolved 718, reused 718, downloaded 0, added 703 Progress: resolved 1120, reused 1120, downloaded 0, added 1105 Progress: resolved 1423, reused 1423, downloaded 0, added 1408 Progress: resolved 1627, reused 1627, downloaded 0, added 1615 Progress: resolved 1755, reused 1754, downloaded 0, added 1746 Packages: +1779 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1779, reused 1775, downloaded 0, added 1779, 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 8.8s using pnpm v12.14.0 RUN e2e v0.23.0 /scripts run 01a1d729-a57f-7b5c-9d35-b14b50a4192d · targets: web, ios ✓ target "web" command at http://127.0.0.1:34043/.well-known/t3/environment ready 22.49s × |web| scenarios/middle-click-primary.e2e.ts > Middle click pastes only inside the composer 38.55s → expected {"populated-timeline-blank-space":"sentinelPASTED","rendered-me… ❯ |web| scenarios/middle-click-primary.e2e.ts (1 test | 1 failed) 38.55s ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ FAIL |web| scenarios/middle-click-primary.e2e.ts > Middle click pastes only inside the composer ASSERTION_FAILED: expected {"populated-timeline-blank-space":"sentinelPASTED","rendered-message-text":"sentinelPASTED","inside-composer-native-paste":"sentinelPASTED","empty-draft-blank-space":"sentinel"} to equal {"populated-timeline-blank-space":"sentinel","rendered-message-text":"sentinel","inside-composer-native-paste":"sentinelPASTED","empty-draft-blank-space":"sentinel"} ❯ scenarios/middle-click-primary.e2e.ts:52:25 50| await clickAndCapture("empty-draft-blank-space", await blankPoint()… 51| 52| await expect(results).toEqual({ | ^ 53| "populated-timeline-blank-space":"sentinel", 54| "rendered-message-text":"sentinel", ❯ at http://127.0.0.1:34043/draft/eb7164d3-8191-4f6a-a0ba-0b064832afbe ❯ app 1 error, 2 warnings logged × console error: WebSocket connection to 'ws://127.0.0.1:34043/ws?clientSurface=web&clientAppVersion=0.1.9&clientDeviceType=desktop&clientOs=Linux&clientWebDeployment=server&clientBrowser=Chrome&connectionMethod=direct&clientDevice=02eecb982ac540b1a9bb32679ead9460744751c7b01cb5f307734b1c07d70314&orchestrationProtoc… ❯ trace .e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/trace.md ❯ video .e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/video/video.webm ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 0 passed (1) Tests 1 failed | 0 passed (1) Start at 23:06:34 Duration 63.94s (1m 4s, startup 22.49s) Traces .e2e/prove/base/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/001-ready-before-middle-click.png .e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/002-populated-timeline-blank-space.png .e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/003-rendered-message-text.png .e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/004-inside-composer-native-paste.png .e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/005-empty-draft-blank-space.png Markdown .e2e/prove/base/summary.md Failed × |web| scenarios/middle-click-primary.e2e.ts:52 > Middle click pastes only inside the composer ASSERTION_FAILED: expected {"populated-timeline-blank-space":"sentinelPASTED","rendered-message-text":"sentinelPASTED","inside-composer-native-paste":"sentinelPASTED","empty-draft-blank-space":"sentinel"} to equal {"populated-timeline-blank-space":"sentinel","rendered-message-text":"sentinel","inside-composer-native-paste":"sentinelPASTED","empty-draft-blank-space":"sentinel"} trace .e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/trace.md Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 36m 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: /.local/share/pnpm/store/v11 Virtual store is at: node_modules/.pnpm Progress: resolved 780, reused 780, downloaded 0, added 765 Progress: resolved 1159, reused 1159, downloaded 0, added 1145 Progress: resolved 1615, reused 1615, downloaded 0, added 1600 Progress: resolved 1764, reused 1763, downloaded 0, added 1754 Packages: +1779 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1779, reused 1775, downloaded 0, added 1779, 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 6.7s using pnpm v12.14.0 RUN e2e v0.23.0 /scripts run 01a1d72a-ea6b-7b00-ba01-2cb1088a696a · targets: web, ios ✓ target "web" command at http://127.0.0.1:40317/.well-known/t3/environment ready 13.76s ✓ |web| scenarios/middle-click-primary.e2e.ts > Middle click pastes only inside the composer 33.17s ✓ |web| scenarios/middle-click-primary.e2e.ts (1 test) 33.17s Test Files 1 passed (1) Tests 1 passed (1) Start at 23:07:57 Duration 48.84s (startup 13.76s) Traces .e2e/prove/head/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/001-ready-before-middle-click.png .e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/002-populated-timeline-blank-space.png .e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/003-rendered-message-text.png .e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/004-inside-composer-native-paste.png .e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/005-empty-draft-blank-space.png Markdown .e2e/prove/head/summary.md { "scenario": "Middle click pastes only inside the composer", "failsOnBase": true, "passesOnHead": true, "couldNotRun": null, "baseSha": "5f95653f25ae0f5655145fa83d94d618c2951432", "headSha": "fba987f45dee16c224cc3a82bbd10ff0672723b4", "verdict": "Proven: the scenario fails on base `5f95653f25` and passes on head `fba987f45d`.", "steps": { "base": [ { "step": "app.open ", "status": "passed" }, { "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/", "status": "passed" }, { "step": "app.open /1dc6733a-a5c5-4735-b5bd-11272597b400/mcp:170142e0-dfc7-4247-b8c7-fef367140d62", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "app.screenshot ready-before-middle-click", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot populated-timeline-blank-space", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "app.screenshot rendered-message-text", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "app.screenshot inside-composer-native-paste", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot empty-draft-blank-space", "status": "passed" } ], "head": [ { "step": "app.open ", "status": "passed" }, { "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/", "status": "passed" }, { "step": "app.open /c9c767e0-35dc-4fce-8d03-0690287ae68d/mcp:9b9c0b65-10bb-4f96-9a94-ab539d604792", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "app.screenshot ready-before-middle-click", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot populated-timeline-blank-space", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "app.screenshot rendered-message-text", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "app.screenshot inside-composer-native-paste", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot empty-draft-blank-space", "status": "passed" } ] }, "captures": [ "/scripts/.e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/001-ready-before-middle-click.png", "/scripts/.e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/002-populated-timeline-blank-space.png", "/scripts/.e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/003-rendered-message-text.png", "/scripts/.e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/004-inside-composer-native-paste.png", "/scripts/.e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/005-empty-draft-blank-space.png", "/scripts/.e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/006-failure.png", "/scripts/.e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/001-ready-before-middle-click.png", "/scripts/.e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/002-populated-timeline-blank-space.png", "/scripts/.e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/003-rendered-message-text.png", "/scripts/.e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/004-inside-composer-native-paste.png", "/scripts/.e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/005-empty-draft-blank-space.png" ], "videos": [ "/scripts/.e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/video/video.webm", "/scripts/.e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/video/video.webm" ], "markdown": "### Scenario: Middle click pastes only inside the composer\n\n**Proven: the scenario fails on base `5f95653f25` and passes on head `fba987f45d`.**\n\n| | Base `5f95653f25` | Head `fba987f45d` |\n| --- | --- | --- |\n| Result | ❌ failed
ASSERTION_FAILED: expected {\"populated-timeline-blank-space\":\"sentinelPASTED\",\"rendered-message-text\":\"sentinelPASTED\",\"inside-composer-native-paste\":\"sentinelPASTED\",\"empty-draft-blank-space\":\"sentinel\"} to equal {\"populated-timeline-blank-space\":\"sentinel\",\"rendered-message-text\":\"sentinel\",\"inside-composer-native-paste\":\"sentinelPASTED\",\"empty-draft-blank-space\":\"sentinel\"} | ✅ passed |\n| ready before middle click | ![Base 5f95653f25: ready before middle click](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/23c1fc8ad5542aae/001-ready-before-middle-click.png) | ![Head fba987f45d: ready before middle click](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ddd042ccd4c632b8/001-ready-before-middle-click.png) |\n| populated timeline blank space | ![Base 5f95653f25: populated timeline blank space](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/75247849d0b0b590/002-populated-timeline-blank-space.png) | ![Head fba987f45d: populated timeline blank space](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6c566956d848b143/002-populated-timeline-blank-space.png) |\n| rendered message text | ![Base 5f95653f25: rendered message text](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1f3ccd63128456ac/003-rendered-message-text.png) | ![Head fba987f45d: rendered message text](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2e7b3c9cf8df61f8/003-rendered-message-text.png) |\n| inside composer native paste | ![Base 5f95653f25: inside composer native paste](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0013d7b2b0edb8c4/004-inside-composer-native-paste.png) | ![Head fba987f45d: inside composer native paste](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2ebb1a78f68866ae/004-inside-composer-native-paste.png) |\n| empty draft blank space | ![Base 5f95653f25: empty draft blank space](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a334aa6778654a19/005-empty-draft-blank-space.png) | ![Head fba987f45d: empty draft blank space](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f410900d55014e81/005-empty-draft-blank-space.png) |\n| failure | ![Base 5f95653f25: failure](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f64268611a89b250/006-failure.png) | |\n", "base": { "sha": "5f95653f25ae0f5655145fa83d94d618c2951432", "status": "failed", "title": "Middle click pastes only inside the composer", "message": "ASSERTION_FAILED: expected {\"populated-timeline-blank-space\":\"sentinelPASTED\",\"rendered-message-text\":\"sentinelPASTED\",\"inside-composer-native-paste\":\"sentinelPASTED\",\"empty-draft-blank-space\":\"sentinel\"} to equal {\"populated-timeline-blank-space\":\"sentinel\",\"rendered-message-text\":\"sentinel\",\"inside-composer-native-paste\":\"sentinelPASTED\",\"empty-draft-blank-space\":\"sentinel\"}", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/", "status": "passed" }, { "step": "app.open /1dc6733a-a5c5-4735-b5bd-11272597b400/mcp:170142e0-dfc7-4247-b8c7-fef367140d62", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "app.screenshot ready-before-middle-click", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot populated-timeline-blank-space", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "app.screenshot rendered-message-text", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "app.screenshot inside-composer-native-paste", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot empty-draft-blank-space", "status": "passed" } ], "captures": [ "/scripts/.e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/001-ready-before-middle-click.png", "/scripts/.e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/002-populated-timeline-blank-space.png", "/scripts/.e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/003-rendered-message-text.png", "/scripts/.e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/004-inside-composer-native-paste.png", "/scripts/.e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/005-empty-draft-blank-space.png", "/scripts/.e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/006-failure.png" ], "videos": [ "/scripts/.e2e/prove/base/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/video/video.webm" ] }, "head": { "sha": "fba987f45dee16c224cc3a82bbd10ff0672723b4", "status": "passed", "title": "Middle click pastes only inside the composer", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/", "status": "passed" }, { "step": "app.open /c9c767e0-35dc-4fce-8d03-0690287ae68d/mcp:9b9c0b65-10bb-4f96-9a94-ab539d604792", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "app.screenshot ready-before-middle-click", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot populated-timeline-blank-space", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "app.screenshot rendered-message-text", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "app.screenshot inside-composer-native-paste", "status": "passed" }, { "step": "locator.fill getByRole(\"textbox\")", "status": "passed" }, { "step": "browser.evaluate ", "status": "passed" }, { "step": "app.screenshot empty-draft-blank-space", "status": "passed" } ], "captures": [ "/scripts/.e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/001-ready-before-middle-click.png", "/scripts/.e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/002-populated-timeline-blank-space.png", "/scripts/.e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/003-rendered-message-text.png", "/scripts/.e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/004-inside-composer-native-paste.png", "/scripts/.e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/screenshots/005-empty-draft-blank-space.png" ], "videos": [ "/scripts/.e2e/prove/head/results/middle-click-primary-middle-click-pastes-only-inside-a16f7ea7e7425be0/attempt-1/video/video.webm" ] } }