This release adds 2 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+5 more
Summary
AI summaryCLI auto-labels communities using the configured backend, fixing multiple ID mismatches and crashes.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| 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 Nplaceholders — community labeling was previously an agent-only step (skill.md Step 5), so bare-CLI runs never got semantic names.cluster-onlynow auto-labels when no.graphify_labels.jsonexists, newgraphify label <path>subcommand (re)generates names on demand,--no-labelopts 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 usescript_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_runvs specmain_run), splitting every top-level file's symbols into AST/semantic ghost pairs. The remap now canonicalizes symbol stems andraw_callscaller IDs, gated bysource_file(#1096) - Fix: TypeScript
interface A extends Band same-fileclass X extends Ynow produceinherits/implementsedges — the walker only inspectedclass_heritage(missing the interfaceextends_type_clausenode) and the resolver only consulted the import table (missing same-file bases); both gaps closed (#1095) - Fix:
graphify export obsidianno longer crashes withOSError ENAMETOOLONGon long node labels —to_obsidian/to_canvasnow 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.jsonis now deterministic across runs —detect()sorts file traversal lexicographically (os.walkorder 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
UnicodeEncodeErroron 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
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
Beta — feedback welcome: [email protected]