# #21099 native Windows verification, head 0ab022854c

Windows 11 Home 10.0.26200, NTFS (E:), Node v24.13.1. Candidate = PR head 0ab022854c (main 680152e27b merged in). Baseline = GitVcsDriverCore.ts and storageCleanup.ts restored from main 680152e27b, tests unchanged. Candidate bytes restored afterwards and checked against sha256 (all OK).

Git: C:\Program Files\Git\cmd\git.exe (2.55.0.windows.1) and PortableGit 2.47.1.windows.1 from the git-for-windows release (signed by Johannes Schindelin), first on PATH per run.

## Focused: cand-2.55
```
where git: /c/Program Files/Git/cmd/git
git version 2.55.0.windows.1
 × src/storageCleanup.test.ts > preserves late tracked edits when submodules were never initialized 12370ms
 ✓ src/storageCleanup.test.ts > storage cleanup reports and local file policies > preserves tracked edits written after the final status check 6983ms
 ✓ cleans up links left by successful worktree removal, preserving ordinary files: false 74ms
 ✓ cleans up links left by successful worktree removal, preserving ordinary files: true 61ms
 ✓ keeps a worktree whose untracked files status is configured to hide 1414ms
 ✓ force-removes a worktree without deleting what its junctions point to 1339ms
 ✓ keeps the junctions of a worktree that git refuses to remove 1382ms
 ✓ SCRATCH keeps a locked worktree and its junction targets, force=false 1327ms
 ✓ SCRATCH keeps a locked worktree and its junction targets, force=true 1361ms
      Tests  1 failed | 8 passed | 267 skipped (276)
```
## Focused: cand-2.47.1
```
where git: /e/w/git-2.47.1/cmd/git
git version 2.47.1.windows.1
 × src/storageCleanup.test.ts > preserves late tracked edits when submodules were never initialized 2230ms
 ✓ src/storageCleanup.test.ts > storage cleanup reports and local file policies > preserves tracked edits written after the final status check 1217ms
 ✓ cleans up links left by successful worktree removal, preserving ordinary files: false 69ms
 ✓ cleans up links left by successful worktree removal, preserving ordinary files: true 57ms
 ✓ keeps a worktree whose untracked files status is configured to hide 1347ms
 ✓ force-removes a worktree without deleting what its junctions point to 1378ms
 ✓ keeps the junctions of a worktree that git refuses to remove 1330ms
 ✓ SCRATCH keeps a locked worktree and its junction targets, force=false 1348ms
 ✓ SCRATCH keeps a locked worktree and its junction targets, force=true 1349ms
      Tests  1 failed | 8 passed | 267 skipped (276)
```
## Focused: base-2.55
```
where git: /c/Program Files/Git/cmd/git
git version 2.55.0.windows.1
 × src/storageCleanup.test.ts > preserves late tracked edits when submodules were never initialized 2113ms
 ✓ src/storageCleanup.test.ts > storage cleanup reports and local file policies > preserves tracked edits written after the final status check 1173ms
 ✓ cleans up links left by successful worktree removal, preserving ordinary files: false 68ms
 ✓ cleans up links left by successful worktree removal, preserving ordinary files: true 56ms
 ✓ keeps a worktree whose untracked files status is configured to hide 1143ms
 ✓ force-removes a worktree without deleting what its junctions point to 1204ms
 ✓ keeps the junctions of a worktree that git refuses to remove 1172ms
 ✓ SCRATCH keeps a locked worktree and its junction targets, force=false 1327ms
 ✓ SCRATCH keeps a locked worktree and its junction targets, force=true 1253ms
      Tests  1 failed | 8 passed | 267 skipped (276)
```
## Focused: base-2.47.1
```
where git: /e/w/git-2.47.1/cmd/git
git version 2.47.1.windows.1
 × src/storageCleanup.test.ts > preserves late tracked edits when submodules were never initialized 2006ms
 ✓ src/storageCleanup.test.ts > storage cleanup reports and local file policies > preserves tracked edits written after the final status check 1108ms
 ✓ cleans up links left by successful worktree removal, preserving ordinary files: false 70ms
 ✓ cleans up links left by successful worktree removal, preserving ordinary files: true 59ms
 ✓ keeps a worktree whose untracked files status is configured to hide 1189ms
 × force-removes a worktree without deleting what its junctions point to 1174ms
 ✓ keeps the junctions of a worktree that git refuses to remove 1203ms
 ✓ SCRATCH keeps a locked worktree and its junction targets, force=false 1286ms
 ✓ SCRATCH keeps a locked worktree and its junction targets, force=true 1329ms
      Tests  2 failed | 7 passed | 267 skipped (276)
```
SCRATCH tests (lock + zero/one force) were injected for these runs only and are not in the PR.

