Skip to content

Drop a node_modules symlink committed in #30 - #31

Merged
42piratas merged 1 commit into
mainfrom
fix/drop-committed-node-modules-symlink
Aug 3, 2026
Merged

Drop a node_modules symlink committed in #30#31
42piratas merged 1 commit into
mainfrom
fix/drop-committed-node-modules-symlink

Conversation

@42piratas

Copy link
Copy Markdown
Contributor

What happened

Mine, in #30. I symlink web/node_modules at a sibling checkout so a fresh worktree can typecheck without a second npm install, and on the last commit of that PR I did not remove it before git add -A.

It landed on main as a mode 120000 blob pointing at ../../../ff3e-app/web/node_modules — a path that exists on exactly one machine. A fresh clone gets a dangling symlink that escapes the repo root.

CI did not catch it. The Pages build runs its own install over the top, so 0af8f7c deployed fine and the live demo is correct.

Why the ignore rule missed it

Both .gitignore files said node_modules/. The trailing slash means a directory of that name — a symlink is not a directory, so nothing matched. Dropping the slash matches both.

Verified: with the fix applied, re-creating the exact same symlink leaves git status clean and git check-ignore -v web/node_modules reports web/.gitignore:3:node_modules.

Checks

tsc --noEmit clean · npm run build clean. No source change — one deleted symlink and one character off each ignore file.

Mine, in #30. I symlink `web/node_modules` at a sibling checkout so a
fresh worktree can typecheck without a second install, and on the last
commit of that PR I did not remove it before `git add -A`. It went in as a
mode 120000 blob pointing at `../../../ff3e-app/web/node_modules` — a path
that exists on exactly one machine — so a fresh clone gets a dangling
symlink that escapes the repo root. CI did not catch it: the Pages build
runs its own install over the top and deployed fine.

Both .gitignore files said `node_modules/`. The trailing slash means "a
directory of that name", and a symlink is not a directory, so nothing
matched it. Dropping the slash matches both — which is why this could
happen at all, and why it now cannot: with the fix in place, re-creating
the same symlink leaves `git status` clean.
@42piratas
42piratas merged commit 355f3cd into main Aug 3, 2026
1 of 2 checks passed
@42piratas
42piratas deleted the fix/drop-committed-node-modules-symlink branch August 3, 2026 23:30
42piratas added a commit that referenced this pull request Aug 3, 2026
The other half of #31, which I said was in that PR and was not: I edited
both .gitignore files but only `git rm` had staged anything, so the commit
carried the deleted symlink and neither ignore change. The symlink is gone
from main; the rule that would have stopped it going in was never
committed.

`node_modules/` with a trailing slash means "a directory of that name". A
symlink is not a directory, which is why nothing matched the one I
committed in #30. Without the slash it matches both.

Verified on this branch, not on an unstaged working tree: with the change
staged, re-creating the same symlink leaves `git status` clean and
`git check-ignore -v web/node_modules` reports `web/.gitignore:3`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant