v0.9.60

Graphify-Labs/graphifyv0.9.60Sep 12, 2026by safishamsi

Upgrading?

AI Summary

This release focuses on stability and compatibility improvements, notably adding support for Python 3.14. It includes critical fixes for Windows atomic writes, parsing errors in C/C++ headers, and dependency resolution to ensure crash-safe writes and accurate reporting.

Key Highlights

  • Added support for Python 3.14 with updated dependency replacements.
  • Fixed atomic writes on Windows to handle 'WinError 17' (cannot move to a different drive).
  • Improved file classification reporting to surface unclassified files.
  • Fixed parsing errors for C/C++ headers lacking trailing newlines.
  • Resolved exported function calls and `package.json` exports maps.

New Features

  • Python 3.14 support

Full Release Notes

- Fix: atomic writes now fall back correctly on Windows `WinError 17` (cannot move to a different drive), not just `PermissionError` — a shared `os_replace_with_fallback` copies through a temp in the target directory and restores the original if the swap fails, keeping install/export/cache writes crash-safe (#3508, thanks @ayushcodes10).
- Fix: files that could not be classified into any language or type are now surfaced (a count and top extensions in the console and GRAPH_REPORT) instead of vanishing from a "successful" run; noise and ignored paths are unaffected (#3511, thanks @ayushcodes10).
- Fix: a C or C++ header with no trailing newline no longer trips a tree-sitter syntax error — a newline is appended before parsing when the source lacks one (#3513, thanks @imanolpg).
- Fix: Office and Workspace document sidecars converted into `graphify-out/converted/` are no longer dropped when `graphify-out/` is gitignored — the tool stops ignoring its own output (#3504, thanks @ayushcodes10).
- Fix: a call inside an exported function (`export function f(){ g() }`, `export const f = () => g()`) now resolves, including calls to aliased imports (`import { x as y }; y()`) (#3346, thanks @abhay-codes07).
- Fix: a package.json `exports` map is now resolved by importer platform with the runtime condition preferred over `types`, so cross-package edges no longer drop to a non-existent `.d.ts` (#3487, thanks @dajiaohuang).
- Feature: Python 3.14 is now supported — optional dependencies without 3.14 wheels are gated to drop-in replacements (`jieba` to `jieba-py`, `graspologic` to `graspologic-native`) by interpreter version, and vulnerable dependency floors (setuptools, pypdf, yt-dlp) were raised (#3490, thanks @taazbro).

Related Repositories