Skip to content

v2.0.1 — Silent-Failure Fixes

Latest

Choose a tag to compare

@Daigtas Daigtas released this 03 Sep 05:38

Two silent failures found while dogfooding v2.0.0 on real projects. Both reported success while quietly doing nothing — the worst kind of bug in an indexer, because the output looks complete.

Unreadable paths were skipped without a word

walk_source_files() and the parse worker both swallowed OSError, so any file or directory the user lacked read permission on simply never entered the index. No warning, no count — and the scan line still printed a healthy-looking summary.

On a real project this hid five root-level config files, including a Next.js middleware.ts, from an index that otherwise looked complete and passed glyph doctor. find had counted those files (listing needs only directory permission), so even a manual cross-check said the index was whole.

Scans now report every path they could not read:

[glyph] myproject: 284 parsed, 0 skipped — 6,462 symbols, 8,750 edges (3,954 linked)
  ⚠ 2 path(s) skipped — the index is incomplete:
      middleware.ts — Permission denied
      lib/admin — Permission denied

glyph refresh shows a per-project count, and the scan result dict gains an unreadable list.

glyph fallow <project> dupes ingested nothing against Fallow 3.x

The ingester looked for a top-level duplications key containing files[].path. Fallow 3.x emits clone_groups containing instances[].file. Every run printed dupes: 0 issues (fallow v3.22.0) and exited 0 — indistinguishable from a genuinely clean codebase.

Both shapes are accepted now. The same project went from 0 to 4,261 duplicate blocks, matching Fallow's own clone_instances stat exactly.

Upgrading

git pull && ./install.sh
glyph refresh          # re-scan; watch for any ⚠ lines
glyph fallow myproject dupes

No schema change and no re-index required — but if you have ever scanned a tree with mixed permissions, re-scan and check for warnings. Your index may have been missing files this whole time.

Full changelog: CHANGES.md · v2.0.0...v2.0.1