From d7a54d7e14e5a8ffd757c5341d4ddfa6243bc89f Mon Sep 17 00:00:00 2001 From: Safi Date: Sun, 5 Apr 2026 00:29:42 +0100 Subject: [PATCH] fix critical install bug, add --graphml to pipeline, update changelog --- CHANGELOG.md | 12 ++++++++++++ graphify/skill.md | 22 +++++++++++++++++++--- skills/graphify/skill.md | 22 +++++++++++++++++++--- 3 files changed, 50 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77c14ef8..fed7b6c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## 0.1.4 (2026-04-05) + +- Replace pyvis with custom vis.js HTML renderer - node size by degree, click-to-inspect panel with clickable neighbors, search box, community filter, physics clustering +- HTML graph generated by default on every run (no flag needed) +- Token reduction benchmark auto-runs after every pipeline on corpora over 5,000 words +- Fix: 292 edge warnings per run eliminated - stdlib/external edges now silently skipped +- Fix: `build()` cross-extraction edges were silently dropped - now merged before assembly +- Fix: `pip install graphify` → `pip install graphifyy` in skill Step 1 (critical install bug) +- Add: `--graphml` flag implemented in skill pipeline (was documented but not wired up) +- Remove: pyvis dependency, dead lib/ folder, misplaced eval reports from tests/ +- Add: 5 HTML renderer tests (223 total) + ## 0.1.3 (2026-04-04) - Fix: `pyproject.toml` structure - `requires-python` and `dependencies` were incorrectly placed under `[project.urls]` diff --git a/graphify/skill.md b/graphify/skill.md index 27ba189f..8a50caf1 100644 --- a/graphify/skill.md +++ b/graphify/skill.md @@ -57,7 +57,7 @@ Follow these steps in order. Do not skip steps. ### Step 1 - Ensure graphify is installed ```bash -python3 -c "import graphify" 2>/dev/null || pip install graphify -q --break-system-packages 2>&1 | tail -3 +python3 -c "import graphify" 2>/dev/null || pip install graphifyy -q --break-system-packages 2>&1 | tail -3 ``` If the import succeeds, print nothing and move straight to Step 2. @@ -498,9 +498,25 @@ print('graph.svg written - embeds in Obsidian, Notion, GitHub READMEs') " ``` -### Step 7c - SVG export already covered in Step 7b above +### Step 7c - GraphML export (only if --graphml flag) -_(No separate --obsidian flag - Obsidian vault is always generated in Step 6 by default.)_ +```bash +python3 -c " +import json +from graphify.build import build_from_json +from graphify.export import to_graphml +from pathlib import Path + +extraction = json.loads(Path('.graphify_extract.json').read_text()) +analysis = json.loads(Path('.graphify_analysis.json').read_text()) + +G = build_from_json(extraction) +communities = {int(k): v for k, v in analysis['communities'].items()} + +to_graphml(G, communities, 'graphify-out/graph.graphml') +print('graph.graphml written - open in Gephi, yEd, or any GraphML tool') +" +``` ### Step 7d - MCP server (only if --mcp flag) diff --git a/skills/graphify/skill.md b/skills/graphify/skill.md index 27ba189f..8a50caf1 100644 --- a/skills/graphify/skill.md +++ b/skills/graphify/skill.md @@ -57,7 +57,7 @@ Follow these steps in order. Do not skip steps. ### Step 1 - Ensure graphify is installed ```bash -python3 -c "import graphify" 2>/dev/null || pip install graphify -q --break-system-packages 2>&1 | tail -3 +python3 -c "import graphify" 2>/dev/null || pip install graphifyy -q --break-system-packages 2>&1 | tail -3 ``` If the import succeeds, print nothing and move straight to Step 2. @@ -498,9 +498,25 @@ print('graph.svg written - embeds in Obsidian, Notion, GitHub READMEs') " ``` -### Step 7c - SVG export already covered in Step 7b above +### Step 7c - GraphML export (only if --graphml flag) -_(No separate --obsidian flag - Obsidian vault is always generated in Step 6 by default.)_ +```bash +python3 -c " +import json +from graphify.build import build_from_json +from graphify.export import to_graphml +from pathlib import Path + +extraction = json.loads(Path('.graphify_extract.json').read_text()) +analysis = json.loads(Path('.graphify_analysis.json').read_text()) + +G = build_from_json(extraction) +communities = {int(k): v for k, v in analysis['communities'].items()} + +to_graphml(G, communities, 'graphify-out/graph.graphml') +print('graph.graphml written - open in Gephi, yEd, or any GraphML tool') +" +``` ### Step 7d - MCP server (only if --mcp flag)