Skip to main content

cache_namespace

Function cache_namespace 

Source
pub fn cache_namespace(phrase_json: &str) -> String
Expand description

Render, vet and featurize one term under phrase_json — the farm worker’s entire job, and a pure function of its two arguments.

The phrase travels with the handshake rather than being reconstructed from a default, so a farm worker can never measure φ under a stimulus the pool was not measured under. A vet failure returns ok:false rather than throwing: a quarantined draw is a normal outcome, and the engine consumes its index either way.

want_audio decides whether the ~565 KB buffer comes back at all. The engine’s own fill asks for φ only (its RenderPolicy::Lazy pool keeps no audio at admission), so the flag exists to let the caller pay for audio exactly where it will be heard — the first few patches, which are the ones the user auditions while the rest of the bank lands. The persistent render cache’s namespace for phrase_json, or "" if the phrase does not parse.

Two rows may only be compared, stored or served under the same namespace: it pins both the stimulus and auracle_features::RENDER_EPOCH, the featurizer’s own generation. A build whose φ differs from the one that wrote a row therefore cannot read it — the namespace simply does not match, so there is no stale-row path to get wrong.

The store this keys is namespace → key → CachedFeatures. Dropping a namespace is how a cache is invalidated, and it is the only correct granularity: φ moving invalidates everything measured under the old φ.