note: You are running `vp test` as a Vite+ built-in command. If you meant to run the test npm script, use `vpr test` instead. RUN v5.0.1 /home/ubuntu/wt/worktree-git-11/apps/server ·································stdout | src/storageCleanup.test.ts > removes clean submodules recursively, including deinitialized repositories [09:06:41.938] INFO (#45): storage cleanup removed worktree { threadId: 'thread-1' } ·stdout | src/storageCleanup.test.ts > keeps nested submodule files protected by the current keep rule [09:06:43.169] INFO (#270): storage cleanup removed worktree { threadId: 'thread-1' } stdout | src/storageCleanup.test.ts > keeps nested submodule files protected by the current keep rule [09:06:43.183] ERROR (#226): Error [AssertionError]: expected { outcome: 'removed', contents: null } to deeply equal { outcome: 'kept', …(1) } at /home/ubuntu/wt/worktree-git-11/apps/server/src/storageCleanup.test.ts:573:10 { actual: { outcome: 'removed', contents: null }, expected: { outcome: 'kept', contents: 'notes after deinit\n' }, showDiff: true, operator: 'deepStrictEqual', [cause]: undefined } x··stdout | src/storageCleanup.test.ts > preserves late tracked edits when submodules were never initialized [09:06:45.284] WARN (#1213): storage cleanup failed for worktree { threadId: 'thread-1', error: { _tag: 'GitCommandError', operation: 'StorageCleanup.cleanupGit', command: 'git worktree remove', cwd: '/tmp/cleanup-repo-o1GRQt', detail: "fatal: '/tmp/storage-cleanup-Pdnzpq/worktrees/feature' contains modified or untracked files, use --force to delete it" } } ···························································stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > measures nested regular files without following symlinks [09:06:51.822] INFO (#5983): storage cleanup removed worktree { threadId: 'thread-1' } ·stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > still removes a worktree when measuring its size fails [09:06:52.011] INFO (#6093): storage cleanup removed worktree { threadId: 'thread-1' } ·····stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > reads the thread snapshot once per sweep, not per worktree [09:06:52.685] INFO (#6502): storage cleanup removed worktree { threadId: 'thread-1' } ·stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > session updates to running or ready during a sweep make 1 sweep(s) in total [09:06:52.854] INFO (#6607): storage cleanup removed worktree { threadId: 'thread-1' } ·stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > session updates to stopped or error during a sweep make 2 sweep(s) in total [09:06:53.019] INFO (#6712): storage cleanup removed worktree { threadId: 'thread-1' } ·stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > does not measure a worktree kept for an open provider session [09:06:53.207] INFO (#6817): storage cleanup removed worktree { threadId: 'thread-1' } ·stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > compares the checked-out branch without a full status [09:06:53.393] WARN (#6942): storage cleanup failed for worktree { threadId: 'thread-1', error: { _tag: 'GitCommandError', operation: 'StorageCleanup.branchChanged', command: 'git', cwd: '/tmp/storage-cleanup-NAgnAt/worktrees/feature', detail: 'Git index is locked. Status will resume when the index lock is removed.' } } stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > compares the checked-out branch without a full status [09:06:53.487] INFO (#6942): storage cleanup removed worktree { threadId: 'thread-1' } ···stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > applies "uncommitted-changes" [09:06:53.782] INFO (#7195): storage cleanup removed worktree { threadId: 'thread-1' } ·stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > applies "tracked-changes" [09:06:53.962] INFO (#7300): storage cleanup removed worktree { threadId: 'thread-1' } ···stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > applies "tracked-changes" [09:06:54.403] INFO (#7546): storage cleanup removed worktree { threadId: 'thread-1' } ····stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > preserves tracked edits written after the final status check [09:06:54.959] WARN (#7860): storage cleanup failed for worktree { threadId: 'thread-1', error: { _tag: 'GitCommandError', operation: 'StorageCleanup.cleanupGit', command: 'git worktree remove', cwd: '/tmp/cleanup-repo-I0WwBo', detail: "fatal: '/tmp/storage-cleanup-tWjLe3/worktrees/feature' contains modified or untracked files, use --force to delete it" } } ·stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > streams the current report and subsequent runs [09:06:55.129] INFO (#7970): storage cleanup removed worktree { threadId: 'thread-1' } ·stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > caps entries while preserving totals and prioritizing removals [09:06:55.334] INFO (#8075): storage cleanup removed worktree { threadId: 'thread-1' } ···stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > serializes concurrent requests and returns each run's report [09:06:55.853] INFO (#8306): storage cleanup removed worktree { threadId: 'thread-1' } ··stdout | src/storageCleanup.test.ts > storage cleanup reports and local file policies > reports git failures without aborting the remaining categories [09:06:56.143] WARN (#8466): storage cleanup failed for worktree { threadId: 'thread-1', error: { _tag: 'GitCommandError', operation: 'StorageCleanup.cleanupGit', command: 'git worktree remove', cwd: '/tmp/cleanup-repo-jOWH20', detail: 'fatal: cannot remove a locked working tree;' } } ··············stdout | src/storageCleanup.test.ts > keeps saved usage data when removing a settled checkout [09:06:58.103] INFO (#9729): storage cleanup removed worktree { threadId: 'thread-1' } ·stdout | src/storageCleanup.test.ts > leaves settled cleanup to the regular sweeps after thread.settled [09:06:58.268] INFO (#9834): storage cleanup removed worktree { threadId: 'thread-1' } ·stdout | src/storageCleanup.test.ts > leaves settled cleanup to the regular sweeps after stopped [09:06:58.464] INFO (#9939): storage cleanup removed worktree { threadId: 'thread-1' } ·stdout | src/storageCleanup.test.ts > leaves settled cleanup to the regular sweeps after ready [09:06:58.705] INFO (#10044): storage cleanup removed worktree { threadId: 'thread-1' } · ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ FAIL src/storageCleanup.test.ts > keeps nested submodule files protected by the current keep rule AssertionError: expected { outcome: 'removed', contents: null } to deeply equal { outcome: 'kept', …(1) } - Expected + Received { - "contents": "notes after deinit - ", - "outcome": "kept", + "contents": null, + "outcome": "removed", } ❯ src/storageCleanup.test.ts:573:10 571| ? yield* fs.readFileString(`${child}/notes.txt`) 572| : null, 573| }).toEqual({ outcome: "kept", contents: "notes after deinit\n" }… | ^ 574| }), 575| ), ❯ IteratorImpl.~effect/Effect/successCont ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1422:28 ❯ ExitPrimitive.~effect/Effect/evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/core.ts:585:30 ❯ FiberImpl.runLoop ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:654:41 ❯ FiberImpl.evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:595:23 ❯ FiberImpl.evaluate ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:589:27 ❯ ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1159:17 ❯ ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/Effect.ts:26055:13 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed (1) Tests 1 failed | 141 passed (142) Start at 09:06:31 Duration 27.69s (tests 64%, transform 25%, import 11%) JSON report written to /tmp/worktree-git-11/20368-tests-r3-full.json