Safi
12a9b5e812
fix: prevent fuzzy dedup from collapsing distinct same-named symbols on --update ( #1178 )
...
Three-part fix:
dedup.py: Pass 1 exact-merge now skips nodes with an empty source_file.
Previously all no-source_file nodes with the same label landed in one
bucket and were merged, destroying distinct symbols (third-party deps,
standalone functions) that happened to share a short name.
update.md (skillgen + all 13 host variants): the --update merge now
passes both deleted AND changed files to prune_sources, mirroring what
watch._rebuild_code already does correctly. Old nodes for re-extracted
files are pruned before fresh AST is inserted — no fuzzy reconciliation
needed, no cross-file collapse possible.
export.py: anti-shrink guard message now names fuzzy dedup as a
possible cause (not only "missing chunk files"), and advises a full
rebuild as the safe recovery path.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-07 14:26:14 +01:00
..
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-07 12:40:44 +01:00
2026-06-07 12:40:44 +01:00
2026-06-07 12:40:44 +01:00
2026-06-07 12:40:44 +01:00
2026-06-07 12:40:44 +01:00
2026-06-07 12:40:44 +01:00
2026-06-07 12:40:44 +01:00
2026-06-07 12:40:44 +01:00
2026-06-07 12:40:44 +01:00
2026-06-07 12:40:44 +01:00
2026-06-07 12:40:44 +01:00
2026-06-07 12:40:44 +01:00
2026-06-07 12:40:44 +01:00
2026-06-07 12:40:44 +01:00
2026-06-07 12:40:44 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-07 14:26:14 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-07 14:26:14 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-07 14:26:14 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-07 14:26:14 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-07 14:26:14 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-07 14:26:14 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-07 14:26:14 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-07 14:26:14 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-07 14:26:14 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-07 14:26:14 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-07 14:26:14 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-07 14:26:14 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-02 20:48:13 +01:00
2026-06-07 14:26:14 +01:00