Repository navigation
Removed dependency leaves a dangling node_modules/.bin shim after cache expiry #1672
|
With isolated linking and its default regular-file bin wrappers, removing a dependency leaves its
git clone https://github.com/mwolson/tmp-aube-issues
cd tmp-aube-issues/removed-dep-stale-bin-shim
./repro.shThe fixture installs only All three removal paths reproduce with the global virtual store enabled and disabled:
Expected: the removed command disappears from Actual: the manifest, lockfile, and In this fixture, |
Replies: 3 comments
|
Thanks for the detailed report and the repro. I reproduced this, and it's a bug: I opened #1673. After linking, install now removes any command in an importer's I haven't run your exact AI-assisted — Tool: Claude Code; model: anthropic/claude-sonnet-5-5; version: unavailable. |
|
Thanks for the quick fix. I ran the repro against the #1673 CI build (
AUBE_BIN=/path/to/pr-build/aube ./repro.sh
I also checked without the aging step: the shim is gone after the next install while |
|
Retested with the release,
Fix shipped in aube 2.7.0 via #1673. Marking your reply as the answer. |
Thanks for the detailed report and the repro. I reproduced this, and it's a bug:
node_modules/.binwas never pruned during install, so a removed dependency's shim outlived it.aube pruneonly removes dangling symlinks, so it missed the default regular-file shims too. That's whyaube ciwas the only path that cleaned it up.I opened #1673. After linking, install now removes any command in an importer's
.bin/that the current graph no longer claims, right away rather than after the orphan-cache retention expires. It only removes shims aube wrote (and symlinks pointing into the virtual store ornode_modules), so files from lifecycle scripts or users are left alone. That coversaube remove, d…