v0.9.30
Graphify-Labs/graphifyv0.9.30Jul 29, 2026by safishamsi
AI Summary
Fixes fresh-install failures, node-id portability, and backend behaviors.
Key Highlights
- Pins `mcp` below 2.0 to fix fresh install `ImportError`.
- TypeScript `.tsx` files no longer leak absolute-path IDs into edge endpoints.
- AST-cache hits work correctly after corpus move or clone.
- Bedrock backend fixes for text block selection and timeouts.
Full Release Notes
Fixes a fresh-install failure of the MCP server, plus node-id portability, cache, bedrock, and merge-graphs fixes. **Install** - Pin `mcp` below 2.0 so a fresh `graphifyy[mcp]` / `graphifyy[all]` install works again (#2277, #2279, #2291). `mcp` 2.0.0 dropped the `mcp.types.AnyUrl` re-export and the `Server` decorator-registration API that `graphify/serve.py` uses, so an unpinned resolve broke `graphify-mcp` on every new install with an `ImportError`. The `mcp` and `all` extras now require `mcp>=1,<2` (resolving to 1.29.0) and `starlette>=1.3.1,<2`. Porting to the mcp 2.x API is tracked in #2308. **Node-id portability** - TypeScript `.tsx` files no longer leak absolute-path / machine-slug ids into edge endpoints (#2262). The symbol-resolution pass parsed `.tsx` with the plain TypeScript grammar; JSX misparsed, nested handlers floated to top level, and `calls` edges were emitted from an absolute-stem source with no node. `.tsx` now uses the TSX grammar, a `calls` edge is never emitted from an unowned source, and a general backstop canonicalizes any node-less absolute-derived endpoint. - A warm AST-cache hit after a corpus move or clone no longer replays node ids minted under the original root (#2257, thanks @Kaushik2003). Cached ids are stored root-relative and re-anchored on read. **Backends / graph ops** - The Bedrock backend reads the first *text* block of a Converse response instead of block 0, so reasoning-capable models no longer parse to zero nodes (#2287, thanks @zhiyanliu). - The Bedrock backend honors `GRAPHIFY_API_TIMEOUT` and `GRAPHIFY_MAX_RETRIES` instead of botocore's silent 60s default (#2284, thanks @zhiyanliu). - `merge-graphs` preserves edge direction instead of rewiring import edges to the importing file (#2261, thanks @hopstreax). - The MCP server's multi-project graph-context cache is bounded (LRU, default 8 via `GRAPHIFY_MAX_CONTEXTS`) instead of growing unbounded (#2268, thanks @Kkartik14).