Ask
An optional snapshot / as_of parameter on memory.recall and knowledge.compose that pins the read to a named store snapshot or content-hash state, so repeated calls against a fixed corpus state return identical results regardless of concurrent writes.
Consumer
Programmatic memory-injection benchmarking: frozen-substrate arms require injection from a pinned state, with runs reproducible after the fact. First consumer carries an interim workaround (per-arm dedicated namespace, seeded once, writeback disabled — behaviorally equivalent for read-only arms), so this is about doing it properly, not unblocking.
Notes
- Design fit: khive-vcs already has content-addressed snapshots + branch pointers (ADR-010) — evaluate reusing that machinery as the pin target rather than inventing a parallel snapshot concept.
- Stable-read semantics must hold across the hybrid path (FTS + vector + decay weighting): decay is time-dependent, so "identical results" needs a position on whether the decay clock pins too (probably yes — pin the scoring timestamp along with the corpus state).
- Consumer will supply exact call-shape requirements at design time.
- Sequencing: queued into the design register after the resource-management SPEC and the git/gateway SPEC (orchestrator-routed, non-urgent).
Ask
An optional
snapshot/as_ofparameter onmemory.recallandknowledge.composethat pins the read to a named store snapshot or content-hash state, so repeated calls against a fixed corpus state return identical results regardless of concurrent writes.Consumer
Programmatic memory-injection benchmarking: frozen-substrate arms require injection from a pinned state, with runs reproducible after the fact. First consumer carries an interim workaround (per-arm dedicated namespace, seeded once, writeback disabled — behaviorally equivalent for read-only arms), so this is about doing it properly, not unblocking.
Notes