## Baseline 2.47.1 failure
```
 FAIL  src/vcs/GitVcsDriverCore.test.ts > GitVcsDriver core integration > worktree operations > force-removes a worktree without deleting what its junctions point to
PlatformError: NotFound: FileSystem.readFile (E:\w\winsweep\tmp\git-worktree-link-target-sVuKCS\keep.txt)
```
## Full files (GitVcsDriverCore.test.ts + storageCleanup.test.ts)
```
full-2.55: Tests  35 failed | 237 passed | 2 skipped (274)
full-2.47.1: Tests  35 failed | 237 passed | 2 skipped (274)
fullbase-2.55: Tests  35 failed | 237 passed | 2 skipped (274)
fullbase-2.47.1: Tests  36 failed | 236 passed | 2 skipped (274)
```
Failing only with the candidate: none, on either Git version. Failing only on baseline: 2.47.1 'force-removes a worktree without deleting what its junctions point to'.

The 35 failures shared by candidate and baseline (identical sets on both Git versions):
```
src/storageCleanup.test.ts > keeps nested submodule files protected by the current keep rule
src/storageCleanup.test.ts > keeps submodules when stored repository metadata is malformed
src/storageCleanup.test.ts > keeps unpushed submodule history after checkout and deinitialization
src/storageCleanup.test.ts > orphan worktree reports > compares thread paths with host casing rules and excludes existing projects (linux)
src/storageCleanup.test.ts > orphan worktree reports > continues reporting when a project root cannot be probed
src/storageCleanup.test.ts > orphan worktree reports > keeps orphan results visible when thread results fill the report
src/storageCleanup.test.ts > orphan worktree reports > reports a linked orphan's size without removing its files (direct)
src/storageCleanup.test.ts > orphan worktree reports > reports a linked orphan's size without removing its files (nested)
src/storageCleanup.test.ts > orphan worktree reports > reports ordinary folders with an honest reason and keeps their files
src/storageCleanup.test.ts > preserves late tracked edits when submodules were never initialized
src/storageCleanup.test.ts > removes clean submodules recursively, including deinitialized repositories
src/storageCleanup.test.ts > storage cleanup reports and local file policies > applies "any-local-files"
src/storageCleanup.test.ts > storage cleanup reports and local file policies > applies "any-local-files"
src/storageCleanup.test.ts > storage cleanup reports and local file policies > applies "any-local-files"
src/storageCleanup.test.ts > storage cleanup reports and local file policies > applies "tracked-changes"
src/storageCleanup.test.ts > storage cleanup reports and local file policies > applies "tracked-changes"
src/storageCleanup.test.ts > storage cleanup reports and local file policies > applies "tracked-changes"
src/storageCleanup.test.ts > storage cleanup reports and local file policies > applies "uncommitted-changes"
src/storageCleanup.test.ts > storage cleanup reports and local file policies > applies "uncommitted-changes"
src/storageCleanup.test.ts > storage cleanup reports and local file policies > applies "uncommitted-changes"
src/storageCleanup.test.ts > storage cleanup reports and local file policies > automatically removes an eligible archived thread checkout
src/storageCleanup.test.ts > storage cleanup reports and local file policies > caps entries while preserving totals and prioritizing removals
src/storageCleanup.test.ts > storage cleanup reports and local file policies > compares the checked-out branch without a full status
src/storageCleanup.test.ts > storage cleanup reports and local file policies > does not measure a worktree kept for an open provider session
src/vcs/GitVcsDriverCore.test.ts > GitVcsDriver core integration > repository status > commits selected files from a nested project directory
src/vcs/GitVcsDriverCore.test.ts > GitVcsDriver core integration > review diff previews > detects an unstaged rename with edits without mutating a split index
src/vcs/GitVcsDriverCore.test.ts > GitVcsDriver core integration > review diff previews > keeps the preceding second cached in review previews (split: true)
src/vcs/GitVcsDriverCore.test.ts > GitVcsDriver core integration > review diff previews > keeps untracked filenames with pathspec magic in the review
src/vcs/GitVcsDriverCore.test.ts > GitVcsDriver core integration > review diff previews > preserves same-size edits with a racy review index (1700000000, split: true)
src/vcs/GitVcsDriverCore.test.ts > GitVcsDriver core integration > review diff previews > preserves same-size edits with a racy review index (1700000000.9999, split: true)
src/vcs/GitVcsDriverCore.test.ts > GitVcsDriver core integration > structured errors > names a refused key among several methods rather than an unreachable remote
src/vcs/GitVcsDriverCore.test.ts > GitVcsDriver core integration > structured errors > names a refused key rather than an unreachable remote
src/vcs/GitVcsDriverCore.test.ts > GitVcsDriver core integration > structured errors > names a refused keyboard-interactive attempt rather than an unreachable remote
src/vcs/GitVcsDriverCore.test.ts > GitVcsDriver core integration > structured errors > names a rejected password rather than an unreachable remote
src/vcs/GitVcsDriverCore.test.ts > GitVcsDriver core integration > structured errors > names an untrusted host key rather than an unreachable remote
```
