fix(resolve): refresh the pool snapshot before the first calls batch fans out
Merged
BO
1mo ago+41+41+01234567890123456789-33-33-01234567890123456789
The post-prerequisite snapshot refresh (#159, #168) ran at the idle boundary right after a batch settled. At that point the settled batch's supertype edges hadn't been inserted yet. When the settled batch was the last prerequisite batch, the refresh therefore waited a whole iteration. Meanwhile the first calls batch fanned out on the stale snapshot and sent every supertype walk back to TypeScript (rmot-supers/btm-supers: 109 on laravel).
The refresh now runs after the insert and before the next fan-out. That's still an idle boundary: the settled batch is finished and the next one hasn't started. The block itself is unchanged.
| Corpus | Punts before | Punts after | Dump, kernel vs CODEGRAPH_KERNEL_RESOLVE=0 |
|---|---|---|---|
| laravel (worker pool) | 109 (rmot-supers 89, btm-supers 20) | 0 | identical |
| vitest, ktor, celery | unchanged | unchanged | identical |
Full suite: 317 files, 5233 passed, 11 skipped. Ledger: docs/design/metrics-ledger.md §5.78.