Skip to content

0.8.44

Choose a tag to compare

@safishamsi safishamsi released this 19 Jun 14:46

Skill-runbook correctness and a crash fix.

Generated skill (#1392)

Crash & data-loss tier:

  • Semantic chunk files are derived from cwd (where Part C globs graphify-out/), not the scanned dir, so a non-cwd scan no longer produces "no nodes".
  • Code-only corpora write an empty .graphify_semantic.json before Part C, fixing a FileNotFoundError.
  • --cluster-only relies on the self-contained graphify cluster-only CLI instead of re-running steps that read already-deleted intermediate files.
  • The zero-node guard runs before any write, and GRAPH_REPORT.md/analysis are written only when to_json actually persisted the graph (respects the #479 shrink-guard).

Remaining correctness tier:

  • --directed is propagated as directed= into build_from_json (build + rebuild) and build_merge (--update merge + diff), so a --directed / --directed --update run no longer collapses reciprocal edges into an undirected graph.
  • Semantic extraction scopes to document/paper/image only (code is covered by the AST pass), so subagents stop re-reading every source file.
  • .graphify_cached.json is deleted on a cache miss, so a stale cache from a prior run is never merged.
  • --update transcribes changed video files into documents before the semantic pipeline.
  • Transcription writes via write_text, honours GRAPHIFY_WHISPER_MODEL/GRAPHIFY_WHISPER_PROMPT, prints status to stderr.
  • add-watch/exports use the resolved interpreter explicitly; MCP Desktop config documents the absolute interpreter path.

Library

  • The semantic extract entry points no longer crash on FileSlice units. The 0.8.43 #1386 fix coerced every item with Path(f), which raised TypeError on the FileSlice objects from the oversized-text slicing path (#1369). Items are coerced only when not already a Path/FileSlice (#1397, #1399).

Full changelog: https://github.com/safishamsi/graphify/blob/v8/CHANGELOG.md