946fcd4f9f
An all-grouped container (kv_b_proj at fmt=4) generates one correct token and then EOS: qt_addrow and qt_matvec_rows handle fmt 0/1/2 and fall through to the int2 decoder, so grouped-int4 kv_b was unpacked as 2-bit pairs under a per-row scale that does not exist in the [O,ng] layout. Prefill (S>4, reconstruction) is unaffected, which made the failure look like an EOS bug rather than an attention bug. Same class as #298 (CUDA absorb kernels missing fmt=4), CPU side. Existing containers escape it because the recommended mixed-precision recipe keeps kv_b at int8 (#237). Adds per-group branches mirroring matmul_i4_grouped semantics. fmt 0/1/2/3 paths are untouched. Co-Authored-By: Claude <noreply@anthropic.com>