fix(dedup): preserve same-source node attributes#2102
Closed
Synvoya wants to merge 1 commit into
Closed
Conversation
safishamsi
added a commit
that referenced
this pull request
Jul 22, 2026
…e handling (follow-up to #2102)
safishamsi
added a commit
that referenced
this pull request
Jul 22, 2026
Collaborator
|
Thanks @Synvoya. This shipped in v0.9.24. Your commit was cherry-picked onto v8 (5a4b207) to preserve your authorship, with a follow-up making the gap-fill order-independent and gating it on source_file. Closed-unmerged here, but it is in the release: https://github.com/Graphify-Labs/graphify/releases/tag/v0.9.24 |
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.
Summary
Fixes #2091.
Root cause
The exact-ID pre-dedup pass selected one complete node dictionary and discarded the other. That made deterministic collision ranking work, but it also removed complementary AST/semantic data such as
summaryandconfidence_scorebefore NetworkX could merge attributes.The fix gap-fills only missing keys from same-source duplicates. It does not import attributes from another source file, so the existing #1504 collision boundary remains intact.
Impact
Default
dedup=Truebuilds now retain AST precision (source_location,_origin) and semantic enrichment (summary,confidence_score) on the surviving node. Existing survivor values still win genuine conflicts.Validation
dedup=Truediscards a same-ID node's attributes instead of merging them — LLM semantic summaries are silently lost #2091 on currentv8before the fix:summary=None,confidence_score=Nonepytest tests/test_dedup.py -q --tb=shorton Python 3.10: 48 passedpytest tests/ -q --tb=shorton Python 3.12: 3553 passed, 3 skippedruff check graphify/dedup.py graphify/build.py tests/test_dedup.pytools.skillgenCI checksgraphify update .