You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
python/java/csharp: an edit under a directory named out, build, target or coverage never makes the graph stale #1594
Editing a source file under a directory named out, build, target or coverage never makes the graph stale. The indexer parses these directories, but the refresher never looks inside them. The background refresh never starts, and an explicit axiomcode index answers graph up to date. So impact and path keep answering from the graph as it was before the edit, with no banner. This happens in Python and C# (out, build, target, coverage at any depth below the root) and in Java (coverage).
Reproduction
Measured on 0.1.3 at 0df257c. Take a Python project: app/__init__.py, app/out/__init__.py, app/out/calc.py containing def total(n): return n * 2, and app/main.py, which imports and calls total(1). Commit it, then:
$ axiomcode index . --lang python
$ printf '\n\ndef audit():\n return total(3)\n' >> app/out/calc.py
$ python3 plugins/axiomcode/skills/axiomcode/scripts/ax_fresh.py status .
fresh
$ axiomcode index . --lang python
graph up to date (python) at .../.axiomcode/out/graph.sqlite
$ axiomcode impact total . # audit is not listed
$ rm -rf .axiomcode && axiomcode index . --lang python && axiomcode impact total . # control: audit is listed
Java behaves the same with src/main/java/app/coverage/Calc.java, and C# with src/Shop/build/Calc.cs next to src/Shop/Shop.csproj.
Root cause
plugins/axiomcode/skills/axiomcode/scripts/ax_fresh.py:56-59 prunes the directory names in PRUNE_ALL at every depth, in every language (watched(), :87). The file table, the status check and the uptodate check that axiomcode-build:181 relies on all skip those directories. The parsers skip less:
Python skips only the names in DEFAULT_EXCLUDES (python-project-analyzer.ts:114) and reads a build/ below the root.
C# skips obj bin .git node_modules packages .vs (csharp-project-analyzer.ts:89).
Java reads coverage (constants/consts.ts:11).
A file that the parser reads but the table never records can never differ from the table.
Still present on 0.1.4 at 3df2e33, after #1565: PRUNE_ALL is now at ax_fresh.py:59-62, and the same steps still print fresh in all three languages.
Expected: an edit to any file the parser reads makes the graph stale, and axiomcode index rebuilds it.
Activity
Merge pull request #1614 from AxiomCodeAI/fix/1594-stale-while-revali…
swapnilpaliwal-sd commentedon Sep 28, 2026
Fixed by #1614, merged into 0.1.4.
plugin: answer at once from the last graph with stale rows marked; wa…