mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-25 10:42:45 +00:00
Record workspace draft context repair QA
This commit is contained in:
@@ -2,7 +2,8 @@
|
||||
|
||||
Contribution: Christoph Leiter's [PR #2986](https://github.com/getpaseo/paseo/pull/2986).
|
||||
Baseline: current main `433e67b18b7964a92d593bdc78c518143accfc8b`.
|
||||
Verified implementation: `9457bb6f4053b6ab36e7eabcae0a2902176635c8`.
|
||||
Original recorded implementation: `9457bb6f4053b6ab36e7eabcae0a2902176635c8`.
|
||||
Latest verified implementation: `1b96fa4fdcf147f7d412f210ff45170a9112da8d`.
|
||||
|
||||
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.
|
||||
@@ -32,6 +33,22 @@ then opening the new workspace reveals `captured: Hello from the navigation guar
|
||||

|
||||

|
||||
|
||||
## Context ownership repair verification
|
||||
|
||||
The latest head also preserves a newer fork draft's setup and chat-history context,
|
||||
including context-only edits that do not change the text version. Cleanup captures
|
||||
ownership before workspace creation begins. A regression using the previous head's
|
||||
background helper fails; all seven cleanup tests pass on the repair.
|
||||
|
||||
All ten browser journeys were rerun together and recorded on this repair:
|
||||
[complete results](context-e2e.txt), [newer-draft recording](after-context-repair-newer-draft.webm).
|
||||
These recordings repeat the real-daemon method and platform/provider limitations above.
|
||||
The fork context race is verified through the real draft stores in the focused unit test;
|
||||
the browser newer-draft journey covers text preservation.
|
||||
|
||||
[Context regression before](context-red.txt), [after](context-green.txt),
|
||||
[typecheck](context-typecheck.txt), [lint](context-lint.txt), [format](context-format.txt).
|
||||
|
||||
## Results
|
||||
|
||||
- Current-main baseline: both original local journeys fail on the wrong final route.
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,85 @@
|
||||
|
||||
> @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/context-fix-results
|
||||
|
||||
(node:2099649) 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:2099649) 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:2100598) 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:45237
|
||||
[metro] Logs for your project will appear below.
|
||||
[metro] | (node:2102687) 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] Web packages/app/index.ts ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ 97.6% (5002/5062)
|
||||
[metro] Web Bundled 2609ms packages/app/index.ts (5129 modules)
|
||||
[e2e] Metro warmed on port 45237
|
||||
|
||||
Running 10 tests using 1 worker
|
||||
|
||||
(node:2104797) 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:2104797) 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 38113, home: <checkout>/.dev/qa-2986/context-fix/worker-0
|
||||
[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1)
|
||||
[metro] Web Bundled 175ms packages/app/index.ts (1 module)
|
||||
[metro] LOG [web] Logs will appear in the browser console
|
||||
[metro] Web Bundled 52ms 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 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
|
||||
✓ 2 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › worktree chat: keeps the workspace chosen during creation (14.3s)
|
||||
[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1)
|
||||
[metro] Web Bundled 192ms packages/app/index.ts (1 module)
|
||||
[metro] Web Bundled 11ms 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:14:9 › Delayed workspace creation › chat: opens the created workspace when the user stays (13.7s)
|
||||
[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1)
|
||||
[metro] Web Bundled 343ms packages/app/index.ts (1 module)
|
||||
[metro] Web Bundled 6ms 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:8:9 › Delayed workspace creation › terminal: keeps the workspace chosen during creation (15.4s)
|
||||
[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1)
|
||||
[metro] Web Bundled 230ms 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:11:9 › Delayed workspace creation › worktree terminal: keeps the workspace chosen during creation (14.0s)
|
||||
[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1)
|
||||
[metro] Web Bundled 171ms 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:14:9 › Delayed workspace creation › terminal: opens the created workspace when the user stays (12.6s)
|
||||
[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1)
|
||||
[metro] Web Bundled 214ms packages/app/index.ts (1 module)
|
||||
[metro] Web Bundled 8ms 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:8:9 › Delayed workspace creation › empty: keeps the workspace chosen during creation (13.4s)
|
||||
[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1)
|
||||
[metro] Web Bundled 225ms 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
|
||||
✓ 8 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:11:9 › Delayed workspace creation › worktree empty: keeps the workspace chosen during creation (13.7s)
|
||||
[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1)
|
||||
[metro] Web Bundled 179ms 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
|
||||
✓ 9 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:14:9 › Delayed workspace creation › empty: opens the created workspace when the user stays (12.9s)
|
||||
[metro] Web packages/app/index.ts ░░░░░░░░░░░░░░░░ 0.0% (0/1)
|
||||
[metro] Web Bundled 282ms 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
|
||||
✓ 10 [browser] › e2e/browser/new-workspace-navigation-guard.spec.ts:19:7 › Delayed workspace creation › preserves a newer draft opened while creation is pending (15.9s)
|
||||
[e2e] Worker 0 daemon stopped
|
||||
[e2e] Metro stopped
|
||||
|
||||
10 passed (2.5m)
|
||||
@@ -0,0 +1,39 @@
|
||||
|
||||
> paseo@0.8.0-beta.1 format
|
||||
> oxfmt .
|
||||
|
||||
(node:2132879) 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:2132992) 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:2132926) 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:2133009) 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:2132958) 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:2132952) 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:2132991) 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:2132920) 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:2132939) 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:2132928) 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:2132986) 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:2132927) 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:2132945) 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:2133003) 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:2132990) 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:2132965) 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:2132919) 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 1933ms on 4424 files using 16 threads.
|
||||
@@ -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:2135683) 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:2135794) 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 7 passed (7)
|
||||
Start at 19:13:25
|
||||
Duration 1.22s (transform 773ms, setup 33ms, import 1.07s, tests 8ms, environment 0ms)
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
> paseo@0.8.0-beta.1 lint
|
||||
> oxlint
|
||||
|
||||
Found 0 warnings and 0 errors.
|
||||
Finished in 1.3s on 4146 files with 177 rules using 16 threads.
|
||||
@@ -0,0 +1,54 @@
|
||||
|
||||
> @getpaseo/app@0.8.0-beta.1 test
|
||||
> vitest run src/screens/new-workspace/background-handoff.baseline.test.ts --bail=1
|
||||
|
||||
(node:2177266) 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:2177513) 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.baseline.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 (<anonymous>)
|
||||
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.baseline.test.ts (1 test | 1 failed) 7ms
|
||||
× preserves context added to a newer draft without editing its text 3ms
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
|
||||
|
||||
FAIL |unit| src/screens/new-workspace/background-handoff.baseline.test.ts > createWorkspaceAgentInBackground > preserves context added to a newer draft without editing its text
|
||||
AssertionError: Target cannot be null or undefined.
|
||||
❯ src/screens/new-workspace/background-handoff.baseline.test.ts:70:83
|
||||
68| });
|
||||
69| });
|
||||
70| expect(useWorkspaceAttachmentsStore.getState().attachmentsByScope[…
|
||||
| ^
|
||||
71| expect(useWorkspaceDraftSubmissionStore.getState().setupByDraftId[…
|
||||
72| "/work/new-repo",
|
||||
|
||||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
|
||||
|
||||
|
||||
Test Files 1 failed (1)
|
||||
Tests 1 failed (1)
|
||||
Start at 19:14:12
|
||||
Duration 1.14s (transform 716ms, setup 40ms, import 996ms, tests 7ms, 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.baseline.test.ts --bail=1
|
||||
@@ -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:2135571) 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
|
||||
|
||||
Reference in New Issue
Block a user