v0.9.32
Changed 1
- Dedup drops an O(nodes x components) scan in remap construction with identical results
Fixed 13
- Incremental extraction and _rebuild_code no longer drop a file's other tier; merge is now tier-aware so AST re-extract replaces only AST nodes and keeps the semantic layer, and vice versa
- The _origin provenance marker is backfilled on load so old graphs self-heal
- Full-rebuild drop is scoped to sources actually regenerated
- graphify update preserves the graph's directed flag instead of rebuilding it undirected
- A numeric or otherwise non-string node id from an LLM fragment no longer aborts the build with a TypeError
- graphify query renders every edge between visited nodes, not just the traversal-tree edges
- graphify update writes manifest.json to the target's graphify-out instead of the current working directory
- A real Python package named coverage/ is no longer silently dropped; the prune is gated on coverage-report artefacts
- A custom GRAPHIFY_OUT name no longer prunes every same-named directory in the tree
- C# member calls resolve for receivers declared inline via out var, is, case, and switch-arm patterns
- Members of a C# partial class split across files now attach to one merged class node
- Members of a Kotlin anonymous object are now extracted, with their implements and calls edges
- Ruby mixins declared with compact/nested syntax now resolve, and a qualified external mixin can no longer fabricate a phantom hub
Correctness release: a tier-aware merge that stops incremental/rebuild from dropping a file's other layer, plus a batch of language-resolution and CLI fixes.
- Fix: incremental extraction and
_rebuild_codeno longer drop a file's other tier (#2333, #2334, #2336). Merge is now tier-aware (an AST re-extract replaces only AST nodes and keeps the semantic layer, and vice versa), the_originprovenance marker is backfilled on load so old graphs self-heal, and the full-rebuild drop is scoped to sources actually regenerated. - Fix:
graphify updatepreserves the graph'sdirectedflag instead of rebuilding it undirected (#2342, thanks @Rishet11). - Fix: a numeric or otherwise non-string node id from an LLM fragment no longer aborts the build with a TypeError (#2326, thanks @Rishet11).
- Fix:
graphify queryrenders every edge between visited nodes, not just the traversal-tree edges (#2323, thanks @Rishet11). - Fix:
graphify updatewritesmanifest.jsonto the target'sgraphify-outinstead of the current working directory (#2316, thanks @Rishet11). - Fix: a real Python package named
coverage/is no longer silently dropped; the prune is gated on coverage-report artefacts (#2339, thanks @Manoj21k). - Fix: a custom
GRAPHIFY_OUTname no longer prunes every same-named directory in the tree (#2273, thanks @oleksii-tumanov). - Fix: C# member calls resolve for receivers declared inline via
out var,is,case, and switch-arm patterns (#2346, thanks @JensD-git), and members of apartial classsplit across files now attach to one merged class node (#2332). - Fix: members of a Kotlin anonymous object (
object : Foo { ... }) are now extracted, with theirimplementsandcallsedges (#2347). - Fix: Ruby mixins declared with compact/nested syntax now resolve, and a qualified external mixin can no longer fabricate a phantom hub (#2302, thanks @FolatheDuckofDuckingburg).
module Foo::Barandmodule Foo; module Barcanonicalize to the same label;extend ActiveSupport::Concernno longer binds to a local module namedConcern; a genuine in-corpusinclude Foo::Concernstill resolves. - Perf: dedup drops an O(nodes x components) scan in remap construction (#2328, thanks @stupidprogrammer4), with identical results.