-
refactor: complete rolling-hash rollout — composite/srcRel/dstRel keys + key-tracked cache invalidation
released this
2026-08-03 23:35:08 +00:00 | 2 commits to master since this releaseCompletes the rolling-hash rollout (previously only createChainKey hashed):
- createCompositeKey, createSrcRelKey, createDstRelKey, and the
valueRelationsBySrc/Dst keys now produce 53-bit rolling hashes instead of
src|rel|dststring concatenation. Direction markers keep srcRel vs dstRel
distinct; the composite/chain keys are exact integers usable as Map keys. - Direct-check cache invalidation is now key-TRACKED instead of pattern-
matched: every direct-check result is registered under the checked relation,
its base relations (reverse dependency index), and the subject/object node
ids (Arbiter._trackDirectCheckKey). Relation-level invalidation deletes the
tracked keys for each affected relation (covering config-override checks);
node-level invalidation (node removal / updateNodeData) deletes by node id.
This replaces the pipe-delimited-string regex matching that required the old
key format. - DecisionCache.invalidateByNodeKey and invalidateAll route through the tracked
indexes; tracking maps are cleared on full flush.
Tests updated to the tracked contract (register injected keys via
_trackDirectCheckKey); full suite green.Downloads
- createCompositeKey, createSrcRelKey, createDstRelKey, and the