Summary
graphify update <path> does not discover new files added since the last extraction, even when they sit in a brand-new subdirectory of an already-graphed project. It reports "no changes" instead of adding the new files, and this holds even after clearing the file-discovery cache and passing --force, or scoping update directly at the new subdirectory.
Environment
- OS: Windows 11 Pro
- graphify:
0.9.11 (CLI, invoked directly — not via a skill/MCP wrapper)
- Project: existing
graphify-out/ already present (previously extracted), 83 files in graphify-out/cache/stat-index.json
Reproduction
- In a project with an existing
graphify-out/graph.json, add a new subdirectory with several new source files (in my case: 4 new .py files + 1 .html file, all git added and committed).
- Run
graphify update . from the project root.
- Output:
[graphify watch] No code-graph topology changes detected; outputs left untouched.
- The new files are absent from
graphify-out/graph.json (grep -c "<new_dir_name>" graphify-out/graph.json → 0).
- Retry with
graphify update . --force — identical output, still not discovered.
- Delete
graphify-out/cache/stat-index.json (to rule out a stale discovery cache) and retry graphify update . --force — identical output.
- Scope
update directly at the new subdirectory: graphify update ./monitor_dashboard --force.
- Output:
Re-extracting code files in monitor_dashboard (no LLM needed)... [graphify watch] No code files found - nothing to rebuild.
- This is the most surprising result — pointed directly at a directory containing 5 valid, readable, git-tracked source files, and graphify reports finding none.
Confirmed the files themselves aren't the problem:
git ls-files monitor_dashboard/ lists all 5 files correctly (tracked, not gitignored).
ls -la monitor_dashboard/*.py shows normal permissions and recent-but-not-zero mtimes.
- No
.graphifyignore or similar exclude config exists in the project.
graphify-out/.graphify_root correctly points at . (project root).
Expected
graphify update . (or graphify update <new-subdir>) discovers the new files and adds them to graph.json, per the documented "AST-only, no API cost" incremental-update behavior.
Actual
New files/directories are invisible to update in every mode tried (project-root scope, subdirectory scope, with/without --force, with/without a cleared stat-index.json cache). The command exits cleanly with no error, which makes this easy to miss — it looks like a successful no-op rather than a failure to discover new code.
Workaround attempted
None found via the CLI. Did not try a full non-incremental rebuild (e.g. deleting graphify-out/ entirely and re-running the initial extraction), since that would lose the project's existing clustering/community-naming work and wasn't something I wanted to do to a live project without confirming it's actually necessary.
Related to (but distinct from) #1742 — that one is a skill-invocation entrypoint failure on opencode; this is a plain-CLI file-discovery failure with no opencode/skill layer involved.
Summary
graphify update <path>does not discover new files added since the last extraction, even when they sit in a brand-new subdirectory of an already-graphed project. It reports "no changes" instead of adding the new files, and this holds even after clearing the file-discovery cache and passing--force, or scopingupdatedirectly at the new subdirectory.Environment
0.9.11(CLI, invoked directly — not via a skill/MCP wrapper)graphify-out/already present (previously extracted), 83 files ingraphify-out/cache/stat-index.jsonReproduction
graphify-out/graph.json, add a new subdirectory with several new source files (in my case: 4 new.pyfiles + 1.htmlfile, allgit added and committed).graphify update .from the project root.[graphify watch] No code-graph topology changes detected; outputs left untouched.graphify-out/graph.json(grep -c "<new_dir_name>" graphify-out/graph.json→0).graphify update . --force— identical output, still not discovered.graphify-out/cache/stat-index.json(to rule out a stale discovery cache) and retrygraphify update . --force— identical output.updatedirectly at the new subdirectory:graphify update ./monitor_dashboard --force.Re-extracting code files in monitor_dashboard (no LLM needed)... [graphify watch] No code files found - nothing to rebuild.Confirmed the files themselves aren't the problem:
git ls-files monitor_dashboard/lists all 5 files correctly (tracked, not gitignored).ls -la monitor_dashboard/*.pyshows normal permissions and recent-but-not-zero mtimes..graphifyignoreor similar exclude config exists in the project.graphify-out/.graphify_rootcorrectly points at.(project root).Expected
graphify update .(orgraphify update <new-subdir>) discovers the new files and adds them tograph.json, per the documented "AST-only, no API cost" incremental-update behavior.Actual
New files/directories are invisible to
updatein every mode tried (project-root scope, subdirectory scope, with/without--force, with/without a clearedstat-index.jsoncache). The command exits cleanly with no error, which makes this easy to miss — it looks like a successful no-op rather than a failure to discover new code.Workaround attempted
None found via the CLI. Did not try a full non-incremental rebuild (e.g. deleting
graphify-out/entirely and re-running the initial extraction), since that would lose the project's existing clustering/community-naming work and wasn't something I wanted to do to a live project without confirming it's actually necessary.Related to (but distinct from) #1742 — that one is a skill-invocation entrypoint failure on opencode; this is a plain-CLI file-discovery failure with no opencode/skill layer involved.