Fit reserve re-measured against the shipped runtime
1.5.1 measured the fit reserve against a different llama.cpp than Kayon ships. This one measures the exact build in the box, which is now pinned and checksummed.
- 1.5.1 read each model's vocabulary and reserved VRAM from that. It turned out that was measured against an older llama.cpp than the one Kayon bundles. The build it ships keeps no such reserve in your GPU memory: it moved the output buffer to system RAM, so vocabulary now costs no VRAM at all.
- What is left grows with your context length, and the old model had no term for that. So it reserved too much at short context, and at long context it could reserve too little and tell you a model fits when it does not. This release measures the runtime Kayon actually runs and reserves what it really uses: the model's width plus the context. Checked against llama.cpp's own numbers across six models and two context lengths, the prediction now matches what it allocates to within a rounding error.
- Mixture-of-experts models allocate memory the width formula does not describe; on the one measured, the real figure was about double the estimate. Rather than guess from a single data point, Kayon reserves a deliberately generous fixed amount for any expert model until there is enough data to model it properly. This can only make Kayon more cautious about whether an expert model fits, never less.
- The bundled runtime is now pinned and checksummed. Kayon records the exact llama.cpp build it ships, verifies the checksum before staging it, and refuses to build against anything that does not match. Before this the runtime was an unlabeled local build that reported its version as “1”. Releases are now built by GitHub Actions from that pinned runtime rather than by hand.