v0.9.34
Fixed 6
- C# receiver typing no longer drops a true call when a same-named variable is declared untypeably elsewhere in the method, by tracking receiver types per lexical declaration scope and resolving by call position
- graphify path and the MCP shortest_path tool now respect edge direction by default instead of running on an undirected view
- semantic extraction no longer aborts at merge with a TypeError when a hyperedge carries dict-shaped members, by normalizing members to ids or dropping them with a warning
- graphify merge-graphs no longer drops hyperedges by relabeling member ids with per-repo prefix, unioning both inputs' hyperedges, and writing them to both top-level and nested slots
- build_from_json now reads hyperedges from both the top-level and nested graph slots, so label and re-cluster runs no longer silently empty a graph's hyperedge set
- the skill flow now passes curated community labels to to_json, so graph.json ships with community_name on nodes
Correctness release: a C# receiver-typing regression fix, direction-respecting shortest paths, and a set of hyperedge merge/load integrity fixes.
- Fix: C# receiver typing no longer drops a true call when a same-named variable is declared untypeably elsewhere in the method (#2472, thanks @JensD-git). Receiver types are now tracked per lexical declaration scope and resolved by the call's position, so a typed
staticlocal-function parameter keeps resolving even when anout varreuses the name in the enclosing body. This fixes a regression from 0.9.32 (#2346). Cross-method independence (#2299) and field-conflict poisoning are unchanged; anout varreceiver itself remains untyped. - Fix:
graphify path(and the MCPshortest_pathtool) now respect edge direction by default instead of running on an undirected view, so a returned path no longer traverses edges backwards (#2487, thanks @luliaz0601). Direction is recovered from the stored_src/_tgtmarkers. Pass--undirected(CLI) orundirected=true(MCP) to search ignoring direction; when no directed path exists the command says so instead of silently returning a reversed one. - Fix: semantic extraction no longer aborts at merge with a
TypeErrorwhen a hyperedge carries dict-shaped members (#2486, thanks @adminwat). Members are normalized to ids (or dropped with a warning) so a malformed hyperedge can no longer destroy a completed extraction. - Fix:
graphify merge-graphsno longer drops hyperedges (#2484, thanks @sortakool, and @oleksii-tumanov for the approach in #1691). Hyperedge member ids and ids are now relabeled with the per-repo prefix, both inputs' hyperedges are unioned instead of one clobbering the other, and they are written to both the top-level and nested slots. - Fix:
build_from_jsonnow reads hyperedges from both the top-level and nestedgraphslots, so label and re-cluster runs no longer silently empty a graph's hyperedge set (#2485, thanks @sortakool); a full validation wipeout is now reported loudly. - Fix: the skill flow now passes the curated community labels to
to_json, sograph.jsonships withcommunity_nameon nodes instead of dropping it (#2490, thanks @PapiScholz).