Files
meshcore-analyzer/cmd/server
n30nex 1dfcd0f5d3 fix(analytics): preserve distance invalidation during an active build (#2284)
Red commit: `38c0abe1` ([failing
CI](https://github.com/Kpa-clawbot/CoreScope/actions/runs/40190273036)).

Fixes #2281. Background-fill completion could reset an active
`sync.Once`, causing a fatal mutex unlock or letting an older distance
build mark an incomplete index ready. Build admission now uses the
existing mutex, and a generation check prevents stale completion from
consuming invalidation. The loader also releases the store lock before
acquiring the distance gate.

- Deterministic regression drives the actual loader, recomputer and HTTP
handler; the old runtime crash is contained in a child process.
- Two cold observations stay below the normal 5% rebuild threshold. Ten
concurrent callers must share one rebuild, and the final response must
contain the cold path.
- Validation on `b8a2333b`: full server suite, focused distance suite,
ten repeated race runs plus a parent race rerun. Shared-base ingestor
suite passed.
- Browser verified: http://127.0.0.1:18855 returned 202 with
Retry-After, then 200 with 20 paths and 20 hops.
- Constant-time admission/invalidation and one fixed-size counter;
existing computation costs remain unchanged. No schema, settings or
API-shape changes.

Privacy, whitespace and scope checks passed. The external home-directory
preflight bundle is unavailable; applicable checks were performed
locally. Independent review found no outstanding fixes. [Final
CI](https://github.com/Kpa-clawbot/CoreScope/actions/runs/40191246966)
passed on `b8a2333b`, including all three browser shards and both
architecture builds.
2026-10-26 15:42:42 +01:00
..