Native readdir validation checkpoint (2026-10-14): walker source 26a428426, corpus/control source a8be1de85, and 837 Git-verified execution/diagnostic artifacts are on main through ecd6216cd. Native build 56/56 and all owned ALPN, fetch-timing, init and recursive traversal controls pass. The final 140-file unchanged filesystem/FileHandle batch and every validator pass: 393 cases, 126 process checks, zero failures, 36 original case skips and three complete-file skips. The earlier twelve-file batch’s one synchronous string-result deadline failure remains recorded; a fresh complete-file recheck passes 262 cases with seven skips, and the later wider batch also passes that file. Original iterations/assertions/deadlines remain unchanged. Timing measurements are diagnostic, vary with host/runtime conditions, and are not attributed wholly to the algorithm; installed Bun is not a rebuilt pinned reference. #896 retains robust stress/pinned-reference acceptance. New #897 tracks observed undefined buffer Dirent names and ignored recursive async name encodings. Full feature/suite/all-platform acceptance remains open.
The unchanged pinned js/node/fs/fs.test.ts does not currently pass consistently within its original recursive readdir stress deadlines on Darwin arm64.
During native FileHandle transfer validation, the 119-file filesystem batch had 390 passing cases, 105 process checks and three failures in fs.test.ts: an async recursive x100 timeout, a subsequent fd-count mismatch while earlier work remained outstanding, and a recursive withFileTypes sync x100 timeout. Resource-probe deadlines also failed under host load.
A separate fresh-report complete-file recheck, with original bytes, iterations and deadlines unchanged, produced 260 passing cases, seven original skips and two synchronous recursive x100 deadline failures. The fd-count mismatch did not recur. Earlier source/evidence checkpoints ran this full file successfully, including the initial native-transfer implementation before the expanded lifecycle fixes; cause remains unproven. Native FileHandle/stream/transfer changes do not directly modify recursive readdir implementations.
Acceptance:
- Establish performance and descriptor-lifetime behavior against the pinned runtime on the same host and fixture tree.
- Diagnose the complete native recursive traversal and allocation paths, including directory closing and pending async work after test timeout.
- Implement genuine algorithm/ownership fixes where needed; preserve x100 iteration counts and the original 10-second deadlines.
- Verify the entire unchanged fs.test.ts and wider filesystem batch; retain stressed failures and separate subsequent evidence.
- Do not claim all-filesystem or full-suite acceptance from the passing FileHandle selection.
Part of #66; related #878 directory ownership and #895 native FileHandle transfer. The final #895 controls and all 21 unchanged FileHandle originals pass, including early worker termination cleanup and the previously crashing worker-read original.