Current local head: 2e0a27b9c1ee0c1c0c32eeeafdd10e6b074ef098 Baseline production: main 1451e7cb23; same trimmed tests ===== 17340.tests-after.log ===== 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/ssh-relay-remote-07 stdout | apps/server/src/project/RepositoryIdentityResolver.test.ts > RepositoryIdentityResolverLive > resolves a bare clone to its Git directory and the same identity as a checkout [08:35:54.166] ERROR (#81): Error [AssertionError]: expected null not to be null at /home/ubuntu/wt/ssh-relay-remote-07/apps/server/src/project/RepositoryIdentityResolver.test.ts:313:32 { actual: null, expected: null, showDiff: true, operator: 'notStrictEqual', [cause]: undefined } stdout | apps/server/src/project/RepositoryIdentityResolver.test.ts > RepositoryIdentityResolverLive > resolves a dot-bare to its Git directory and the same identity as a checkout [08:35:54.218] ERROR (#113): Error [AssertionError]: expected null not to be null at /home/ubuntu/wt/ssh-relay-remote-07/apps/server/src/project/RepositoryIdentityResolver.test.ts:313:32 { actual: null, expected: null, showDiff: true, operator: 'notStrictEqual', [cause]: undefined } ❯ apps/server/src/project/RepositoryIdentityResolver.test.ts (16 tests | 2 failed) 566ms ❯ RepositoryIdentityResolverLive (16) × resolves a bare clone to its Git directory and the same identity as a checkout 56ms × resolves a dot-bare to its Git directory and the same identity as a checkout 48ms ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 2 ⎯⎯⎯⎯⎯⎯⎯ FAIL apps/server/src/project/RepositoryIdentityResolver.test.ts > RepositoryIdentityResolverLive > resolves a bare clone to its Git directory and the same identity as a checkout FAIL apps/server/src/project/RepositoryIdentityResolver.test.ts > RepositoryIdentityResolverLive > resolves a dot-bare to its Git directory and the same identity as a checkout AssertionError: expected null not to be null ❯ apps/server/src/project/RepositoryIdentityResolver.test.ts:313:32 311| identity?.rootPath === undefined ? "" : NodeFS.realpathSyn… 312| 313| expect(identity).not.toBeNull(); | ^ 314| expect(identity?.canonicalKey).toBe(checkoutIdentity?.canoni… 315| expect(normalizeResolvedPath(resolvedIdentityRoot)).toBe( ❯ 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 ❯ Array. node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:1159:17 ❯ FiberImpl.evaluate node_modules/.pnpm/effect@4.0.5/node_modules/effect/src/internal/effect.ts:618:21 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/2]⎯ Test Files 1 failed | 1 passed (2) Tests 2 failed | 23 passed (25) Start at 08:35:52 Duration 2.18s (transform 44%, import 32%, tests 18%, setup 5%) ===== 17340.impl-final-tests.log ===== 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/ssh-relay-remote-07 Test Files 2 passed (2) Tests 25 passed (25) Start at 08:41:15 Duration 2.48s (transform 45%, import 32%, tests 19%, setup 4%) ===== 17340.impl-cache-proof.log ===== Nested checkout directories: shared lookup, zero-call cache hit, and cross-path refresh passed Bare container and Git directory: shared lookup, zero-call cache hit, and cross-path refresh passed ===== 17340.grouping-smoke.log ===== {"revision":"before","layout":"plain bare","mode":"repository","groups":2,"checkoutMetadataRejected":true} {"revision":"before","layout":"plain bare","mode":"repository_path","groups":2,"checkoutMetadataRejected":true} {"revision":"before","layout":"pointer container","mode":"repository","groups":2,"checkoutMetadataRejected":true} {"revision":"before","layout":"pointer container","mode":"repository_path","groups":2,"checkoutMetadataRejected":true} {"revision":"before","layout":".bare directory","mode":"repository","groups":2,"checkoutMetadataRejected":true} {"revision":"before","layout":".bare directory","mode":"repository_path","groups":2,"checkoutMetadataRejected":true} {"revision":"after","layout":"plain bare","mode":"repository","groups":1,"checkoutMetadataRejected":true} {"revision":"after","layout":"plain bare","mode":"repository_path","groups":1,"checkoutMetadataRejected":true} {"revision":"after","layout":"pointer container","mode":"repository","groups":1,"checkoutMetadataRejected":true} {"revision":"after","layout":"pointer container","mode":"repository_path","groups":1,"checkoutMetadataRejected":true} {"revision":"after","layout":".bare directory","mode":"repository","groups":1,"checkoutMetadataRejected":true} {"revision":"after","layout":".bare directory","mode":"repository_path","groups":1,"checkoutMetadataRejected":true} PASS: real Git → actual server resolver → shared client grouping; separate synthetic environment IDs; no network, mocks, browser, or live state.