Skip to content

fix(dedup): preserve same-source node attributes#2102

Closed
Synvoya wants to merge 1 commit into
Graphify-Labs:v8from
Synvoya:agent/dedup-preserve-attributes
Closed

fix(dedup): preserve same-source node attributes#2102
Synvoya wants to merge 1 commit into
Graphify-Labs:v8from
Synvoya:agent/dedup-preserve-attributes

Conversation

@Synvoya

@Synvoya Synvoya commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • retain non-conflicting attributes when exact-ID nodes from the same source file collapse
  • preserve the deterministic collision survivor for conflicting values
  • keep cross-file references and genuine slugged-path ID collisions isolated
  • document the dedup-enabled build contract

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 summary and confidence_score before 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=True builds 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

safishamsi added a commit that referenced this pull request Jul 22, 2026
@safishamsi

Copy link
Copy Markdown
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

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.

Default dedup=True discards a same-ID node's attributes instead of merging them — LLM semantic summaries are silently lost

2 participants