Skip to content

Releases: Graphify-Labs/graphify

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.

v0.3.3 - Windows support

Choose a tag to compare

@safishamsi safishamsi released this 07 Apr 10:30

What's new

  • Windows supportgraphify install now auto-detects Windows and installs a PowerShell-compatible skill variant (skill-windows.md). All bash-specific commands replaced: which/head/tr → Python detection, rm -fRemove-Item, mkdir -pNew-Item, python3python
  • Manual override: graphify install --platform windows on any platform

v0.3.2

Choose a tag to compare

@safishamsi safishamsi released this 07 Apr 08:59

Zig and PowerShell are now supported. Functions, structs, enums, unions, and imports for Zig. Functions, classes, methods, and using statements for PowerShell.

Factory Droid is now a supported platform. graphify install --platform droid and graphify droid install work the same as the other platforms.

.graphifyignore — add a file to exclude folders and files from the graph. Same syntax as .gitignore. Useful for keeping node_modules, vendor, dist, and generated files out of the graph.

What is next

v0.4.0 brings local embeddings via quantized Gemma 4, no API cost for semantic similarity. Also planned: more /graphify add sources, graph diff across runs, and worked examples for Codex and OpenCode.

v0.3.1

Choose a tag to compare

@safishamsi safishamsi released this 06 Apr 21:25

Fourteen bugs fixed across two community code reviews.

Git hooks now exit with a non-zero code when a rebuild fails. Previously the hook caught the exception and exited 0, so git assumed everything was fine and your graph would go stale with no warning.

The /graphify query token budget was overshooting by about 3x. The character-to-token ratio has been corrected.

Deleted files are now tracked in incremental mode. If you remove a file and run /graphify --update, its nodes are flagged for cleanup instead of staying in the graph as ghost nodes.

Cache writes are now atomic. A crash mid-write no longer leaves a corrupt cache entry that silently causes a full re-extraction on the next run.

/graphify add tweet fetching was bypassing SSRF protections and making raw HTTP requests. It now routes through the same safe fetch layer as everything else.

Neo4j Cypher export was vulnerable to injection via backslash sequences in node labels. Escaping is now correct.

The HTML visualization was embedding AI-generated community labels directly into innerHTML without sanitization. Labels are now sanitized before rendering.

Graph diff was reporting phantom additions and removals on undirected graphs because edge key ordering was non-deterministic. Edge keys are now normalized.

The file cache was keyed only on content hash, so two files with identical content would share a cache entry with wrong source metadata baked in. The file path is now included in the key.

Hook uninstall used a naive string split that could corrupt other hooks sharing the same file. Uninstall now uses paired start and end markers.

What is next

v0.4.0 brings local embeddings via quantized Gemma 4, no API cost for semantic similarity. Also planned: more /graphify add sources, graph diff across runs, and worked examples for Codex and OpenCode.