fix: Windows snapshot fails with non-ASCII filenames (Chinese, Japanese, etc.) #9844
+106
−79
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fix undo/revert not working on Windows when project contains non-ASCII filenames (e.g., Chinese, Japanese, Korean characters).
Problem
On Windows, Bun's dollar template literal incorrectly handles variable interpolation, replacing variables with placeholders like
?__bunstr_0instead of actual values. This causes:git add .to silently fail adding non-ASCII filenames to snapshotgit checkout/git ls-treeto fail finding files during revertRoot Cause
The Bun shell template on Windows fails to interpolate variables correctly.
Solution
Replace all dollar template calls with
Bun.spawn()which correctly passes arguments as an array, bypassing shell interpolation issues.Testing
Tested on Windows 11 with project containing Chinese filenames:
Related Issues