35. **Round 36 Decode `predL_` / `predL2_` Token-0 Fast Path When `STRATA_METAL_PREFETCH_DRAFT <= 0` (`-16.0%` Hot / `-6.8%` Cold Across `93` Router GEMVs/Window) + Guarded `TM > 32` Row-Tail Trimming in `gemm_hc_down` & `gemm_swiglu_up` (`audits/opus_r36_decode.md`, `audits/sol_r36_prompt.md`, `audits/argon_r36_qsa.md`):** Added `tile_ntok` to `Window::gemv` (`window.cpp`) so when `STRATA_METAL_PREFETCH_DRAFT <= 0` (`= 0` in production, where `ExpertStream::ahead` only reads `t = 0`), the `93` router-guess GEMVs (`47` `predL_` + `46` `predL2_`, `Q8_0` `2560 -> 512`) run at `ntok = 1` on the window's tile (`gemv_8_16_1_4_1#1`), producing **100% bit-for-bit-identical `t = 0` predictions** while cutting their GPU time by **`-16.0%` hot (`21.78 -> 18.30 us`) and `-6.8%` cold (`23.91 -> 22.29 us`)**; added `if constexpr (TM > 32)` row-tail (`TM = 16 / 32`) trimming to `gemm_hc_down` (**`-4.71%` at `T=1025`, `-3.73%` at `T=1041`**) and `gemm_swiglu_up` (**`-1.42%` at `T=1025`, `-1.14%` at `T=1041`, `-0.78%` at `T=1987`**) while preserving `TM = 32` (`SG = 2`) kernels byte-for-byte (`252/252` `epi` bitwise checks `PASS`); and confirmed `qsa_prep` / `qsa_score_mm` are at their M5 register/barrier optimum.
36. **Round 37 Multi-Chunk Prompt Hot-Expert LRU & Scratch Pool Preservation (`stream.h`, `stream.cpp`, `window.cpp`):** Passed `multi_chunk = (n > C)` into `prompt_region(true, n > C)` -> `hold_region(true, multi_chunk)` so 1-chunk prompts (`<= 2,048` tokens) run 100% identically (`42.49 tok/s` / `2,989.17 ms` `@2K` decode — new all-time record, `88.9%` accept), while multi-chunk prompts (`> 2,048` tokens, e.g., `prompt_albedo_11k.txt` at `10,180` tokens) keep `!x.hot` scratch slots at `lru_back(s)` across chunks, mark `pass == 1` demotions `x.hot = false` in `victim()` so `pass == 0` reuses them instead of evicting more `hot` decode experts, and restrict `allow_hot` lookahead to `distance == 1` — boosting `@10.2K` decode from `25.26 tok/s` (`1,227.18 ms`, `45.2%` accept, `2,713` SSD reads) to **`34.01–34.74 tok/s` (`892.47–911.51 ms`, `+34.6–37.5%` faster, `78.3%` accept, `2,073` SSD reads / `-23.6%` fewer SSD reads)** and `@10.2K` prefill from `423.48 tok/s` (`24,038.85 ms`) to **`458.34–472.89 tok/s` (`21,527–22,210 ms`, `-1.83s to -2.51s` faster)**, with pure GPU `T=1983` prefill (`kprof`) hitting **`3,131.29 ms` (`633.28 tok/s` — new all-time record)**.
37. **Round 38 `hold_region` Layer-0 `allow_hot = false` + Prompt/Decode `bytes_read_`/`reads_` Split + `mtp_prefill` `tail_cap` Sync with `STRATA_METAL_MTP_WIN` (`stream.h`, `stream.cpp`, `window.cpp`, `audits/astra_r38_qsa.md`):** Passed `allow_hot = false` to `victim()` during `hold_region(true)`'s initial Layer-0 prefetch (`stream.cpp:1080`) and fallback static lookahead (`stream.cpp:890`) so `hold_region` only fills the `251` `!hot` scratch slots of `cls_[0]` (`IQ2_XXS`) instead of evicting `~180` `hot` decode experts for tail Layer-0 experts that `at_layer(0)` cancels 5 ms later; split `p_bytes_read_`/`p_reads_` from decode `bytes_read_`/`reads_` and zeroed `bytes_read_`/`reads_` after the `6.5 GB` startup arena fill (`fixing the 1-window prefill tail report from 116,128.9 MB / 79,058 reads to the exact 375.2 MB / 258 reads`); synced `Window::mtp_prefill`'s default `tail_cap` with `STRATA_METAL_MTP_WIN` clamped to `[64, 2050]`; and verified in `qsa_parity --ab` (`audits/astra_r38_qsa.md`) that caching `keys[8]` across `qsa_topk2`'s 1024-thread barriers drops M5 occupancy (`+3.5–12.9%` slower at `pos0 = 10180`), pushing `@10.2K` prefill to **`473.80 tok/s` (`21,485.94 ms` — new all-time record!)**, `@10.2K` decode to **`35.21–35.47 tok/s` (`873.92–880.47 ms`, `mtp_ms = 106.34 ms` — new all-time record!)**, `@2K` `prompt_2048tok_ops` decode to **`42.57 tok/s` (`2,982.99 ms`, `mtp_ms = 194.09 ms` — new all-time record!)**, and `reasoning` decode to **`37.20 tok/s` (`5,886.81 ms` — new all-time record!)**.
38. **round 39 — selected strata v0.1.45 ports and checked local fixes:** incremental prompt tokenization, bounded parser scans, content-keyed logit-bias caching, mac telemetry, thinking budgets/answer reservation, and PLE prefetch-key reuse (`36381540`). local review removed upstream's stale identity/length bias shortcut, capped prompt-cache entries at 16, and cached/released the telemetry device query. preserved the text-only image-omission switch. metal prompt load safety and the default moe parity tile are fixed; the local `qsa_merge2` batching experiment is bitwise exact (40 edge cases), but **only tests dispatch it; live engine decode remains on `qsa_merge`**. rejected the cuda score butterfly (memcmp failure) and `qsa_merge` batching (repeatable nt=3 slowdown). active-chunk bounds were already present. standalone CLI smoke: 42.46 tok/s at 1,984 prompt tokens and 34.23 tok/s at 10,180; these are **not paired speedup evidence**. a later alternating before/after check produced identical token IDs in all five pairs, but substantial temporal drift in both builds left performance inconclusive (2k candidate decode time +1.5–1.7%; 10k mixed -3.6% to +2.8%). no zero-regression claim. serving now enables upstream `answer_room` by default (for thinking with output caps >=1,024 and no explicit budget), which can inject a wrap-up instruction; disable it explicitly for parity comparisons to prior service behavior. exact verification and known baseline failures: `audits/r39_integration.md`, `audits/r39_serve.md`, `audits/r39_opus_review.md`; evidence: `results/round39/`.
39. **Round 41 Bonsai-Style Automatic NVMe Prompt & Conversation `.kvc` Cache (`--cache-disk` / `--cache-disk-size 16384`) + 2-Prompt Shared-Prefix Learning & Pinning + MTP Sliding-Window Session Persistence (`window.cpp`, `strata_window_cli.cpp`):** Ported the automatic NVMe `.kvc` disk tier and 2-prompt shared-prefix learning/pinning architecture from `okami.mom/llama-cpp-bonsai` (`prompt-cache-disk`, `cache-tuning`, `prefix-learn`, `prefix-restore`) into `strata_window_cli --serve` and `window.cpp`: (1) preserved the MTP draft layer's valid KV cell range (`mtp_sink_`, `mtp_cell0_`, `mtp_cell1_`) in `scr::SessionHeader::flags` across `Window::session_save` / `Window::session_load` and shifted `mtp_cell0_`/`mtp_cell1_` in `Window::scr_relocate` so restored/relocated sessions retain full MTP draft context without re-prefilling; (2) added `DiskCache` (`--cache-disk <dir>` / `STRATA_METAL_CACHE_DISK`, `--cache-disk-size <mib>` / `STRATA_METAL_CACHE_DISK_MIB`, default `16384 MiB`) with `< 1 ms` startup `.kvc` header indexing (`scr::SessionHeader` + `n_ids * 4` token IDs + `.pads` + `.pin` without reading the `120 MiB+` KV payload), corrupt/partial file cleanup, post-`DONE` zero-latency auto-save (`4`-thread `F_NOCACHE` `pwrite` at `5.2 GB/s`), and automatic obsolete-prefix pruning; (3) added `observe_prefix` (`prompts-seen.bin`) which detects when any 2 distinct prompts share a prefix `>= 32` tokens, splits prefill at `learn_at = lcp`, and saves a pinned `.kvc` + `.pin` checkpoint (up to `16` pins, never evicted by normal conversation LRU); and (4) wired `find_best` in `serve_loop` so cross-conversation switches, server restarts, and middle-edited prompts (`[A B C] -> [A B' C D]`) automatically save the dirty resident session to NVMe, restore the best matching `.kvc` session (`pread` at `5.2 GB/s`), and run either exact continuation (`cached_tokens = 104 / 130` on `Conv B Turn 2`, `cached_tokens = 65 / 89` on brand-new `Conv C Turn 1` from pinned system prefix) or `scr_plan` + `scr_relocate` splice directly over NVMe (`cached_tokens = 149 / 184` on middle-edited `Conv D Turn 2`!). Also fixed `SAVE` / `RESTORE` wire responses (`SAVED <tokens> <bytes> <ms>` / `RESTORED <tokens> <bytes> <ms>`, `30/30` `serve.test_slots` unit tests `OK`).
- [`Niko1221/Strata`](https://github.com/Niko1221/Strata) and [`ggml-org/llama.cpp`](https://github.com/ggml-org/llama.cpp)
- [`ukisai/Swift-1.5-Qwen3.8-Flash-Next-GSQ-RCO-GGUF`](https://huggingface.co/ukisai/Swift-1.5-Qwen3.8-Flash-Next-GSQ-RCO-GGUF), [`ukisai/Swift1.5-Qwen3.8-Flash-Next`](https://huggingface.co/ukisai/Swift1.5-Qwen3.8-Flash-Next), and [`Qwen/Qwen3.8-Flash-Next`](https://huggingface.co/Qwen/Qwen3.8-Flash-Next)
- [`astrra.space/ds4-recipe`](https://tangled.org/astrra.space/ds4-recipe) and [`anima-research/connectome-host`](https://github.com/anima-research/connectome-host)
- [`astrra.space/ds4-recipe`](https://tangled.org/astrra.space/ds4-recipe), [`okami.mom/llama-cpp-bonsai`](https://tangled.org/okami.mom/llama-cpp-bonsai), and [`anima-research/connectome-host`](https://github.com/anima-research/connectome-host)
### papers
- *on the design of qwen3.8-next architecture* (`arXiv:2608.30320`)
- *mixture of cache-conditional experts* (`moce`, `arXiv:2412.00099`) & *acceptmoe* (`arXiv:2608.02989`)