PASS #34487 merge commit 50952beccc is an ancestor of main d63db06436 PASS PR head ee67bfb221 does not contain #34487 (it is a parallel fix, not a rebase of it) PASS #34487 is MERGED with merge commit 50952beccc PASS issue #34439 (the issue this PR fixes) is CLOSED as COMPLETED by #34487 PASS main: No project stored at the real path behind a symlinked scratch is No project, is reused by ensureScratchProject, is the advertised scratch root, and no extra No project is created (with and without an older duplicate) Test Files 1 passed (1) Tests 2 passed | 14 skipped (16) PASS main: a No project thread whose folder is recorded under the symlink spelling can be turned into a project Test Files 1 passed (1) Tests 1 passed | 151 skipped (152) PASS pre-#34487 52ba328982: the same No project tests FAIL (scratch checks compare path spellings only) × prove-34447: No project at the real path behind a symlinked scratch stays No project (duplicate: false) 63ms × prove-34447: No project at the real path behind a symlinked scratch stays No project (duplicate: true) 33ms Test Files 1 failed (1) Tests 2 failed | 13 skipped (15) AssertionError: expected false to be true at: 621| assert.isTrue(yield* scratch.isScratchProject(projectId)); PASS pre-#34487 52ba328982: the same promotion test FAILS (folder check compares dirname to scratchRoot as text) × prove-34447: promotes a No project thread recorded under the symlinked scratch spelling 66ms Test Files 1 failed (1) Tests 1 failed | 151 skipped (152) [10:11:02.713] ERROR (#43): Error [ScratchThreadPromotionError]: Only a No project thread with its own folder can become a project. VERDICT: CLOSE (already-fixed) - main has this PR's symlinked-scratch No project behavior via #34487