github safishamsi/graphify v0.7.18

5 hours ago

What's new

  • graphify update is now idempotent — graph.json and GRAPH_REPORT.md only rewritten when content actually changes; topology comparison short-circuits clustering on unchanged graphs (#824)
  • Stable community IDs across rebuilds — deterministic Leiden/Louvain inputs (sorted + fixed seed); greedy overlap remapper preserves existing IDs so hand-edited labels don't drift (#824)
  • graphify update --no-cluster — skip reclustering, write raw AST graph only (mirrors graphify extract --no-cluster) (#824)
  • Fix --no-cluster schema — now writes "links" key consistent with the full clustered path; previously toggled to "edges" on every mode switch
  • Fix labels file churn.graphify_labels.json no longer rewritten on no-op rebuilds
  • Fix shrink-check duplication — unified into a single _check_shrink() helper across both code paths
  • Fix node ID format in skill.md — corrected to {parent_dir}_{filename_stem}_{entity}; the old filename-only format caused ghost-duplicate nodes when AST and semantic extractors disagreed; existing graphs with ghost duplicates can be cleaned with graphify extract --force
  • Fix serialization crashesdefault=str in clustering sort keys prevents crashes on non-JSON-serializable edge attributes
  • Docs — Prerequisites, optional extras table, env vars reference, troubleshooting, and dev setup added to README (#833)

Install / upgrade

pip install -U graphifyy
# or
uv tool install graphifyy

Don't miss a new graphify release

NewReleases is sending notifications on new releases.