test: resolve the Windows temp directory to its long name - #9573
Conversation
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: unavailable · PR result: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
961dded to
9680435
Compare
9680435 to
e13884f
Compare
992061d to
6c57fd2
Compare
6c57fd2 to
dae7042
Compare
dae7042 to
7fb0412
Compare
7fb0412 to
1fc7279
Compare
1fc7279 to
42fa62e
Compare
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This is a focused, test-only Windows portability change that canonicalizes temporary directories and avoids unsupported POSIX test primitives, with no product-path behavior changes. The new shared test setup also adds a file-level suppression for an Effect static-analysis diagnostic, warranting explicit human review. No code changes detected at You can add or adjust custom eligibility rules. Learn more. |
|
Same failure on macOS, from the other side: #9400 and #9401 fix those two in place by resolving the temp dir before asserting (#9389, #9388). Your setup file would cover them as well: with So if you would rather drop the |
e166947 to
88a2b95
Compare
46825fd to
04684f5
Compare
GitHub's Windows runners set TEMP to the 8.3 short form (C:\Users\RUNNER~1\...), and every path that goes through git or realpath comes back in the long form, so equality checks between a temp directory and its canonical form fail. A shared setup file, run by every package's vitest config, points TEMP/TMP at the long form once so os.tmpdir() and everything built on it agree with the canonical spelling. bootstrap.test opens the platform null device instead of /dev/null and skips the FIFO case, since Windows has neither. Co-Authored-By: Claude Code <noreply@anthropic.com>
04684f5 to
5032af7
Compare
GitHub's Windows runners set TEMP to the 8.3 short form
(C:\Users\RUNNER~1...), and every path that goes through git or realpath
comes back in the long form, so equality checks between a temp directory and
its canonical form fail. A shared setup file, run by every package's vitest
config, points TEMP/TMP at the long form once so os.tmpdir() and everything
built on it agree with the canonical spelling.
bootstrap.test opens the platform null device instead of /dev/null and skips
the FIFO case, since Windows has neither.
Part of the Windows test-suite stack rooted at #9564; the manual Windows lane comes from #9538.
Model: Claude Fable 5 in Claude Code.
🤖 Generated with Claude Code
Note
Resolve Windows temp directory to long name in test setup
TEMPandTMP; non-Windows hosts and resolution failures are left unchangedNULvs/dev/null) and skips the FIFO timeout test on WindowsTEMP/TMPpaths; if resolution fails the environment is untouchedMacroscope summarized 5032af7.
Note
Low Risk
Test-only environment and platform-guard changes; production runtime behavior is unchanged aside from optional Vitest setup on Windows.
Overview
Adds shared Vitest setup
longTempDir.tsthat on win32 rewritesTEMPandTMPto the canonical long path fromrealpathSync, soos.tmpdir()matches git/realpath spelling on GitHub Windows runners (8.3 short names). The module is exported from@t3tools/sharedand registered in the root, desktop, web, and client-runtime Vite test configs (server inherits it viamergeConfigwith its existing git setup).bootstrap.test.tsusesNULvs/dev/nullfor null-device FD tests andskipIf(windowsHost)on the FIFO timeout case because Windows lacksmkfifo.Reviewed by Cursor Bugbot for commit 5032af7. Bugbot is set up for automated code reviews on this repo. Configure here.