SIGN IN SIGN UP

fix(cache): sibling-lane memory-wave discipline + idle-rederive exemption

Post-release deep audit (two Fable source sweeps over the five API dialects
and the three cache-tier configs) found two residuals of the just-fixed
defect families, both in sibling lanes of the proven fixes:

1) Scheduler._prefill_for_prompt_only_cache -- the batched twin of the MLLM
   clean-prefill loop -- had per-chunk mx.eval but no per-chunk
   mx.clear_cache(). The MLLM loop got that in e8b2b6087 after retained
   chunk transients stacked into the memory wave that killed the serve
   process; this lane runs the same post-turn work for ZAYA / mixed-SWA /
   MiniMax-M3 deferred clean stores and the hybrid-text idle rederive.

2) run_idle_rederive stored companions WITHOUT the positional-latent
   exemption (the fourth store site missed by 1c282ae23), overwriting the
   exemption-correct entry the clean pass had just stored at the same key
   -- shifting the fetch splice's sequential slot fill on models with
   interleaved exempt slots and re-opening the O(ctx)-per-checkpoint
   companion growth -- and double-storing a 50-200MB clone + disk
   write-through every time it ran. It now skips entirely when the clean
   pass already stored (has_complete probe) and filters exempt slots when
   it does store.

Tests: source pin on the batched loop's per-chunk clear; behavior tests for
the rederive dedupe and exemption filtering.
J
Jinho Jang committed
e40ee6ea0f871cc3b8adefcba3b437d111095f52
Parent: 11b539e