Deps: none — the accelerating index EXISTS in be/ today. shared/graf.js
(GRAF-001) maintains a persistent lazy ahead/behind COUNT cache over
*.graf.idx, and views/work/work.js already consumes it (grafFor); status/
quad bypass it and recompute from scratch. Perf, not dedup. See graf.
dag.aheadBehind(k, base, track), which builds the
COMPLETE ancestor-node map of BOTH sides (dag.js:76-96) — O(history)
parent-BFS + parseCommit per node — on EVERY status (the default view).grafFor(repo) shape (open once per shard, null on no
keeper / graf.open throw) rather than a second opener.quadOf to graf.open(shardDir).aheadBehind countsdag.aheadBehind
only when the row list is actually renderedCODE-025: status ahead-behind via graf.idx count cache.