v0.9.91

Graphify-Labs/graphifyv0.9.91Oct 14, 2026by safishamsi

Upgrading?

AI Summary

This release focuses on stability and correctness across multiple language bindings and tools, featuring a fix for Windows hangs in MCP, improved type resolution in TypeScript and Rust, and a fix for Ollama context truncation.

Key Highlights

  • Fixed a hang in MCP's `graph_stats` on Windows by properly closing the git child's stdin.
  • Switched Ollama extraction to the native `/api/chat` endpoint to prevent silent truncation of large prompts.
  • Improved type resolution in Rust for `use crate` imports and TypeScript for class field receivers.
  • Resolved a module symbol ID collision that previously caused symbols to be merged onto sibling file nodes.
  • Ensured cluster labels are retained across rebuilds when membership overlaps by a strict majority.

Breaking Changes

  • The AST cache schema has been bumped, forcing a re-extraction on the first build after upgrading.

Full Release Notes

Eight community pull requests: a Windows MCP-stdio hang fix, Rust/JS/TS/extract call-resolution and id-collision fixes, an Ollama context-size fix, and a clustering label-retention fix. The AST cache schema is bumped, so the first build after upgrading re-extracts.

- Fix: **MCP** `graph_stats` no longer hangs under a stdio host on Windows (and no longer silently drops its built-at-commit staleness line): `_git_head` closes the git child's stdin so git does not block on the JSON-RPC pipe (#4440, #4441, thanks @bercedev).
- Fix: **Rust** a `use crate::…::Name` edge now lands on the declaration it imports rather than a bare name-folded target (#4439, #4443, thanks @bercedev).
- Fix: **JS/TS** a file-scope callback's own parameters are now shadowed, so a bare parameter passed on as a call argument no longer mints phantom cross-bundle `indirect_call` edges (#4448, #4457, thanks @bercedev).
- Fix: **extract** a module symbol whose id spells a sibling file's id (a `const sql` beside `x.sql`) is kept on its own node instead of being merged onto the sibling's file node and dropped (#4449, #4452, thanks @Deepjyoti-Sarmah).
- Fix: **TypeScript** a class field's receiver type is now scoped to its own class and bases, so `this.field.method()` resolves to the right class when two classes share a field name (#4294, #4297, thanks @rohit-jsfreaky).
- Fix: **Ollama** extraction and labeling requests now go to Ollama's native `/api/chat`, so the derived `num_ctx` actually reaches the server and large prompts are no longer silently truncated; a server without `/api/chat` falls back to the OpenAI-compatible endpoint (#4413, #4414, thanks @smngvlkz).
- Fix: **cluster** a community keeps its curated or LLM label across a rebuild when its membership still overlaps the previous community by a strict majority (#2298, #4451, thanks @SrijanSriv).
- Test: **ingest** the skip-existing symlink test now compares the link target against what `readlink` returned, fixing a false failure on Windows (#4435, #4442, thanks @bercedev).

Related Repositories