---
version: 0.24.0
date: 2026-06-19
headline: "fak serves real ChatML chat from the in-kernel model on the OpenAI-compatible endpoints; GLM-5.2 DSA and q4_k NEON decode land native."
themes:
  - in-kernel
  - cachemeta
  - public-ready
  - dos
---

**TL;DR** - The in-kernel model is now the chat backend on `/v1/chat/completions` and `/v1/messages` (real ChatML via `internal/tokenizer`, not the offline mock planner), with per-turn prefill/decode tok/s surfaced. GLM-5.2 DSA gains native in-kernel support (tiny-oracle cacheless forward, incremental DSA KV cache), and the Q4_K path ships a resident weight loader + NEON SDOT int8 decode GEMV (~6.2x). A cachemeta plane (KV-transfer, manifest/plan/provider, attention_index, vDSO emission) lands underneath. On the tooling side: the public-copy scrubber stops crying wolf on every Go import, DOS ships get a verifiable stamp trailer, and the public export verifies clean end-to-end.

## In-kernel chat + native decode (#in-kernel)

- **The resident model serves `/v1/chat/completions` and `/v1/messages` directly.** With `fak serve --gguf --tokenizer` and no `--base-url`, both OpenAI-compatible routes run real ChatML chat through the in-kernel engine (`internal/agent/inkernel_planner`, `internal/tokenizer`) instead of the offline mock planner. Proxy mode (`--base-url`) still wins.
  - *Why:* fak's own engine was a benchmark victim, not a servable chat backend. This closes that loop for dogfood and laptop-class serving.
  - *How:* `fak/cmd/fak/main.go` (config wiring); `fak/internal/gateway/gateway.go` (chat planner); `fak/internal/agent/inkernel_planner.go`.
- **Per-turn prefill/decode tok/s are emitted** from the chat planner so throughput is visible alongside correctness.
- **GLM-5.2 DSA is natively supported in-kernel** (tiny-oracle cacheless forward + `attention_index`), with real-HF parity green on this box and an incremental DSA KV cache.
  - *How:* `fak/internal/model/{glm_dsa,glm_dsa_session,dsa_index}.go`; oracle fixture via `export_oracle.py --trust-remote-code`.
- **Q4_K resident weight path + NEON SDOT int8 decode GEMV ship** (QWEN36-NATIVE-PERF P1/P2): a direct-resident-Q4_K loader holds eligible matmul tensors raw, and the decode path runs a ~6.2x NEON SDOT GEMV with integer reductions in asm + float combine in Go (first-token bit-identity verified). `FAK_Q4K=1` selects it at `fak serve --gguf`.
  - *How:* `fak/internal/model/{quant_q4k_resident,quant_arm64_q4k.{go,s}}`; loader `fak/internal/ggufload/quant_q4k_loader.go`; diagnostics `fak/cmd/q4kdiag`.

## Cachemeta plane (#cachemeta)

- **KV-transfer + manifest/plan/provider + attention_index + vDSO emission land** as the cachemeta substrate under the model path, with the `ggufload` lane registered in the DOS roster.
  - *How:* `fak/internal/cachemeta/{kvtransfer,manifest,plan,provider,attention_index,cachemeta}.go`; `fak/internal/vdso/cachemeta_emit.go`; `dos.toml`.

## Public-copy readiness (#public-ready)

- **The leak-scan scrubber stops over-blocking on the Go module path.** `AUDIT_NEEDLES` (the commit gate) now holds secrets only; the former private module path moves to `EXPORT_AUDIT_NEEDLES` (post-export verification), so Go commits that add an import no longer force `FLEET_ALLOW_LEAK=1`. Self-referential tooling files are exempt from the export audit; the post-scrub audit exits clean.
  - *How:* `tools/scrub_public_copy.py`; `PUBLIC-SCRUB-POLICY.md`; `tools/githooks/pre-commit`.
- **Real Tailscale IPs redacted from public-side fixtures/docs** to the generic CGNAT placeholder (defense-in-depth; the export scrub is the primary gate). Remaining real-IP occurrences live only in private-side files excluded from every export.
- **Fan-out / shared-prefix scale ladder (256K..1M)** added to fanbench/turnbench with results; **agent-link `a2a-card` projection** + value-opportunity map documented.

## DOS verifiability (#dos)

- **Fleet Conventional-Commits ships now bind via a `(fak <leaf>)` trailer** (`[stamp] trailer_stamp = true`), so `dos verify fak <leaf>` and the goal-gate referee can see the `type(scope):` subjects the fleet actually writes. Closes the DOS-INSTALL-AUDIT gap ("none of your last 50 commits name a unit of work"). A `commit_stamp_doctor.py` reports stamp coverage.

## Fixes

- **gateway:** same-tick `ready` is treated as positive `timeToReady` (no spurious negative latency).
- **contextq:** view-cache payload bytes are copied on `Put`/`Get` (no aliasing into reused buffers).

## Notes

- **CI gate.** As with v0.23.0, the tag is held pending GitHub Actions billing (`release_decide`: `CI_BASE_RED`; `gh run view` shows "job was not started because recent account payments have failed") - a billing artifact, not a code failure. Per `AGENTS.md`, fleet treats the `ci.yml` axis as N/A; the witness is the local release-substrate suite (`python tools/release_dry_run.py --json HEAD` -> pass) plus the full `fak` Go suite (`go test ./...` -> all green). The release commit lands on `master`; the tag follows.
- **Scoped release.** Only `VERSION` + this note were committed; no `fak/**` source was staged (another session's in-kernel-planner timing work is left dirty).
