commit 678aef4c5d8809674bfdfcb132f69fb1a8212fbe Author: Mohamed Boudra Date: Wed Sep 9 18:56:40 2026 +0200 test(app): record workspace creation focus verification diff --git a/README.md b/README.md new file mode 100644 index 0000000000..43b9d273c3 --- /dev/null +++ b/README.md @@ -0,0 +1,73 @@ +# Workspace creation focus QA + +Contribution: Christoph Leiter's [PR #2986](https://github.com/getpaseo/paseo/pull/2986). +Baseline: current main `433e67b18b7964a92d593bdc78c518143accfc8b`. +Verified implementation: `9457bb6f4053b6ab36e7eabcae0a2902176635c8`. + +These are recorded Chromium interactions with the real Expo app and isolated Linux daemons. +Workspace registry updates, git worktree creation, uploaded files, and shell terminals are real. +Playwright holds `workspace.create.response` until after the user changes workspace +(or deliberately stays). Recording runs add 1.5 seconds of viewing time. +The agent uses Paseo's built-in simulated provider, model `ten-second-stream`, +mode `load-test`, thinking `low`. This does not verify a live external AI provider. +The simulated provider echoes text only; file preservation is checked at the real +create request and by comparing the uploaded file's bytes, not by expecting its +simulated transcript to echo attachment metadata. + +## Before and after + +| Journey | Current main | Fix | +| --- | --- | --- | +| Worktree + chat | [Recording](before-worktree-chat.webm) | [Recording](after-worktree-chat.webm) | +| Worktree + terminal | [Recording](before-worktree-terminal.webm) | [Recording](after-worktree-terminal.webm) | +| Empty worktree | [Recording](before-worktree-empty.webm) | [Recording](after-worktree-empty.webm) | +| Local workspace + chat | [Recording](before-local-chat.webm) | [Recording](after-local-chat.webm) | +| Local workspace + terminal | [Recording](before-local-terminal.webm) | [Recording](after-local-terminal.webm) | + +The worktree terminal recording shows the chosen `main` workspace remaining active, +then opening the new workspace reveals `captured: Hello from the navigation guard`. +[Preserving a newer draft](after-newer-draft.webm) and +[empty local workspace](after-local-empty.webm) are also recorded. + +![Chosen workspace remains active](focus-preserved.png) +![New terminal has received the submitted prompt](terminal-started.png) + +## Results + +- Current-main baseline: both original local journeys fail on the wrong final route. +- Current-main baseline: all three explicit worktree journeys fail on the wrong final route. +- Fix: seven local journeys pass: chat/terminal/empty with leave/stay, plus reopening a newer draft. +- Fix: three explicit worktree journeys pass: chat/terminal/empty with navigation away. +- Revisited workspaces retain exactly one requested agent or terminal; empty workspaces contain neither. +- Chat request retains prompt, provider, model, mode, thinking level, working directory, and uploaded file contents. +- Submitted drafts clear; a newer draft remains intact. +- Focused tests: presence 4, background handoff 5, existing workspace draft-tab tests 5 passed. +- New draft-ownership regression failed before its repair and passed afterward. +- Full typecheck, lint, and format passed. + +## Reproduce + +From the verified checkout: + +```sh +npm install +npm run build:server +npm run build:app-deps +CI=1 E2E_WORKERS=1 E2E_RECORD_VIDEO=1 npm run test:e2e --workspace=@getpaseo/app -- e2e/browser/new-workspace-navigation-guard.spec.ts --retries=0 +npm run test --workspace=@getpaseo/app -- src/screens/new-workspace/background-handoff.test.ts src/screens/new-workspace/screen-presence.test.ts src/composer/draft/workspace-tab.test.ts --bail=1 +npm run typecheck +npm run lint +npm run format +``` + +The recorded local run and worktree run were separate focused invocations; the +worktree invocation used `--grep 'worktree '`. Baseline runs used the same +tests with the two modified production entry files restored from the pinned main +commit. Extra helper files are unreachable from that baseline. + +Raw command output is in the adjacent `.txt` files. ANSI formatting and local +home/checkout paths have been removed; test results are unchanged. + +Tested: Linux Chromium web. Not independently tested: iOS, Android, Electron on +Linux/macOS/Windows, or live external agent providers. No protocol fields changed. +The main developer daemon was not restarted or used for QA. diff --git a/after-local-chat.webm b/after-local-chat.webm new file mode 100644 index 0000000000..9d155a2b75 Binary files /dev/null and b/after-local-chat.webm differ diff --git a/after-local-empty.webm b/after-local-empty.webm new file mode 100644 index 0000000000..0b8aa109c7 Binary files /dev/null and b/after-local-empty.webm differ diff --git a/after-local-terminal.webm b/after-local-terminal.webm new file mode 100644 index 0000000000..05a2ec491f Binary files /dev/null and b/after-local-terminal.webm differ diff --git a/after-newer-draft.webm b/after-newer-draft.webm new file mode 100644 index 0000000000..1e6ac58ea9 Binary files /dev/null and b/after-newer-draft.webm differ diff --git a/after-worktree-chat.webm b/after-worktree-chat.webm new file mode 100644 index 0000000000..566c44658c Binary files /dev/null and b/after-worktree-chat.webm differ diff --git a/after-worktree-empty.webm b/after-worktree-empty.webm new file mode 100644 index 0000000000..818a9077f4 Binary files /dev/null and b/after-worktree-empty.webm differ diff --git a/after-worktree-terminal.webm b/after-worktree-terminal.webm new file mode 100644 index 0000000000..9a3eb218a8 Binary files /dev/null and b/after-worktree-terminal.webm differ diff --git a/after-worktree.txt b/after-worktree.txt new file mode 100644 index 0000000000..7ab7904e58 --- /dev/null +++ b/after-worktree.txt @@ -0,0 +1,47 @@ + +> @getpaseo/app@0.8.0-beta.1 test:e2e +> playwright test --project=browser e2e/browser/new-workspace-navigation-guard.spec.ts --grep worktree --retries=0 --output=../../.dev/qa-2986/worktree-after-results + +(node:1748019) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1748019) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +[metro] (node:1748040) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +[metro] (Use `node --trace-warnings ...` to show where the warning was created) +[metro] Starting project at [checkout]/packages/app +[metro] Using src/app as the root directory for Expo Router. +[metro] Experimental Expo Autolinking module resolver is enabled. +[metro] React Compiler enabled +[metro] Metro is running in CI mode, reloads are disabled. Remove CI=true to enable watch mode. +[metro] Starting Metro Bundler +[metro] Waiting on http://localhost:44615 +[metro] Logs for your project will appear below. +[metro] Web Bundled 2083ms packages/app/index.ts (5129 modules) +[e2e] Metro warmed on port 44615 + +Running 3 tests using 1 worker + +(node:1748274) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1748274) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +[e2e] Worker 0 daemon started on port 40733, home: [checkout]/.dev/qa-2986/worktree-after/worker-0 +[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1) +[metro] Web Bundled 162ms packages/app/index.ts (1 module) +[metro] LOG [web] Logs will appear in the browser console +[metro] Web Bundled 44ms packages/app/src/attachments/web/indexeddb-attachment-store.ts (1 module) + ✓ 1 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › worktree chat: keeps the workspace chosen during creation (13.6s) +[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1) +[metro] Web Bundled 165ms packages/app/index.ts (1 module) +[metro] Web Bundled 4ms packages/app/src/attachments/web/indexeddb-attachment-store.ts (1 module) +[metro] LOG [web] Logs will appear in the browser console + ✓ 2 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › worktree terminal: keeps the workspace chosen during creation (12.9s) +[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1) +[metro] Web Bundled 194ms packages/app/index.ts (1 module) +[metro] Web Bundled 5ms packages/app/src/attachments/web/indexeddb-attachment-store.ts (1 module) +[metro] LOG [web] Logs will appear in the browser console + ✓ 3 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › worktree empty: keeps the workspace chosen during creation (13.7s) +[e2e] Worker 0 daemon stopped +[e2e] Metro stopped + + 3 passed (48.3s) diff --git a/baseline-local.txt b/baseline-local.txt new file mode 100644 index 0000000000..a67ee1fce6 --- /dev/null +++ b/baseline-local.txt @@ -0,0 +1,140 @@ + +> @getpaseo/app@0.8.0-beta.1 test:e2e +> playwright test --project=browser e2e/browser/new-workspace-navigation-guard.spec.ts --retries=0 --output=../../.dev/qa-2986/baseline-results + +(node:1586722) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1586722) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +[metro] (node:1586752) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +[metro] (Use `node --trace-warnings ...` to show where the warning was created) +[metro] Starting project at [checkout]/packages/app +[metro] Using src/app as the root directory for Expo Router. +[metro] Experimental Expo Autolinking module resolver is enabled. +[metro] React Compiler enabled +[metro] Metro is running in CI mode, reloads are disabled. Remove CI=true to enable watch mode. +[metro] Starting Metro Bundler +[metro] Waiting on http://localhost:33023 +[metro] Logs for your project will appear below. +[metro] Web Bundled 2099ms packages/app/index.ts (5126 modules) +[e2e] Metro warmed on port 33023 + +Running 2 tests using 1 worker + +(node:1586952) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1586952) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +[e2e] Worker 0 daemon started on port 39489, home: [checkout]/.dev/qa-2986/baseline/worker-0 +[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1) +[metro] Web Bundled 167ms packages/app/index.ts (1 module) +[metro] LOG [web] Logs will appear in the browser console +[metro] Web Bundled 48ms packages/app/src/attachments/web/indexeddb-attachment-store.ts (1 module) +[e2e] Worker 0 daemon stopped + ✘ 1 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:72:7 › New workspace navigation guard › stays put when creation resolves after the user moved on, and still starts the agent (14.1s) +(node:1589025) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1589025) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +[e2e] Worker 1 daemon started on port 36915, home: [checkout]/.dev/qa-2986/baseline/worker-1 +[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1) +[metro] Web Bundled 171ms packages/app/index.ts (1 module) +[metro] Web Bundled 4ms packages/app/src/attachments/web/indexeddb-attachment-store.ts (1 module) +[metro] LOG [web] Logs will appear in the browser console +[e2e] Worker 1 daemon stopped + ✘ 2 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:146:7 › New workspace navigation guard › stays put when a terminal launch resolves after the user moved on, and still spawns the terminal (19.4s) +[e2e] Metro stopped + + + 1) [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:72:7 › New workspace navigation guard › stays put when creation resolves after the user moved on, and still starts the agent + + Error: expect(received).toBe(expected) // Object.is equality + + Expected: "/h/srv_e2e_worker_0/workspace/wks_c10aed6669e03cab" + Received: "/h/srv_e2e_worker_0/workspace/wks_aee4508341498f87" + + Call Log: + - Timeout 10000ms exceeded while waiting on the predicate + + at ../support/helpers/route-assertions.ts:8 + + 6 | options?: { timeout?: number }, + 7 | ): Promise { + > 8 | await expect + | ^ + 9 | .poll( + 10 | () => { + 11 | const current = new URL(page.url()); + at expectAppRoute ([checkout]/packages/app/e2e/support/helpers/route-assertions.ts:8:3) + at [checkout]/packages/app/e2e/browser/new-workspace-navigation-guard.spec.ts:126:7 + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + ../../.dev/qa-2986/baseline-results/new-workspace-navigation-g-6feb8--and-still-starts-the-agent-browser/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: browser-console (text/plain) ──────────────────────────────────────────────────── + [console:info] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold + [console:log] Running application "main" with appParams: + {rootTag: #root, hydrate: undefined} + Development-level warnings: ON. + Performance optimizations: OFF. + [co... + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #3: video (video/webm) ────────────────────────────────────────────────────────────── + ../../.dev/qa-2986/baseline-results/new-workspace-navigation-g-6feb8--and-still-starts-the-agent-browser/video.webm + ──────────────────────────────────────────────────────────────────────────────────────────────── + + Error Context: ../../.dev/qa-2986/baseline-results/new-workspace-navigation-g-6feb8--and-still-starts-the-agent-browser/error-context.md + + 2) [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:146:7 › New workspace navigation guard › stays put when a terminal launch resolves after the user moved on, and still spawns the terminal + + Error: expect(received).toBe(expected) // Object.is equality + + Expected: "/h/srv_e2e_worker_1/workspace/wks_189929b605ec782a" + Received: "/h/srv_e2e_worker_1/workspace/wks_0939abd90c119bd0" + + Call Log: + - Timeout 10000ms exceeded while waiting on the predicate + + at ../support/helpers/route-assertions.ts:8 + + 6 | options?: { timeout?: number }, + 7 | ): Promise { + > 8 | await expect + | ^ + 9 | .poll( + 10 | () => { + 11 | const current = new URL(page.url()); + at expectAppRoute ([checkout]/packages/app/e2e/support/helpers/route-assertions.ts:8:3) + at [checkout]/packages/app/e2e/browser/new-workspace-navigation-guard.spec.ts:203:7 + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + ../../.dev/qa-2986/baseline-results/new-workspace-navigation-g-24fca-d-still-spawns-the-terminal-browser/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: browser-console (text/plain) ──────────────────────────────────────────────────── + [console:info] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold + [console:log] Running application "main" with appParams: + {rootTag: #root, hydrate: undefined} + Development-level warnings: ON. + Performance optimizations: OFF. + [co... + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #3: video (video/webm) ────────────────────────────────────────────────────────────── + ../../.dev/qa-2986/baseline-results/new-workspace-navigation-g-24fca-d-still-spawns-the-terminal-browser/video.webm + ──────────────────────────────────────────────────────────────────────────────────────────────── + + Error Context: ../../.dev/qa-2986/baseline-results/new-workspace-navigation-g-24fca-d-still-spawns-the-terminal-browser/error-context.md + + 2 failed + [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:72:7 › New workspace navigation guard › stays put when creation resolves after the user moved on, and still starts the agent + [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:146:7 › New workspace navigation guard › stays put when a terminal launch resolves after the user moved on, and still spawns the terminal +npm error Lifecycle script `test:e2e` failed with error: +npm error code 1 +npm error path [checkout]/packages/app +npm error workspace @getpaseo/app@0.8.0-beta.1 +npm error location [checkout]/packages/app +npm error command failed +npm error command sh -c playwright test --project=browser e2e/browser/new-workspace-navigation-guard.spec.ts --retries=0 --output=../../.dev/qa-2986/baseline-results diff --git a/before-local-chat.webm b/before-local-chat.webm new file mode 100644 index 0000000000..6f6da3e934 Binary files /dev/null and b/before-local-chat.webm differ diff --git a/before-local-terminal.webm b/before-local-terminal.webm new file mode 100644 index 0000000000..4ef35a73f8 Binary files /dev/null and b/before-local-terminal.webm differ diff --git a/before-worktree-chat.webm b/before-worktree-chat.webm new file mode 100644 index 0000000000..4c2bfd0e04 Binary files /dev/null and b/before-worktree-chat.webm differ diff --git a/before-worktree-empty.webm b/before-worktree-empty.webm new file mode 100644 index 0000000000..7c9ecf2ccc Binary files /dev/null and b/before-worktree-empty.webm differ diff --git a/before-worktree-terminal.webm b/before-worktree-terminal.webm new file mode 100644 index 0000000000..a507387da8 Binary files /dev/null and b/before-worktree-terminal.webm differ diff --git a/before-worktree.txt b/before-worktree.txt new file mode 100644 index 0000000000..5b9751f603 --- /dev/null +++ b/before-worktree.txt @@ -0,0 +1,448 @@ + +> @getpaseo/app@0.8.0-beta.1 test:e2e +> playwright test --project=browser e2e/browser/new-workspace-navigation-guard.spec.ts --grep worktree --retries=0 --output=../../.dev/qa-2986/worktree-before-results + +(node:1739202) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1739202) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +[metro] (node:1739254) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +[metro] (Use `node --trace-warnings ...` to show where the warning was created) +[metro] Starting project at [checkout]/packages/app +[metro] Using src/app as the root directory for Expo Router. +[metro] Experimental Expo Autolinking module resolver is enabled. +[metro] React Compiler enabled +[metro] Metro is running in CI mode, reloads are disabled. Remove CI=true to enable watch mode. +[metro] Starting Metro Bundler +[metro] Waiting on http://localhost:42491 +[metro] Logs for your project will appear below. +[metro] Web Bundled 2103ms packages/app/index.ts (5126 modules) +[e2e] Metro warmed on port 42491 + +Running 3 tests using 1 worker + +(node:1740196) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1740196) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +[e2e] Worker 0 daemon started on port 45103, home: [checkout]/.dev/qa-2986/worktree-before/worker-0 +[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1) +[metro] Web Bundled 160ms packages/app/index.ts (1 module) +[metro] LOG [web] Logs will appear in the browser console +[metro] Web Bundled 42ms packages/app/src/attachments/web/indexeddb-attachment-store.ts (1 module) +Error: expect(received).toBe(expected) // Object.is equality + +Expected: "/h/srv_e2e_worker_0/workspace/wks_fe50c0d38c63297c" +Received: "/h/srv_e2e_worker_0/workspace/wks_d5397a0bda5853b8" + +Call Log: +- Timeout 10000ms exceeded while waiting on the predicate + at pollMatcher ([checkout]/node_modules/playwright/lib/matchers/expect.js:293:11) + at expectAppRoute ([checkout]/packages/app/e2e/support/helpers/route-assertions.ts:8:3) + at [checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:128:7 + at TestStepInfoImpl._runStepBody ([checkout]/node_modules/playwright/lib/worker/testInfo.js:506:14) + at [checkout]/node_modules/playwright/lib/common/testType.js:245:20 + at [checkout]/node_modules/playwright/lib/common/testType.js:243:18 + at TestTypeImpl._step ([checkout]/node_modules/playwright/lib/common/testType.js:240:12) + at verifyDelayedWorkspaceCreation ([checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:112:5) + at [checkout]/packages/app/e2e/browser/new-workspace-navigation-guard.spec.ts:12:7 + at [checkout]/node_modules/playwright/lib/worker/workerMain.js:323:9 + at [checkout]/node_modules/playwright/lib/worker/testInfo.js:320:11 + at TimeoutManager.withRunnable ([checkout]/node_modules/playwright/lib/worker/timeoutManager.js:67:14) + at TestInfoImpl._runWithTimeout ([checkout]/node_modules/playwright/lib/worker/testInfo.js:318:7) + at [checkout]/node_modules/playwright/lib/worker/workerMain.js:321:7 + at WorkerMain._runTest ([checkout]/node_modules/playwright/lib/worker/workerMain.js:296:5) + at WorkerMain.runTestGroup ([checkout]/node_modules/playwright/lib/worker/workerMain.js:196:11) + at process. ([checkout]/node_modules/playwright/lib/common/process.js:72:22) { + [Symbol(step)]: { + category: 'expect', + apiName: 'expect.poll .toBe', + title: 'Expect "poll toBe"', + shortTitle: 'Expect "poll toBe"', + params: { expected: '/h/srv_e2e_worker_0/workspace/wks_fe50c0d38c63297c' }, + infectParentStepsWithError: undefined, + stepId: 'expect@317', + group: undefined, + boxedStack: undefined, + location: { + file: '[checkout]/packages/app/e2e/support/helpers/route-assertions.ts', + line: 16, + column: 6, + function: 'expectAppRoute' + }, + steps: [ + [Object], [Object], + [Object], [Object], + [Object], [Object], + [Object], [Object], + [Object], [Object], + [Object], [Object], + [Object] + ], + attachmentIndices: [], + info: TestStepInfoImpl { + annotations: [], + _testInfo: [TestInfoImpl], + _stepId: 'expect@317', + _title: 'Expect "poll toBe"', + _parentStep: [TestStepInfoImpl], + skip: [Function (anonymous)] + }, + complete: [Function: complete], + endWallTime: 1788972777259, + error: { + message: 'Error: \x1B[2mexpect(\x1B[22m\x1B[31mreceived\x1B[39m\x1B[2m).\x1B[22mtoBe\x1B[2m(\x1B[22m\x1B[32mexpected\x1B[39m\x1B[2m) // Object.is equality\x1B[22m\n' + + '\n' + + 'Expected: \x1B[32m"/h/srv_e2e_worker_0/workspace/wks_\x1B[7mfe50c0d38c63297c\x1B[27m"\x1B[39m\n' + + 'Received: \x1B[31m"/h/srv_e2e_worker_0/workspace/wks_\x1B[7md5397a0bda5853b8\x1B[27m"\x1B[39m\n' + + '\n' + + 'Call Log:\n' + + '- Timeout 10000ms exceeded while waiting on the predicate', + stack: 'Error: \x1B[2mexpect(\x1B[22m\x1B[31mreceived\x1B[39m\x1B[2m).\x1B[22mtoBe\x1B[2m(\x1B[22m\x1B[32mexpected\x1B[39m\x1B[2m) // Object.is equality\x1B[22m\n' + + '\n' + + 'Expected: \x1B[32m"/h/srv_e2e_worker_0/workspace/wks_\x1B[7mfe50c0d38c63297c\x1B[27m"\x1B[39m\n' + + 'Received: \x1B[31m"/h/srv_e2e_worker_0/workspace/wks_\x1B[7md5397a0bda5853b8\x1B[27m"\x1B[39m\n' + + '\n' + + 'Call Log:\n' + + '- Timeout 10000ms exceeded while waiting on the predicate\n' + + ' at expectAppRoute ([checkout]/packages/app/e2e/support/helpers/route-assertions.ts:8:3)\n' + + ' at [checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:128:7\n' + + ' at verifyDelayedWorkspaceCreation ([checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:112:5)\n' + + ' at [checkout]/packages/app/e2e/browser/new-workspace-navigation-guard.spec.ts:12:7', + cause: undefined + } + } +} +[e2e] Worker 0 daemon stopped + ✘ 1 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › worktree chat: keeps the workspace chosen during creation (21.1s) +(node:1744054) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1744054) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +[e2e] Worker 1 daemon started on port 42363, home: [checkout]/.dev/qa-2986/worktree-before/worker-1 +[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1) +[metro] Web Bundled 173ms packages/app/index.ts (1 module) +[metro] Web Bundled 5ms packages/app/src/attachments/web/indexeddb-attachment-store.ts (1 module) +[metro] LOG [web] Logs will appear in the browser console +Error: expect(received).toBe(expected) // Object.is equality + +Expected: "/h/srv_e2e_worker_1/workspace/wks_2685c8a535a75a09" +Received: "/h/srv_e2e_worker_1/workspace/wks_9b35d52930eaaba6" + +Call Log: +- Timeout 10000ms exceeded while waiting on the predicate + at pollMatcher ([checkout]/node_modules/playwright/lib/matchers/expect.js:293:11) + at expectAppRoute ([checkout]/packages/app/e2e/support/helpers/route-assertions.ts:8:3) + at [checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:128:7 + at TestStepInfoImpl._runStepBody ([checkout]/node_modules/playwright/lib/worker/testInfo.js:506:14) + at [checkout]/node_modules/playwright/lib/common/testType.js:245:20 + at [checkout]/node_modules/playwright/lib/common/testType.js:243:18 + at TestTypeImpl._step ([checkout]/node_modules/playwright/lib/common/testType.js:240:12) + at verifyDelayedWorkspaceCreation ([checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:112:5) + at [checkout]/packages/app/e2e/browser/new-workspace-navigation-guard.spec.ts:12:7 + at [checkout]/node_modules/playwright/lib/worker/workerMain.js:323:9 + at [checkout]/node_modules/playwright/lib/worker/testInfo.js:320:11 + at TimeoutManager.withRunnable ([checkout]/node_modules/playwright/lib/worker/timeoutManager.js:67:14) + at TestInfoImpl._runWithTimeout ([checkout]/node_modules/playwright/lib/worker/testInfo.js:318:7) + at [checkout]/node_modules/playwright/lib/worker/workerMain.js:321:7 + at WorkerMain._runTest ([checkout]/node_modules/playwright/lib/worker/workerMain.js:296:5) + at WorkerMain.runTestGroup ([checkout]/node_modules/playwright/lib/worker/workerMain.js:196:11) + at process. ([checkout]/node_modules/playwright/lib/common/process.js:72:22) { + [Symbol(step)]: { + category: 'expect', + apiName: 'expect.poll .toBe', + title: 'Expect "poll toBe"', + shortTitle: 'Expect "poll toBe"', + params: { expected: '/h/srv_e2e_worker_1/workspace/wks_2685c8a535a75a09' }, + infectParentStepsWithError: undefined, + stepId: 'expect@198', + group: undefined, + boxedStack: undefined, + location: { + file: '[checkout]/packages/app/e2e/support/helpers/route-assertions.ts', + line: 16, + column: 6, + function: 'expectAppRoute' + }, + steps: [ + [Object], [Object], + [Object], [Object], + [Object], [Object], + [Object], [Object], + [Object], [Object], + [Object], [Object], + [Object] + ], + attachmentIndices: [], + info: TestStepInfoImpl { + annotations: [], + _testInfo: [TestInfoImpl], + _stepId: 'expect@198', + _title: 'Expect "poll toBe"', + _parentStep: [TestStepInfoImpl], + skip: [Function (anonymous)] + }, + complete: [Function: complete], + endWallTime: 1788972801584, + error: { + message: 'Error: \x1B[2mexpect(\x1B[22m\x1B[31mreceived\x1B[39m\x1B[2m).\x1B[22mtoBe\x1B[2m(\x1B[22m\x1B[32mexpected\x1B[39m\x1B[2m) // Object.is equality\x1B[22m\n' + + '\n' + + 'Expected: \x1B[32m"/h/srv_e2e_worker_1/workspace/wks_\x1B[7m2685c8a535a75a09\x1B[27m"\x1B[39m\n' + + 'Received: \x1B[31m"/h/srv_e2e_worker_1/workspace/wks_\x1B[7m9b35d52930eaaba6\x1B[27m"\x1B[39m\n' + + '\n' + + 'Call Log:\n' + + '- Timeout 10000ms exceeded while waiting on the predicate', + stack: 'Error: \x1B[2mexpect(\x1B[22m\x1B[31mreceived\x1B[39m\x1B[2m).\x1B[22mtoBe\x1B[2m(\x1B[22m\x1B[32mexpected\x1B[39m\x1B[2m) // Object.is equality\x1B[22m\n' + + '\n' + + 'Expected: \x1B[32m"/h/srv_e2e_worker_1/workspace/wks_\x1B[7m2685c8a535a75a09\x1B[27m"\x1B[39m\n' + + 'Received: \x1B[31m"/h/srv_e2e_worker_1/workspace/wks_\x1B[7m9b35d52930eaaba6\x1B[27m"\x1B[39m\n' + + '\n' + + 'Call Log:\n' + + '- Timeout 10000ms exceeded while waiting on the predicate\n' + + ' at expectAppRoute ([checkout]/packages/app/e2e/support/helpers/route-assertions.ts:8:3)\n' + + ' at [checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:128:7\n' + + ' at verifyDelayedWorkspaceCreation ([checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:112:5)\n' + + ' at [checkout]/packages/app/e2e/browser/new-workspace-navigation-guard.spec.ts:12:7', + cause: undefined + } + } +} +[e2e] Worker 1 daemon stopped + ✘ 2 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › worktree terminal: keeps the workspace chosen during creation (21.1s) +(node:1746063) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1746063) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +[e2e] Worker 2 daemon started on port 43559, home: [checkout]/.dev/qa-2986/worktree-before/worker-2 +[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1) +[metro] Web Bundled 161ms packages/app/index.ts (1 module) +[metro] Web Bundled 4ms packages/app/src/attachments/web/indexeddb-attachment-store.ts (1 module) +[metro] LOG [web] Logs will appear in the browser console +Error: expect(received).toBe(expected) // Object.is equality + +Expected: "/h/srv_e2e_worker_2/workspace/wks_412333da4804914d" +Received: "/h/srv_e2e_worker_2/workspace/wks_23adbe2b7c4344f4" + +Call Log: +- Timeout 10000ms exceeded while waiting on the predicate + at pollMatcher ([checkout]/node_modules/playwright/lib/matchers/expect.js:293:11) + at expectAppRoute ([checkout]/packages/app/e2e/support/helpers/route-assertions.ts:8:3) + at [checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:128:7 + at TestStepInfoImpl._runStepBody ([checkout]/node_modules/playwright/lib/worker/testInfo.js:506:14) + at [checkout]/node_modules/playwright/lib/common/testType.js:245:20 + at [checkout]/node_modules/playwright/lib/common/testType.js:243:18 + at TestTypeImpl._step ([checkout]/node_modules/playwright/lib/common/testType.js:240:12) + at verifyDelayedWorkspaceCreation ([checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:112:5) + at [checkout]/packages/app/e2e/browser/new-workspace-navigation-guard.spec.ts:12:7 + at [checkout]/node_modules/playwright/lib/worker/workerMain.js:323:9 + at [checkout]/node_modules/playwright/lib/worker/testInfo.js:320:11 + at TimeoutManager.withRunnable ([checkout]/node_modules/playwright/lib/worker/timeoutManager.js:67:14) + at TestInfoImpl._runWithTimeout ([checkout]/node_modules/playwright/lib/worker/testInfo.js:318:7) + at [checkout]/node_modules/playwright/lib/worker/workerMain.js:321:7 + at WorkerMain._runTest ([checkout]/node_modules/playwright/lib/worker/workerMain.js:296:5) + at WorkerMain.runTestGroup ([checkout]/node_modules/playwright/lib/worker/workerMain.js:196:11) + at process. ([checkout]/node_modules/playwright/lib/common/process.js:72:22) { + [Symbol(step)]: { + category: 'expect', + apiName: 'expect.poll .toBe', + title: 'Expect "poll toBe"', + shortTitle: 'Expect "poll toBe"', + params: { expected: '/h/srv_e2e_worker_2/workspace/wks_412333da4804914d' }, + infectParentStepsWithError: undefined, + stepId: 'expect@189', + group: undefined, + boxedStack: undefined, + location: { + file: '[checkout]/packages/app/e2e/support/helpers/route-assertions.ts', + line: 16, + column: 6, + function: 'expectAppRoute' + }, + steps: [ + [Object], [Object], + [Object], [Object], + [Object], [Object], + [Object], [Object], + [Object], [Object], + [Object], [Object], + [Object] + ], + attachmentIndices: [], + info: TestStepInfoImpl { + annotations: [], + _testInfo: [TestInfoImpl], + _stepId: 'expect@189', + _title: 'Expect "poll toBe"', + _parentStep: [TestStepInfoImpl], + skip: [Function (anonymous)] + }, + complete: [Function: complete], + endWallTime: 1788972824859, + error: { + message: 'Error: \x1B[2mexpect(\x1B[22m\x1B[31mreceived\x1B[39m\x1B[2m).\x1B[22mtoBe\x1B[2m(\x1B[22m\x1B[32mexpected\x1B[39m\x1B[2m) // Object.is equality\x1B[22m\n' + + '\n' + + 'Expected: \x1B[32m"/h/srv_e2e_worker_2/workspace/wks_\x1B[7m412333da4804914d\x1B[27m"\x1B[39m\n' + + 'Received: \x1B[31m"/h/srv_e2e_worker_2/workspace/wks_\x1B[7m23adbe2b7c4344f4\x1B[27m"\x1B[39m\n' + + '\n' + + 'Call Log:\n' + + '- Timeout 10000ms exceeded while waiting on the predicate', + stack: 'Error: \x1B[2mexpect(\x1B[22m\x1B[31mreceived\x1B[39m\x1B[2m).\x1B[22mtoBe\x1B[2m(\x1B[22m\x1B[32mexpected\x1B[39m\x1B[2m) // Object.is equality\x1B[22m\n' + + '\n' + + 'Expected: \x1B[32m"/h/srv_e2e_worker_2/workspace/wks_\x1B[7m412333da4804914d\x1B[27m"\x1B[39m\n' + + 'Received: \x1B[31m"/h/srv_e2e_worker_2/workspace/wks_\x1B[7m23adbe2b7c4344f4\x1B[27m"\x1B[39m\n' + + '\n' + + 'Call Log:\n' + + '- Timeout 10000ms exceeded while waiting on the predicate\n' + + ' at expectAppRoute ([checkout]/packages/app/e2e/support/helpers/route-assertions.ts:8:3)\n' + + ' at [checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:128:7\n' + + ' at verifyDelayedWorkspaceCreation ([checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:112:5)\n' + + ' at [checkout]/packages/app/e2e/browser/new-workspace-navigation-guard.spec.ts:12:7', + cause: undefined + } + } +} +[e2e] Worker 2 daemon stopped + ✘ 3 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › worktree empty: keeps the workspace chosen during creation (20.3s) +[e2e] Metro stopped + + + 1) [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › worktree chat: keeps the workspace chosen during creation › Completion creates exactly the requested resource and preserves focus + + Error: expect(received).toBe(expected) // Object.is equality + + Expected: "/h/srv_e2e_worker_0/workspace/wks_fe50c0d38c63297c" + Received: "/h/srv_e2e_worker_0/workspace/wks_d5397a0bda5853b8" + + Call Log: + - Timeout 10000ms exceeded while waiting on the predicate + + at ../support/helpers/route-assertions.ts:8 + + 6 | options?: { timeout?: number }, + 7 | ): Promise { + > 8 | await expect + | ^ + 9 | .poll( + 10 | () => { + 11 | const current = new URL(page.url()); + at expectAppRoute ([checkout]/packages/app/e2e/support/helpers/route-assertions.ts:8:3) + at [checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:128:7 + at verifyDelayedWorkspaceCreation ([checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:112:5) + at [checkout]/packages/app/e2e/browser/new-workspace-navigation-guard.spec.ts:12:7 + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + ../../.dev/qa-2986/worktree-before-results/new-workspace-navigation-g-250d7-pace-chosen-during-creation-browser/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: browser-console (text/plain) ──────────────────────────────────────────────────── + [console:info] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold + [console:log] Running application "main" with appParams: + {rootTag: #root, hydrate: undefined} + Development-level warnings: ON. + Performance optimizations: OFF. + [co... + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #3: video (video/webm) ────────────────────────────────────────────────────────────── + ../../.dev/qa-2986/worktree-before-results/new-workspace-navigation-g-250d7-pace-chosen-during-creation-browser/video.webm + ──────────────────────────────────────────────────────────────────────────────────────────────── + + Error Context: ../../.dev/qa-2986/worktree-before-results/new-workspace-navigation-g-250d7-pace-chosen-during-creation-browser/error-context.md + + 2) [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › worktree terminal: keeps the workspace chosen during creation › Completion creates exactly the requested resource and preserves focus + + Error: expect(received).toBe(expected) // Object.is equality + + Expected: "/h/srv_e2e_worker_1/workspace/wks_2685c8a535a75a09" + Received: "/h/srv_e2e_worker_1/workspace/wks_9b35d52930eaaba6" + + Call Log: + - Timeout 10000ms exceeded while waiting on the predicate + + at ../support/helpers/route-assertions.ts:8 + + 6 | options?: { timeout?: number }, + 7 | ): Promise { + > 8 | await expect + | ^ + 9 | .poll( + 10 | () => { + 11 | const current = new URL(page.url()); + at expectAppRoute ([checkout]/packages/app/e2e/support/helpers/route-assertions.ts:8:3) + at [checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:128:7 + at verifyDelayedWorkspaceCreation ([checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:112:5) + at [checkout]/packages/app/e2e/browser/new-workspace-navigation-guard.spec.ts:12:7 + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + ../../.dev/qa-2986/worktree-before-results/new-workspace-navigation-g-73049-pace-chosen-during-creation-browser/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: browser-console (text/plain) ──────────────────────────────────────────────────── + [console:info] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold + [console:log] Running application "main" with appParams: + {rootTag: #root, hydrate: undefined} + Development-level warnings: ON. + Performance optimizations: OFF. + [co... + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #3: video (video/webm) ────────────────────────────────────────────────────────────── + ../../.dev/qa-2986/worktree-before-results/new-workspace-navigation-g-73049-pace-chosen-during-creation-browser/video.webm + ──────────────────────────────────────────────────────────────────────────────────────────────── + + Error Context: ../../.dev/qa-2986/worktree-before-results/new-workspace-navigation-g-73049-pace-chosen-during-creation-browser/error-context.md + + 3) [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › worktree empty: keeps the workspace chosen during creation › Completion creates exactly the requested resource and preserves focus + + Error: expect(received).toBe(expected) // Object.is equality + + Expected: "/h/srv_e2e_worker_2/workspace/wks_412333da4804914d" + Received: "/h/srv_e2e_worker_2/workspace/wks_23adbe2b7c4344f4" + + Call Log: + - Timeout 10000ms exceeded while waiting on the predicate + + at ../support/helpers/route-assertions.ts:8 + + 6 | options?: { timeout?: number }, + 7 | ): Promise { + > 8 | await expect + | ^ + 9 | .poll( + 10 | () => { + 11 | const current = new URL(page.url()); + at expectAppRoute ([checkout]/packages/app/e2e/support/helpers/route-assertions.ts:8:3) + at [checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:128:7 + at verifyDelayedWorkspaceCreation ([checkout]/packages/app/e2e/support/helpers/new-workspace-navigation.ts:112:5) + at [checkout]/packages/app/e2e/browser/new-workspace-navigation-guard.spec.ts:12:7 + + attachment #1: screenshot (image/png) ────────────────────────────────────────────────────────── + ../../.dev/qa-2986/worktree-before-results/new-workspace-navigation-g-50515-pace-chosen-during-creation-browser/test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: browser-console (text/plain) ──────────────────────────────────────────────────── + [console:info] %cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools font-weight:bold + [console:log] Running application "main" with appParams: + {rootTag: #root, hydrate: undefined} + Development-level warnings: ON. + Performance optimizations: OFF. + [co... + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #3: video (video/webm) ────────────────────────────────────────────────────────────── + ../../.dev/qa-2986/worktree-before-results/new-workspace-navigation-g-50515-pace-chosen-during-creation-browser/video.webm + ──────────────────────────────────────────────────────────────────────────────────────────────── + + Error Context: ../../.dev/qa-2986/worktree-before-results/new-workspace-navigation-g-50515-pace-chosen-during-creation-browser/error-context.md + + 3 failed + [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › worktree chat: keeps the workspace chosen during creation + [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › worktree terminal: keeps the workspace chosen during creation + [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › worktree empty: keeps the workspace chosen during creation +npm error Lifecycle script `test:e2e` failed with error: +npm error code 1 +npm error path [checkout]/packages/app +npm error workspace @getpaseo/app@0.8.0-beta.1 +npm error location [checkout]/packages/app +npm error command failed +npm error command sh -c playwright test --project=browser e2e/browser/new-workspace-navigation-guard.spec.ts --grep 'worktree ' --retries=0 --output=../../.dev/qa-2986/worktree-before-results diff --git a/draft-regression-after.txt b/draft-regression-after.txt new file mode 100644 index 0000000000..d002a55388 --- /dev/null +++ b/draft-regression-after.txt @@ -0,0 +1,17 @@ + +> @getpaseo/app@0.8.0-beta.1 test +> vitest run src/screens/new-workspace/background-handoff.test.ts --bail=1 + +(node:1618667) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) + + RUN v4.1.7 [checkout]/packages/app + +(node:1618756) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) + + Test Files 1 passed (1) + Tests 5 passed (5) + Start at 18:41:58 + Duration 745ms (transform 448ms, setup 26ms, import 640ms, tests 5ms, environment 0ms) + diff --git a/draft-regression-before.txt b/draft-regression-before.txt new file mode 100644 index 0000000000..291dc9d26c --- /dev/null +++ b/draft-regression-before.txt @@ -0,0 +1,60 @@ + +> @getpaseo/app@0.8.0-beta.1 test +> vitest run src/screens/new-workspace/background-handoff.test.ts --bail=1 + +(node:1614854) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) + + RUN v4.1.7 [checkout]/packages/app + +(node:1614987) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +stderr | src/screens/new-workspace/background-handoff.test.ts +[DraftStore] Failed to persist draft checkpoint ReferenceError: window is not defined + at [checkout]/node_modules/@react-native-async-storage/async-storage/lib/commonjs/AsyncStorage.js:69:52 + at [checkout]/node_modules/@react-native-async-storage/async-storage/lib/commonjs/AsyncStorage.js:39:21 + at new Promise () + at createPromise ([checkout]/node_modules/@react-native-async-storage/async-storage/lib/commonjs/AsyncStorage.js:37:10) + at Object.setItem ([checkout]/node_modules/@react-native-async-storage/async-storage/lib/commonjs/AsyncStorage.js:69:12) + at Object.setItem ([checkout]/packages/app/src/storage/validated-persist-storage.ts:39:28) + at flush ([checkout]/packages/app/src/stores/draft-store/persistence.ts:73:21) + at Object.setItem ([checkout]/packages/app/src/stores/draft-store/persistence.ts:85:16) + at setItem ([checkout]/node_modules/zustand/esm/middleware.mjs:358:20) + at Function.api.setState ([checkout]/node_modules/zustand/esm/middleware.mjs:366:12) + + ❯ |unit| src/screens/new-workspace/background-handoff.test.ts (5 tests | 1 failed) 9ms + × keeps a newer draft written while workspace creation was pending 2ms + +⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL |unit| src/screens/new-workspace/background-handoff.test.ts > createWorkspaceAgentInBackground > keeps a newer draft written while workspace creation was pending +AssertionError: expected '' to be 'a newer workspace idea' // Object.is equality + +- Expected ++ Received + +- a newer workspace idea + + ❯ src/screens/new-workspace/background-handoff.test.ts:95:25 + 93| saveDraft("a newer workspace idea"); + 94| await run(async () => undefined, submittedVersion); + 95| expect(draftText()).toBe("a newer workspace idea"); + | ^ + 96| }); + 97| + +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + + Test Files 1 failed (1) + Tests 1 failed | 4 passed (5) + Start at 18:41:26 + Duration 897ms (transform 545ms, setup 34ms, import 771ms, tests 9ms, environment 0ms) + +npm error Lifecycle script `test` failed with error: +npm error code 1 +npm error path [checkout]/packages/app +npm error workspace @getpaseo/app@0.8.0-beta.1 +npm error location [checkout]/packages/app +npm error command failed +npm error command sh -c vitest run src/screens/new-workspace/background-handoff.test.ts --bail=1 diff --git a/focus-preserved.png b/focus-preserved.png new file mode 100644 index 0000000000..4af0c5da97 Binary files /dev/null and b/focus-preserved.png differ diff --git a/format.txt b/format.txt new file mode 100644 index 0000000000..743ef476a7 --- /dev/null +++ b/format.txt @@ -0,0 +1,39 @@ + +> paseo@0.8.0-beta.1 format +> oxfmt . + +(node:1755746) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755946) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755924) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755803) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755920) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755898) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755891) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755863) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755837) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755804) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755927) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755813) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755935) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755796) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755834) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755921) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1755797) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +Finished in 1734ms on 4424 files using 16 threads. diff --git a/lint.txt b/lint.txt new file mode 100644 index 0000000000..d8364a687d --- /dev/null +++ b/lint.txt @@ -0,0 +1,6 @@ + +> paseo@0.8.0-beta.1 lint +> oxlint + +Found 0 warnings and 0 errors. +Finished in 776ms on 4146 files with 177 rules using 16 threads. diff --git a/presence-tests.txt b/presence-tests.txt new file mode 100644 index 0000000000..6bd3aed663 --- /dev/null +++ b/presence-tests.txt @@ -0,0 +1,17 @@ +(node:1580156) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1580170) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) + + RUN v4.1.7 [checkout]/packages/app + +(node:1580206) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1580207) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) + + Test Files 2 passed (2) + Tests 8 passed (8) + Start at 18:36:11 + Duration 956ms (transform 632ms, setup 56ms, import 868ms, tests 7ms, environment 0ms) + diff --git a/terminal-started.png b/terminal-started.png new file mode 100644 index 0000000000..92d2662131 Binary files /dev/null and b/terminal-started.png differ diff --git a/typecheck.txt b/typecheck.txt new file mode 100644 index 0000000000..4ca062b66e --- /dev/null +++ b/typecheck.txt @@ -0,0 +1,59 @@ + +> paseo@0.8.0-beta.1 typecheck +> npm run typecheck --workspaces --if-present + + +> @getpaseo/expo-two-way-audio@0.8.0-beta.1 typecheck +> tsgo --noEmit + + +> @getpaseo/highlight@0.8.0-beta.1 typecheck +> tsgo --noEmit + + +> @getpaseo/plugin@0.8.0-beta.1 typecheck +> tsgo --noEmit && tsgo -p tsconfig.examples.json --noEmit + + +> @getpaseo/protocol@0.8.0-beta.1 pretypecheck +> npm run generate:validators + + +> @getpaseo/protocol@0.8.0-beta.1 generate:validators +> node scripts/generate-validation-aot.mjs + +(node:1758389) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +generated src/generated/validation/ws-outbound.aot.ts from codegen/ws-outbound.compile.ts (WSOutboundMessageSchema) + +> @getpaseo/protocol@0.8.0-beta.1 typecheck +> tsgo --noEmit + + +> @getpaseo/client@0.8.0-beta.1 typecheck +> tsgo --noEmit + + +> @getpaseo/server@0.8.0-beta.1 typecheck +> tsgo -p tsconfig.server.typecheck.json --noEmit + + +> @getpaseo/app@0.8.0-beta.1 typecheck +> tsgo --noEmit + + +> @getpaseo/relay@0.8.0-beta.1 typecheck +> tsgo --noEmit + + +> @getpaseo/website@0.8.0-beta.1 typecheck +> tsgo --noEmit + + +> @getpaseo/desktop@0.8.0-beta.1 typecheck +> tsgo --noEmit -p tsconfig.json + + +> @getpaseo/cli@0.8.0-beta.1 typecheck +> tsgo --noEmit + diff --git a/verified-local.txt b/verified-local.txt new file mode 100644 index 0000000000..8063a50183 --- /dev/null +++ b/verified-local.txt @@ -0,0 +1,68 @@ + +> @getpaseo/app@0.8.0-beta.1 test:e2e +> playwright test --project=browser e2e/browser/new-workspace-navigation-guard.spec.ts --retries=0 --output=../../.dev/qa-2986/verified2-results + +(node:1685008) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1685008) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +[metro] (node:1685175) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +[metro] (Use `node --trace-warnings ...` to show where the warning was created) +[metro] Starting project at [checkout]/packages/app +[metro] Using src/app as the root directory for Expo Router. +[metro] Experimental Expo Autolinking module resolver is enabled. +[metro] React Compiler enabled +[metro] Metro is running in CI mode, reloads are disabled. Remove CI=true to enable watch mode. +[metro] Starting Metro Bundler +[metro] Waiting on http://localhost:44431 +[metro] Logs for your project will appear below. +[metro] Web packages/app/index.ts ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ 97.6% (5002/5062) +[metro] Web Bundled 2684ms packages/app/index.ts (5129 modules) +[e2e] Metro warmed on port 44431 + +Running 7 tests using 1 worker + +(node:1686980) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +(node:1686980) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +[e2e] Worker 0 daemon started on port 40745, home: [checkout]/.dev/qa-2986/verified2/worker-0 +[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1) +[metro] Web Bundled 167ms packages/app/index.ts (1 module) +[metro] LOG [web] Logs will appear in the browser console +[metro] Web Bundled 45ms packages/app/src/attachments/web/indexeddb-attachment-store.ts (1 module) + ✓ 1 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:8:9 › Delayed workspace creation › chat: keeps the workspace chosen during creation (14.4s) +[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1) +[metro] Web Bundled 180ms packages/app/index.ts (1 module) +[metro] Web Bundled 4ms packages/app/src/attachments/web/indexeddb-attachment-store.ts (1 module) +[metro] LOG [web] Logs will appear in the browser console + ✓ 2 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › chat: opens the created workspace when the user stays (13.1s) +[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1) +[metro] Web Bundled 174ms packages/app/index.ts (1 module) +[metro] Web Bundled 5ms packages/app/src/attachments/web/indexeddb-attachment-store.ts (1 module) +[metro] LOG [web] Logs will appear in the browser console + ✓ 3 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:8:9 › Delayed workspace creation › terminal: keeps the workspace chosen during creation (12.6s) +[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1) +[metro] Web Bundled 169ms packages/app/index.ts (1 module) +[metro] Web Bundled 4ms packages/app/src/attachments/web/indexeddb-attachment-store.ts (1 module) +[metro] LOG [web] Logs will appear in the browser console + ✓ 4 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › terminal: opens the created workspace when the user stays (12.2s) +[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1) +[metro] Web Bundled 256ms packages/app/index.ts (1 module) +[metro] Web Bundled 7ms packages/app/src/attachments/web/indexeddb-attachment-store.ts (1 module) +[metro] LOG [web] Logs will appear in the browser console + ✓ 5 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:8:9 › Delayed workspace creation › empty: keeps the workspace chosen during creation (12.7s) +[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1) +[metro] Web Bundled 192ms packages/app/index.ts (1 module) +[metro] Web Bundled 5ms packages/app/src/attachments/web/indexeddb-attachment-store.ts (1 module) +[metro] LOG [web] Logs will appear in the browser console + ✓ 6 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › empty: opens the created workspace when the user stays (11.9s) +[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1) +[metro] Web Bundled 175ms packages/app/index.ts (1 module) +[metro] Web Bundled 5ms packages/app/src/attachments/web/indexeddb-attachment-store.ts (1 module) +[metro] LOG [web] Logs will appear in the browser console + ✓ 7 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:16:7 › Delayed workspace creation › preserves a newer draft opened while creation is pending (14.8s) +[e2e] Worker 0 daemon stopped +[e2e] Metro stopped + + 7 passed (1.7m) diff --git a/workspace-tab-tests.txt b/workspace-tab-tests.txt new file mode 100644 index 0000000000..2c698dd6d3 --- /dev/null +++ b/workspace-tab-tests.txt @@ -0,0 +1,17 @@ + +> @getpaseo/app@0.8.0-beta.1 test +> vitest run src/composer/draft/workspace-tab.test.ts --bail=1 + +(node:1688830) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) + + RUN v4.1.7 [checkout]/packages/app + +(node:1688877) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) + + Test Files 1 passed (1) + Tests 5 passed (5) + Start at 18:49:05 + Duration 452ms (transform 297ms, setup 27ms, import 337ms, tests 3ms, environment 0ms) +