v0.9.28

Graphify-Labs/graphifyv0.9.28Jul 27, 2026by safishamsi

AI Summary

Fixes for incremental extraction correctness, macOS path handling, and Swift extraction.

Key Highlights

  • Incremental runs preserve cross-file edges to unchanged targets.
  • Fixes macOS Unicode path handling in incremental extraction.
  • Swift computed and observed properties now emit graph nodes.
  • Uninstall commands now respect project-scoping correctly.

Full Release Notes

Fixes for incremental extraction correctness, graph loading, uninstall scoping, macOS paths, and Swift extraction.

**Incremental extraction**

- Incremental runs no longer drop cross-file edges whose target file wasn't in the batch (#2211, #2213). Python relative imports and markdown reference links emitted absolute-path target ids without the stamp the incremental canonicalization needs, so a re-extracted file's imports/references dangled or vanished. Both now canonicalize to the root-relative node.
- Incremental extraction no longer prunes alive files as "deleted" (#2210). The stale-source check compared paths with a raw string test (no Unicode NFC) and pruned non-matches without a liveness check, so macOS NFD paths and legacy basename spellings lost their nodes. It now compares NFC on both sides and is fail-closed.
- `--update` on macOS no longer re-extracts everything when the corpus path or a filename contains non-ASCII characters (#2221, thanks @SyedFahad7). Manifest keys are NFC-normalized.
- Incremental rebuilds no longer reuse stale community labels, and a graph that outgrows the visualization cap now keeps an aggregated view instead of deleting `graph.html` (#2218, thanks @bobspryn).

**Other fixes**

- `graphify benchmark`, the graph merge-driver, and the call-flow HTML export no longer crash or silently fail on a `--no-cluster` `graph.json` (#2212), which stores edges under `edges` rather than `links`.
- `claude`/`gemini`/`codebuddy` uninstall no longer delete the user-global skill when called with a `project_dir` (#2215); this also fixes `graphify uninstall --project` deleting the global codebuddy skill.
- Swift computed and observed properties (`var body: some View { ... }`, `get`/`set`, `willSet`/`didSet`) now emit graph nodes, so SwiftUI views are no longer erased (#2181, thanks @ozdemirsarman).