Repository navigation
fix(typegate): unlink node_modules junctions before worktree removal - #1
Merged
Merged
Conversation
On Windows, typegate deleted the repository's real node_modules. It links node_modules into the base worktree with a junction, and Git for Windows' `git worktree remove --force` deletes through junctions. Found on the first real run, against the MCP TypeScript SDK: 307 installed packages gone after one G1 run, so every later gate failed on missing modules. typegate now records each junction it creates and unlinks it in the finally block before git removes the worktree. fs.unlinkSync on a junction removes only the link. The input that used to pass wrongly is any Windows repo with a node_modules directory in a typecheck root; the new test fails on it before this change.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
On Windows, typegate deleted the repository's real node_modules. It links
node_modules into the base worktree with a junction, and Git for Windows'
git worktree remove --forcedeletes through junctions. Found on the firstreal run, against the MCP TypeScript SDK: 307 installed packages gone after
one G1 run, so every later gate failed on missing modules.
typegate now records each junction it creates and unlinks it in the finally
block before git removes the worktree. fs.unlinkSync on a junction removes
only the link. The input that used to pass wrongly is any Windows repo with a
node_modules directory in a typecheck root; the new test fails on it before
this change.