Skip to content

graphify update <path> silently fails to discover newly-added files/directories, even with --force and a cleared cache #1837

Description

@Afrodoc555

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

  1. 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).
  2. 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.json0).
  3. Retry with graphify update . --force — identical output, still not discovered.
  4. Delete graphify-out/cache/stat-index.json (to rule out a stale discovery cache) and retry graphify update . --force — identical output.
  5. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions