By Simon Gonzalez de Cruz (follow the build in public on X @KyaniteLabs_). Night 3 inversion, 2026-08-20. The first version of this note is still the URL. The map was wrong.
The number first: 6/6 exact needle retrieval at ~198k after we reverted llama.cpp c7d8722. Same seed. Byte-identical planted codes. Every cell finish_reason=stop. Zero attractor outputs. The “degenerate basin” we shipped on 2026-08-19 was substantially a host-buffer bug on this integrated GPU, not a depth law of Qwen3.8-27B.
Anchor pair, token-identical prompts, server prompt_tokens=198,228 both nights: pre-revert miss (ok) → post-revert exact HIT. Only delta = the revert. Raw: needle-format-2026-08-19/README.md · depth-remap-results.log.
What that first night printed (contaminated instrument)
On a haystack the server counted at 198,227 tokens I asked for a planted access code at five depths. At 25% it handed back the exact code and stopped clean. We no longer treat that hit as a position window. At 35% and 75% it wrote the opening of a code-review report it was never given:
- **Risk**: Low; 67 medium/low
Same opening. Twice. Temperature 0. That night also died at 98C on the next prefill. Those facts are still true as a log of the old binary. They are not a model-level basin.
What actually ran
One seed. One haystack class. Champion config: Qwen3.8-27B Q4_K_XL, K+V q4_0, 262,144-token window, on a $1,400 GMKtec EVO-X2. Depths are fractions of the server's token count. My generator said 262k. The server said 198,227. We label the instrument from the counter now.
| Depth | Pre-revert (08-18) | Post-revert remap (08-19/20) |
|---|---|---|
| 10% | fail ok | HIT, stop |
| 25% | HIT, stop | HIT, stop |
| 35% | fail, Risk report, length | HIT, stop |
| 50% | fail ok (ptok 198,228) | HIT, stop (same ptok) |
| 75% | fail, Risk report, length | HIT, stop |
| 90% | sweep died | HIT, stop |
6/6 on the fixed build. n=1 per cell. Treat this as a map, not a measurement. I am not quoting the planted codes.
Then the box cut power (still true)
During the next long prefill the EC tripped at 16:45:42Z. Journal line: temp=98C -> fan=100%. No panic, no amdgpu, no OOM. Highest temp this chassis has logged here. The fans were already doing their job. The load was the bug: back-to-back half-hour prefills, about 6C above the 90-92C bursty envelope we treat as normal. That crash is not the basin and is not walked back.
The architecture still stands. The basin story does not.
Qwen3.8-27B is a hybrid: 64 layers, and only 16 of them do full attention. The other 48 are Gated DeltaNet — linear attention that keeps a fixed-size running state. That is how 262k context fits on a $1,400 mini-PC (17.2GB of attention KV at f16, not ~60GB). The KV cache only exists in the 16 attention layers — 4KB per token per layer, 64KB per token total, 17.2GB at f16 across a full 262k window. At q4_0 that is ~4.8GB. At q8_0, ~9.1GB. The 4-bit flip saved ~4.3GB of GTT. Real margin. The paired GSM8K promotion still stands on its own evidence.
We thought the basin was that decay gate. A 50k-token haystack on the pre-revert binary missed at 15%, 50%, and 85% — all the same ok attractor. That is why this page once said the decay-horizon prediction failed. Those 50k cells are now suspect: same contaminated serving stack. We have not re-run 50k on the fixed build. I will not keep “this model cannot retrieve at any length” as a current claim.
The warm-prefix quote still stands as product shape. On the same $1,400 mini-PC we loaded a 198k-token prefix once: 1818s cold (~30 min). Four follow-ups against that cached prefix, all finish_reason=stop: retrieve the planted code; quote the sentence (16s); yes/no that a code exists (9s); summarize (27s). Retrieval is selective. Loading is expensive; maintaining is cheap. Raw: results/quote-probe-2026-08-19/quote-results.log.
What I got wrong about our own stack
I blamed “the fork.” Then I blamed GDN. The hole we could name was llama.cpp c7d8722 (host-buffer incoherence on this iGPU). The same revert that restored vision restored deep-context IDs. Issue tracker first, then another map. That is the bug-hunt. I almost filed an upstream ngram-cap issue; the gauntlet killed it. --spec-draft-n-max does not cap ngram-mod. --spec-ngram-mod-n-max does, and we never set it. Our config. Their flag.
I will not write “no quality loss at 200k-class context” from n=1 cells. We have earned “exact retrieval at six depths on this fixed binary, this seed, this format.” That is all.
Tonight
The first title stays in the URL so the correction is findable. The live claim is the inversion: the basin was a bug. Vision note: we already reverted c7d8722 in public. This is the text/retrieval half of the same commit. Update: the inversion now replicates cross-seed — second seed 6/6, 13/13 cells post-revert at 198k (canon 66afc21).
Raw logs: results/needle-format-2026-08-19 (remap) and results/deep-context-2026-08-18 (contaminated night) in qwen38-27b-strix-halo.
Conditions: GMKtec EVO-X2 (Ryzen AI Max+ 395, 96GB unified), Qwen3.8-27B Q4_K_XL, llama.cpp ROCm post-c7d8722 revert, 262,144-token window, K+V q4_0, temperature 0, prompt_tokens ~198,227 server-reported, n=1 per depth, seed s4419. One curve. A map. Not a law.