v0.9.31

Graphify-Labs/graphifyv0.9.31Jul 30, 2026by safishamsi

AI Summary

Resolution-accuracy fixes and MCP SDK compatibility widening.

Key Highlights

  • MCP server is dual-compatible with SDK 1.x and 2.x.
  • C# receiver typing is now per-method instead of per-file.
  • SQL cross-file table references resolve to real table nodes.
  • Go predeclared functions no longer fabricate edges to user symbols.

Full Release Notes

Resolution-accuracy fixes, an MCP SDK compatibility widening, and community extractor fixes.

**MCP**

- The MCP server is now dual-compatible with the `mcp` SDK 1.x and 2.x, lifting the `mcp<2` cap from 0.9.30 to `mcp>=1,<3` (#2308, thanks @NiSHoW). `_build_server` binds the same handlers via the 1.x decorator API or the 2.x `on_*` constructor callbacks at runtime, and adapts `Tool.inputSchema`, `Resource.uri`, and the dropped `AnyUrl` re-export. Verified with full stdio handshakes under mcp 1.29 and 2.0.

**Resolution / graph accuracy**

- C# member calls on a typed receiver no longer drop true `calls` edges when the same local name is reused across methods (#2299, thanks @JensD-git). Receiver typing is now per-method (mirroring the Java resolver) instead of per-file, so an untypable `var x = ...` in one method can't delete a typed-parameter call edge in another.
- SQL cross-file table references (e.g. a prisma migration referencing a table created in an earlier one) resolve to the real table node instead of leaking an absolute-path id and losing the foreign key (#2324). References mint a sourceless stub that collapses onto the real definition, and identifiers are normalized so `"public"."users"` matches `public.users`.
- `graphify path` and `explain` no longer print reversed hops (#2309): they recover edge direction from the stored `_src`/`_tgt` markers instead of the persisted endpoint order.
- `export const X = <scalar>` now emits a graph node, so a named import of a scalar export is no longer left dangling (#2266, thanks @oleksii-tumanov).
- Go predeclared functions (`make`, `len`, `append`, ...) no longer fabricate call edges to same-named user symbols (#2313, thanks @PathGao); the filter is scoped to Go bare-identifier callees.
- `graphify explain` refuses and lists candidates when a name matches symbols in more than one file, instead of silently resolving to an arbitrary one (#2233, thanks @0bLoM).

**Install**

- The Antigravity install workflow no longer hardcodes the global skill path for a project-scoped install (#2319, thanks @MalikHaroonKhokhar).