v0.49.3
AFT v0.49.3
Patch release: a callgraph consistency race, two follow-ups from the v0.49.2 community verification round, and a disk-usage fix.
Fixed
Watcher edits during callgraph migration could be lost — an edit arriving while the store migrated to a new generation parked its refresh for a replay that could already have happened, leaving the edit missing from the callgraph until an unrelated later change. The handoff is now closed on both sides, with a deterministic test forcing the exact losing interleaving.
aft_zoom on .jsonc files with a leading comment banner (#185) — a // or /* */ comment before the opening brace made the whole document unresolvable (the resolver anchored on the comment node). Header-banner configs now resolve fully.
aft_zoom miss messages fabricated the resolved prefix (#185) — resolved 'a.b.c', no key 'd' could appear when even a didn't resolve. Misses now report the true deepest resolved prefix and the actual failing segment, with the nearest-key suggestion computed there.
Inspect scope caches accumulated without bound — per-checkout Tier-2 caches from reclaimed worktrees were unreachable forever and grew to tens of GB on busy machines. A background sweep now reaps scope caches untouched for 14 days, exempting live roots and active readers. One deployment reclaimed 21.5 GB.
Changed
- The bash tool description now states that pipeline-failure notes cover single top-level pipelines only; multi-statement commands still need explicit exit-code checks (#186 follow-up).
Thanks again to @iceteaSA for the round-2 verification findings on #185 and #186.