138 Commits

Author SHA1 Message Date
Safi 7c81c1b889 release: v0.4.9 — PHP extractor improvements, Dart, diacritics, Hermes, fixes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.4.9
2026-04-13 08:39:28 +01:00
Safi 04e2960135 Remove Claude-specific language from platform skill files (0.4.8)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.4.8
2026-04-12 21:18:20 +01:00
Safi c713cf89fd Fix watch edge key, claw path, Blade support, WSL MCP docs (0.4.7)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.4.7
2026-04-12 20:49:24 +01:00
Safi 6b2d38358b Add Google Antigravity platform support (0.4.6)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.4.6
2026-04-12 19:16:49 +01:00
Safi 2499a1c377 fix MCP ValidationError on blank stdin lines and bump to 0.4.5
Some MCP clients send blank lines between JSON messages. The stdio
transport tried to parse every line as JSONRPCMessage, crashing with
a Pydantic ValidationError. _filter_blank_stdin() installs an OS-level
pipe that relays stdin while silently dropping blank-only lines.

Closes #201

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.4.5
2026-04-12 18:48:29 +01:00
Safi 0a4e6915c1 fix #261, #249, #266 and bump to 0.4.4
- watch.py: preserve INFERRED/AMBIGUOUS edges (code<->doc) across rebuilds (#261)
- __main__.py: fix Codex hook - use additionalContext instead of permissionDecision:allow (#249)
- detect.py: skip common lockfiles (package-lock.json, yarn.lock, Cargo.lock etc.) (#266)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.4.4
2026-04-12 18:37:54 +01:00
Safi efce74dada update README: 22 languages, add .vue and .svelte to file types table 2026-04-12 13:02:45 +01:00
Safi 4205ae86cb fix bugs #256, #253, #244, #226, #254 and bump to 0.4.3
- extract.py: resolve relative JS/TS imports to full-path IDs (fixes 0 import edges on TS codebases) (#256)
- extract.py: resolve relative Python imports to full-path IDs (#256)
- watch.py: merge fresh AST with existing semantic nodes instead of overwriting (#253)
- hooks.py: add python fallback after python3 for Windows; exit 0 if neither found (#244)
- analyze.py: guard stale _src/_tgt hints with node membership check (#226)
- detect.py + extract.py: add .vue and .svelte to CODE_EXTENSIONS and _DISPATCH (#254)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.4.3
2026-04-12 12:59:15 +01:00
Safi 013313f8d6 add LinkedIn badge to README 2026-04-11 21:15:32 +01:00
Safi b4d4ac8e9b add 0.4.2 CHANGELOG entry 2026-04-11 21:10:45 +01:00
Safi 62aac4f868 cherry-pick PRs #212, #220, #204, #221 into 0.4.2
- build/validate: accept NetworkX <=3.1 "links" key alongside "edges" (#212)
- __main__: skip version check during install/uninstall, deduplicate paths (#220)
- all file IO: explicit encoding="utf-8" to prevent crashes on Windows CJK locales (#204)
- hooks: add newline="\n" on write to prevent CRLF shebang breakage on Windows (#204)
- export: strip trailing .md from safe_name so "CLAUDE.md" doesn't become "CLAUDE.md.md" (#221)
- report: add Community Hubs navigation block so Obsidian vault stays connected (#221)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 21:07:39 +01:00
Safi 3c503400cb fix bugs #211, #216, #217, #222 and bump to 0.4.2
- extract.py: use str(path) for node IDs to prevent same-basename collision (#211)
- build.py: normalize from/to edge keys before KeyError (#216)
- export.py: guard ZeroDivisionError when graph has no edges (#217)
- hooks.py: remove stale CODE_EXTS filter, rebuild on any changed file (#222)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.4.2
2026-04-11 20:53:08 +01:00
Safi 625ca0e2f3 Bump to 0.4.1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 18:43:18 +01:00
Safi 271ee0aff6 Fix #188: collect_files() now respects .graphifyignore; fix #195: skill.md requires general-purpose subagent type for extraction dispatch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 18:41:48 +01:00
Safi 0e453083de Remove YouTube URL references from README, use generic <video-url> placeholder
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 16:24:13 +01:00
Safi 209224d08c Add dedicated video and audio corpus section to README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 16:22:53 +01:00
Safi fa388c8556 Security: fix YAML injection in ingest.py, </script> injection in export.py, bound collision loop
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 16:07:51 +01:00
Safi 3ce9bdabf4 Add v4 to CI branch triggers
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 16:01:14 +01:00
Safi 68bb2bd3dc Bump to 0.4.0, set v4 as working branch, update CI badge and skill URL
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 15:59:43 +01:00
Safi 699e9960ce Remove Anthropic API call from transcribe.py - agent generates Whisper prompt itself
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 15:55:22 +01:00
Safi 2c21bc0488 Fix CI: mock lazy anthropic import via sys.modules instead of module attribute
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 15:48:54 +01:00
Safi a2872cafac Add YouTube URL example to README usage, update repo about with pip install
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 15:44:44 +01:00
Safi f758911b10 Update README and descriptions to mention video/audio and YouTube support
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 15:42:35 +01:00
Safi 79acb7e46a Add video/audio corpus support with yt-dlp download and Whisper transcription
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 15:40:18 +01:00
Safi 210243fa58 fix hook reinstall, CRLF labels, skill-windows missing commands (0.3.28) v0.3.28 2026-04-10 10:07:11 +01:00
Safi f7ee752eb1 switch downloads badge to pepy.tech to avoid shields.io rate limit 2026-04-10 09:49:50 +01:00
Safi af3a3d2157 update README Gemini CLI description to mention skill file copy 2026-04-10 01:29:05 +01:00
Safi 55964bc0b1 fix gemini install missing skill file copy (0.3.27) v0.3.27 2026-04-10 01:28:19 +01:00
Safi a0a196e1af update README to list all platforms including Aider, Copilot CLI, Cursor, Gemini in CLI section 2026-04-10 01:09:35 +01:00
Safi 863100cb06 fix MCP server path validation security issue (0.3.26) v0.3.26 2026-04-10 01:08:15 +01:00
Safi 1cbcee539f release 0.3.25: Aider + Copilot CLI, directed graphs, frontmatter cache, graphifyignore parent discovery, MCP fixes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 00:56:22 +01:00
Safi cf39034744 Remove Trendshift badge (API not available) v0.3.25 2026-04-09 22:46:47 +01:00
Safi e440539305 Add Trendshift badge to README 2026-04-09 22:45:52 +01:00
Safi ee43236c16 Fix codex/opencode install idempotency — always run hook step (#153) v0.3.24 2026-04-09 17:59:16 +01:00
Safi 54c6d04b75 Switch star history to star-history.com for faster updates 2026-04-09 17:46:34 +01:00
Safi 687fbc810a Update README: add Cursor and Gemini CLI to all platform sections 2026-04-09 17:44:59 +01:00
Safi dcc402e140 Add Gemini CLI support and sponsor nudge at pipeline completion (#105)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.3.23
2026-04-09 17:40:45 +01:00
Safi 0b8067c9d1 Add Cursor to description, README intro, and PyPI keywords 2026-04-09 17:25:36 +01:00
Safi f770712704 Add Cursor support, fix _rebuild_code KeyError and node_link_data crash (#137, #148, #149)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.3.22
2026-04-09 17:19:40 +01:00
Safi a104a0d9fc Add monthly PyPI downloads badge to README 2026-04-09 14:46:13 +01:00
Safi 6f9fc65af4 Fix Codex hook JSON schema (#138) and use #!/bin/sh for Windows git hooks (#140)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.3.21
2026-04-09 14:12:36 +01:00
Safi b101a99d2f Pin tree-sitter>=0.23.0, add version guard, confidence=EXTRACTED for AST calls
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.3.20
2026-04-09 09:36:32 +01:00
Safi b7fd5acc38 Fix AST call edges confidence: INFERRED/0.8 -> EXTRACTED/1.0 (#127)
Tree-sitter resolves call targets directly from source — marking them
INFERRED was incorrect. Cross-file class-level uses edges remain INFERRED.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 09:22:12 +01:00
Safi 38255e733f Fix XSS in HTML viz: escape node labels, types, source files, and edge relations in innerHTML (#sec)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 09:06:02 +01:00
Safi e1864d79c8 Update README for OpenCode tool.execute.before plugin
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 08:56:44 +01:00
Safi 3501605242 Add OpenCode tool.execute.before plugin via graphify opencode install (#71)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 08:55:07 +01:00
Safi 096a76f314 Release v0.3.19
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.3.19
2026-04-09 08:46:26 +01:00
Safi f140d4786d Fix install step: try plain pip before --break-system-packages (#126)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 08:40:17 +01:00
Safi 4d8cffef47 Update CHANGELOG for v0.3.18 with PR fixes (#82 #93 #102 #109)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.3.18
2026-04-09 08:24:29 +01:00
Safi 29c639d97d Apply PRs #82 #93 #102 #109: extension drift, click detection, skill coverage, .graphify_python persistence
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 08:22:01 +01:00