Skip to content

graphify

v0.8.27 Feature

This release adds 2 notable features for engineering teams evaluating rollout.

Published 3d RAG & Retrieval
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

antigravity claude-code codex gemini graphrag knowledge-graph
+5 more
leiden openclaw llm skills tree-sitter

Summary

AI summary

CLI auto-labels communities using the configured backend, fixing multiple ID mismatches and crashes.

Changes in this release

Feature Medium

Standalone CLI auto-names communities using configured backend, adds `graphify label` subcommand and opt‑out flag.

Standalone CLI auto-names communities using configured backend, adds `graphify label` subcommand and opt‑out flag.

Source: llm_adapter@2026-05-31

Confidence: high

Bugfix Medium

AST file-level node IDs now follow `{parent_dir}_{stem}` spec, fixing ghost nodes from full path usage.

AST file-level node IDs now follow `{parent_dir}_{stem}` spec, fixing ghost nodes from full path usage.

Source: llm_adapter@2026-05-31

Confidence: high

Bugfix Medium

Symbol‑level node IDs for root files match spec, eliminating duplicate ghost pairs.

Symbol‑level node IDs for root files match spec, eliminating duplicate ghost pairs.

Source: llm_adapter@2026-05-31

Confidence: high

Bugfix Medium

TypeScript `interface` and same‑file class inheritance now generate proper `inherits`/`implements` edges.

TypeScript `interface` and same‑file class inheritance now generate proper `inherits`/`implements` edges.

Source: llm_adapter@2026-05-31

Confidence: high

Bugfix Medium

`graphify export obsidian` no longer crashes with `OSError ENAMETOOLONG`; filenames are byte‑capped and hashed.

`graphify export obsidian` no longer crashes with `OSError ENAMETOOLONG`; filenames are byte‑capped and hashed.

Source: llm_adapter@2026-05-31

Confidence: high

Bugfix Medium

'graph.json' output is now deterministic across runs by sorting file traversal lexicographically.

'graph.json' output is now deterministic across runs by sorting file traversal lexicographically.

Source: llm_adapter@2026-05-31

Confidence: high

Bugfix Medium

Windows consoles no longer crash with `UnicodeEncodeError`; stdout/stderr forced to UTF‑8 and non‑ASCII arrows replaced.

Windows consoles no longer crash with `UnicodeEncodeError`; stdout/stderr forced to UTF‑8 and non‑ASCII arrows replaced.

Source: llm_adapter@2026-05-31

Confidence: high

Full changelog

0.8.27

  • Feat: standalone CLI now auto-names communities with the configured backend instead of leaving Community N placeholders — community labeling was previously an agent-only step (skill.md Step 5), so bare-CLI runs never got semantic names. cluster-only now auto-labels when no .graphify_labels.json exists, new graphify label <path> subcommand (re)generates names on demand, --no-label opts out, --backend=<name> overrides auto-detection. One batched LLM call with per-community placeholder fallback and graceful degradation on missing backend/API error; works with all built-in and custom OpenAI-compatible backends (#1097)
  • Fix: AST file-level node IDs now match the skill.md {parent_dir}_{stem} spec — they were derived from the full relative path plus extension (match_script_pipeline_step_py) while semantic subagents use script_pipeline_step, splitting every file into two disconnected ghost nodes. Fixed at the single relative-path remap chokepoint so file nodes and all import/dependency edge endpoints (Python, TS, Lua, C, bash) convert together (#1033)
  • Fix: symbol-level node IDs for root-level files now match the spec too — the #1033 remap relativized file nodes but symbols still embedded the absolute parent-dir name (<rootdir>_main_run vs spec main_run), splitting every top-level file's symbols into AST/semantic ghost pairs. The remap now canonicalizes symbol stems and raw_calls caller IDs, gated by source_file (#1096)
  • Fix: TypeScript interface A extends B and same-file class X extends Y now produce inherits/implements edges — the walker only inspected class_heritage (missing the interface extends_type_clause node) and the resolver only consulted the import table (missing same-file bases); both gaps closed (#1095)
  • Fix: graphify export obsidian no longer crashes with OSError ENAMETOOLONG on long node labels — to_obsidian/to_canvas now cap filenames on UTF-8 bytes (not chars, so multibyte/CJK labels are handled) with an 8-char hash suffix on truncation to keep distinct long-prefix labels from colliding; also fixes the previously-uncapped _COMMUNITY_ notes (#1094)
  • Fix: graph.json is now deterministic across runs — detect() sorts file traversal lexicographically (os.walk order is filesystem-dependent), which had made first-writer-wins node-ID decisions and Leiden community counts vary between identical runs (#1090)
  • Fix: Windows consoles no longer crash with UnicodeEncodeError on non-UTF-8 code pages — main() reconfigures stdout/stderr to UTF-8 at startup and / in print statements replaced with ASCII (#992)

PyPI: https://pypi.org/project/graphifyy/0.8.27/

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track graphify

Get notified when new releases ship.

Sign up free

About graphify

AI coding assistant skill (Claude Code, Codex, OpenCode, Cursor, Gemini CLI, OpenClaw, Factory Droid, Trae). Turn any folder of code, docs, papers, images, videos, or YouTube links into a queryable knowledge graph

All releases →

Related context

Earlier breaking changes

  • v0.8.18 Breaks Java `extends` edges; they are renamed to `inherits`. Update queries filtering on `relation="extends"` for Java nodes.

Beta — feedback welcome: [email protected]