nounCountsByType (read by stats().entitiesByType / counts.byTypeEnum) was incremented in saveNoun_internal(), which runs on every noun write — including the HNSW index re-saving a node whenever its neighbor links change. So per-type counts grew with graph connectivity instead of entity count (an internal report saw 8 documents read as 44). Moved the increment into saveNounMetadata_internal(), gated on isNew + visibility, exactly parallel to the authoritative total; the visibility-flip path adjusts it in lockstep too. Tests: tests/unit/storage/stats-count-accuracy.test.ts (30 dense-type entities -> exactly 30 across stats/counts/getNounCount) + de-theatricalized the >=2 assertion in brainy-core.unit.test.ts to exact equality. Build green; 1455 unit green. Part of the 8.0 readiness audit Phase 1; cold-reopen count rehydration is still WIP. |
||
|---|---|---|
| .. | ||
| blobStorage.compression-policy.test.ts | ||
| blobStorage.test.ts | ||
| getNouns-totalCount.test.ts | ||
| sharding.test.ts | ||
| stats-count-accuracy.test.ts | ||
| storage-path-config.test.ts | ||
| vfs-mkdir-bug.test.ts | ||