Skip to content

Releases: Graphify-Labs/graphify

v0.3.13

Choose a tag to compare

@safishamsi safishamsi released this 08 Apr 18:21

0.3.13

  • Fix: PreToolUse hook now outputs additionalContext JSON so Claude actually sees the graph reminder before Glob/Grep calls (#83)
  • Fix: Go AST method receivers and type declarations now use package directory scope, eliminating disconnected duplicate type nodes across files in the same package (#85)
  • Fix: PDFs inside Xcode asset catalogs (.imageset, .xcassets) are no longer misclassified as academic papers (#52)
  • Fix: _resolve_cross_file_imports is now guarded with if py_paths and wrapped in try/except so a Python parser crash can't abort extraction for non-Python files (#52)
  • Fix: Skill intermediate files (.graphify_*.json) now live in graphify-out/ instead of project root, preventing git pollution (#81)

v0.3.12

Choose a tag to compare

@safishamsi safishamsi released this 08 Apr 08:41

0.3.12

  • Fix: sanitize_label was double-encoding HTML entities in the interactive graph (< instead of <) — removed html.escape() from sanitize_label; callers that inject directly into HTML now call html.escape() themselves (#66)
  • Fix: --wiki flag missing from skill.md usage table (#55)

v0.3.11

Choose a tag to compare

@safishamsi safishamsi released this 07 Apr 21:37

What's new

Fix: Louvain fallback hang on large sparse graphs (#48)

  • Added max_level=10, threshold=1e-4 to NetworkX Louvain fallback
  • Prevents indefinite hang on large sparse graphs (49K+ nodes, low density)
  • Equivalent community quality on typical corpora
  • Only affects users without graspologic installed (Leiden is unaffected)

v0.3.10

Choose a tag to compare

@safishamsi safishamsi released this 07 Apr 20:20

What's new

Fix: Windows Unicode crash (#47)

  • Replaced arrow character with -> in all print statements — fixes UnicodeEncodeError on cp1252/Windows consoles

Add: Skill staleness warning (#46)

  • graphify install now writes a version stamp alongside the skill file
  • Every graphify command checks all platform skill locations and warns if the installed skill is from an older version
  • Works across Claude Code, Windows, Codex, OpenCode, OpenClaw, Factory Droid

v0.3.9

Choose a tag to compare

@safishamsi safishamsi released this 07 Apr 19:17

What's new

Symlink support (#33)

  • detect() and collect_files() now accept follow_symlinks=True to traverse symlinked files and directories
  • Circular symlink cycle detection prevents infinite recursion
  • watch.py now uses collect_files() for consistency

Docs

  • Codex skill trigger is $graphify . not /graphify . (#36)

Tests

  • 367 tests passing (up from 362)

v0.3.8

Choose a tag to compare

@safishamsi safishamsi released this 07 Apr 19:06

What's new

C# inheritance extraction (#45)

  • DataProcessor : IProcessor now emits inherits edges
  • Handles both simple bases (identifier) and generic bases (IList<T> → generic_name)
  • Zero false positives — tested on 6,100-file Unity/VaM codebase producing 3,957 edges

graphify query CLI command (#43)

  • Query the knowledge graph without Claude Code:
    graphify query "what connects attention to the optimizer?"
    graphify query "what is CfgNode?" --dfs
    graphify query "show auth flow" --budget 500 --graph path/to/graph.json
    
  • BFS by default, --dfs for path tracing, --budget N to cap output tokens

Tests

  • 362 tests passing (up from 360)

v0.3.7

Choose a tag to compare

@safishamsi safishamsi released this 07 Apr 15:07

What's new

Objective-C support (#34)

  • .m and .mm files now extracted via tree-sitter
  • @interface, @implementation, @protocol → class/protocol nodes
  • Method declarations and definitions → method nodes with method edges
  • #import directives → imports edges
  • Superclass and protocol conformance → inherits edges
  • Message expressions → calls edges (INFERRED)

--obsidian-dir flag (#37)

  • Write Obsidian vault to a custom path: /graphify ./raw --obsidian --obsidian-dir ~/vaults/myproject

Bug fixes

  • Semantic cache: relative paths from subagents now resolved against corpus root — was causing only ~25% of files to cache correctly
  • Validation: file_type: "rationale" no longer triggers 75 warnings per run

Tests

  • 360 tests passing (up from 354)

v0.3.6 - Elixir support

Choose a tag to compare

@safishamsi safishamsi released this 07 Apr 11:57

What's new

  • Elixir language support — .ex and .exs files now go through AST extraction. Extracts defmodule, def/defp, alias/import/require/use, and the call graph between functions. Same EXTRACTED/INFERRED tagging as every other language.

v0.3.5 - .docx and .xlsx support

Choose a tag to compare

@safishamsi safishamsi released this 07 Apr 11:38

What's new

  • .docx and .xlsx support — Office documents now work in graphify. Install the optional extra:
    pip install graphifyy[office]
    
    • .docx: converted to markdown via python-docx (headings, lists, tables preserved)
    • .xlsx: each sheet converted to a markdown table via openpyxl
    • Converted files are saved to graphify-out/converted/ as .md sidecars — Claude reads them as normal documents
    • Graceful fallback if [office] is not installed: file is skipped with an install hint

v0.3.4 - Windows encoding fix

Choose a tag to compare

@safishamsi safishamsi released this 07 Apr 10:55

What's new

  • Fix UnicodeDecodeError on Windows GBK locale — all read_text() and write_text() calls in graphify/__main__.py now explicitly pass encoding="utf-8". Windows systems with non-UTF-8 default locales (e.g. GBK in Chinese Windows) no longer crash on graphify install.