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.