Skip to content

fix: reject stale and foreign link instances on removal - #55

Open
dajiaohuang wants to merge 1 commit into
anvaka:mainfrom
dajiaohuang:fix-link-removal-identity-w17-20261025
Open

dajiaohuang wants to merge 1 commit into
anvaka:mainfrom
dajiaohuang:fix-link-removal-identity-w17-20261025

Conversation

@dajiaohuang

Copy link
Copy Markdown

Removing a stale link instance can delete a newer link with the same ID from the graph's global map while leaving its adjacency sets intact. A link from another graph with the same ID has the same effect.

Require the stored link to be the exact instance passed to removeLink(), so nonexistent instances return false without mutation or change events. Rebuilt the tracked distributions to apply the fix to the CommonJS entry point as well.

Eight synthetic regression cases cover stale and foreign references in ordinary and multigraph modes through both source and CommonJS entry points, including adjacency consistency and event delivery. All eight fail before the fix and pass after it.

Validation on Node 24.14.1: npm run build and the full Vitest coverage run pass (5 files, 51 tests). index.js has 99.39% statement/line coverage, 97.91% branch coverage and 100% function coverage; overall coverage includes unexecuted performance examples. git diff --check passes. The CI Node 18/20 matrix was not run locally. No real graph datasets or external services were used.

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