fix(#2383): untrack node_modules — accidentally committed as a hardcoded absolute-path symlink (#2385)
* fix(#2383): untrack node_modules — accidentally committed as a hardcoded absolute-path symlinkcf004df67(#2360/#2364) swept node_modules into git as a tracked 120000 (symlink) blob pointing at /Users/trekkie/projects/gsd-core/node_modules — a path specific to one contributor's machine. .gitignore already lists node_modules/, so this was almost certainly a broad `git add` run while node_modules happened to be a symlink at that path, not intentional (git add on an explicitly-added path isn't blocked by .gitignore). Two concrete problems this caused: (1) anyone else cloning the repo, or any CI runner, checks out a symlink pointing at a path that does not exist on their machine; (2) it silently self-heals for most people (npm ci detects the checked-out symlink is "not a directory" and replaces it), but anyone who runs a tool directly against node_modules/.bin/* before ever running npm ci hits ENOENT/ELOOP failures that read as environment corruption and are expensive to diagnose — exactly what happened while preparing PR #2380 before this tracked entry was found to be the actual root cause. git rm --cached only, no working-tree content touched. .gitignore already covers node_modules/ going forward; confirmed via `git showcf004df67--stat` that no other file was swept into that same commit by the same mistake. Closes #2383 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(#2383): gitignore node_modules regardless of file type node_modules/ (trailing slash) only matches directories, so it never suppressed the worktree-sharing symlink some worktrees use to point node_modules back at the main checkout — every such worktree showed a perpetual, un-ignorable "?? node_modules" in git status, exactly the noise that trains people to stop reading git status output. Dropping the trailing slash matches node_modules regardless of whether it's a real directory, a file, or a symlink, which is what every other repo's node_modules ignore rule actually needs to do. Found while directly verifying #2383's untrack fix was complete, not assumed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore: regenerate cursor golden-install-parity fixture after rebase next advanced again during rebase — #2386 (fix #2341, "de-dup Cursor menu by marking skills user-invocable:false") landed and legitimately changed every cursor SKILL.md's content. Confirmed via git log that this is the explanation before committing: all 71 changed hash entries are isolated to cursor.json, matching a runtime-specific skill-output change, not noise. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix: regenerate cursor golden fixture from a clean clone (worktree was stale) Local worktree regeneration didn't match CI's clean-room result despite multiple attempts; a fresh clone + npm ci + regenerate in isolation produced a different, correct result. Using that. --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,4 +1,4 @@
|
||||
node_modules/
|
||||
node_modules
|
||||
.DS_Store
|
||||
|
||||
# ESLint cache
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
/Users/trekkie/projects/gsd-core/node_modules
|
||||
Reference in New Issue
Block a user