v1.10.1
A follow-up patch to 1.10.0's security review. A second, fix-completeness pass
found that several 1.10.0 fixes had landed at the exact site the first review
named but not at their structurally identical siblings — reintroducing the
classes they were meant to close — plus one genuine regression the 1.10.0
dependency bump carried in silently.
Pin this over 1.10.0. All fixes; no API change (Hard tier unchanged).
Highlights
- 🩹 Restored a runaway-parse guard that 1.10.0 silently broke. The
gotreesitter0.20→0.40 bump changed the parse-timeout contract — 0.20
returned an error on timeout, 0.40 returns a truncated tree with a nil
error (tree.ParseStoppedEarly() == true). The chunker only checked the
error, so on a pathological/slow file it stopped falling back to the line
chunker and instead chunked a partial AST — with the degradation invisible
(theparseErrstat never incremented). Now detects the early stop and falls
back, restoring the pre-bump behavior. Regression-tested. - 🔒 Finished the 1.10.0 crash-class fixes at their missed sites. Two matmul
entries (MatmulBTW8A8Batch,MatmulBTAcc64) still panicked uncatchably
inside worker goroutines on a bad shape — the M2 hazard 1.10.0 closed
everywhere else; a grep-checklist now confirms all nine fan-out matmuls are
guarded. And theid = 100OOB-token fallback (which panics on any vocab ≤
100, e.g. the repo's ownvocab_size:4fixtures) was still live in the primary
EncodeBatchpath and two others — all five gathers now share one
clampTokenIDhelper. - 🖼️ Qwen2.5-VL loader brought to the vision H7/H8 bar. Shape-checked
patch-embed, plusvalidate()now rejects a head_dim not divisible by 4
(rotary ÷0), an unsupportedhidden_act, and a zerotemporal_patch_size. - 🧷 Closed the last mmap use-after-free. The bare per-
Tensorsafetensors
accessors (Float32s/…/BFloat16sToF32) could bemunmap'd mid-read; a new
Tensor.ownerback-pointer +runtime.KeepAlivefixes the whole class. And a
crafted HNSW blob withmL = +Infno longer panics on Add-after-load (Load
recomputesmLfromm).
Upgrade notes
- Patch release — no API change, straight drop-in from 1.10.0.
- No behavior change on well-formed input; the fixes affect only mismatched /
crafted / small-vocab / pathological inputs, plus the treesitter fallback which
now (correctly) triggers on a timed-out parse instead of silently chunking a
partial tree.
The full categorized changelog is in
CHANGELOG.md → 1.10.1.