fix(mllm-cache): a WARM media turn must store its companion at the NEW boundary
The last link in the multimodal reuse chain. A warm media turn has no
clean-boundary capture (that only runs on a cold request), and the code called
its companion store "redundant" and skipped it outright.
It is not redundant. The KV chain advances to the new turn boundary while the
companion stays at the OLD one, so the NEXT turn finds its blocks and no
companion and re-prefills everything. Measured live on Qwen3.8-27B VL right
after the image-ownership fix landed:
turn 2 (warm): restored 2432 tokens, stored KV out to 2477,
logged "skipping redundant clean-boundary store"
turn 3: Paged cache hit 39 blocks checkpoint_tokens=2477
SSM-EXACT asked_N=2477 hit=False -> full prefill
The state already exists: the inline vmlx#109 capture runs during the warm
turn prefill and logs the snapshot at the new boundary (key=2477). It was
simply being discarded by the `continue`. That `continue` is now scoped to the
genuine cold-miss case, and a warm turn falls through to the inline-checkpoint
store, which already writes with the media salt. J
Jinho Jang committed
1ab278dacfdb170ba6ec0613f6f16e85979e954b
Parent: b041917