v1.1.02026-10-02
Chat, native Windows builds, an 8 GB class mode for the complete model, NEON kernels for ARM, and a round of hardening on everything that parses checkpoint files. Output is unchanged wherever it was already defined: every oracle gate still matches the PyTorch reference exactly.
One compatibility note: --save-state files are now version 2, with a checksum. A version 1 file is refused rather than read; regenerate it with --gen 0 --incremental --save-state.
New
- --chat: the official K3 XTML chat format, with JSONL history, --no-think, --thinking-effort, and opt-in sampling through --temperature, --top-p, --top-k and --seed. Greedy by default. Later turns reuse the previous turn's state instead of re-prefilling the transcript, behind a bit-exact gate.
- --preset ultra: the complete 93-layer model in an 8 GB class memory budget, verified with four full runs on a Jetson Orin Nano Super.
- Native Windows builds through MSYS2 MinGW-w64, with every gate passing, and NEON kernels on arm64.
- Ctrl-C stops at a safe point, still writes the state file, the results and the reports, and exits 5. A second Ctrl-C kills.
- --stop-id, --gen 0 to warm a prefix once and resume it many times, --threads, and --trunk-ring.
- download-model.sh <dest> --layers N fetches only the shards a layer prefix needs, about 7 GB for N=1, for trying the pipeline on a disk too small for the checkpoint.
Faster, output unchanged
- The MXFP4 expert matmul is about 1.6x faster, with another 1.56x from a flat-row AVX2 path.
- Trunk layers are read in parallel chunks and pinned largest-first; expert reads are split into 1 MiB chunks.
- On Linux the thread count now defaults to physical cores, which measured about 1.3x faster per token on a 16-core SMT machine.
Fixed
- --preset auto could not start on machines with roughly 100 GB or more available, and printed a negative shortfall.
- macOS: reads of 2 GiB or more failed, and available memory read as 0, which switched off both memory checks.
- Hardening across the safetensors reader, trunk.json and the JSON parser: integer overflow, out-of-bounds reads, overlapping or gapped tensor spans, and truncated documents. Checked against the released checkpoint's own files, including all 96 shard headers.
- A batched prefill path summed uninitialized memory when an expert failed to load.
- A partial download now names the missing file, using the checkpoint's real file names.
- State files are checksummed and saved by atomic rename, so a failed save no longer destroys the previous one.
Verification
make test, ctest, both sanitizer jobs and the strict-warnings build are green on Linux, macOS and Windows, and every oracle gate matches the PyTorch reference exactly.
Thanks to everyone whose work is in this release: @Avicennasis, @FermiHart, @cablepull, @Deobot2, @BlakeEvans22, @santhoshsathish94, @Irfanwani, @AuricTW, @arafatsolok, @genesisrevelationinc-debug, @TROY665, @openchat-ai, @ysgao, @ShaalanMarwan, @cwwjacobs, @biokraft and @Barba2k2.
Full log in CHANGELOG.md. Diff: v1.0.0...v1.1.0.