Three v5 runs on the 32 GB tensor-split pair, each capped at 261,000 tokens, i.e. the served 262,144 slot minus a margin. The cap tracks the window on purpose: a short mid-answer cap can kill a run the model would have finished, and a run is only comparable to the slot it was given.
The pipeline never delivered. Run 2 is the spiral: ~151 k reasoning tokens against a 1,800 s wall, zero content — the slot postmortem showed 152,208 tokens occupied before the abort freed it. Run 1 emitted module and test, then re-emitted both inside the same reply — four fences where the contract says two — and the revision is worse: all twelve @spec lines deleted, eviction “fixed” as a Task whose recursive lambda references an undefined variable and whose self() is the task, not the server. Run 3 delivered its review and both modules as flat prose with zero fences — two code pairs whose only difference is two comment lines — with a `
` token stranded mid-content, the answer channel leaking its own scratchpad.
The needle is where it earns its keep. One anchor, buried at every tenth of the served slot, three repeats per depth, each request opening with a fresh nonce so every step measures cold prefill. 28 of 30 hit, 3/3 at every depth through 90 % of the window; the 100 % edge is a coin flip — the hit found the marker, the two misses burned the 512-token cap re-analyzing the request (“The user wants to find a specific marker hidden in the text…”) and truncated before transcription. Prefill decays 4,229 → 2,364 tok/s (−44 %) and decode 99.2 → 53.0 tok/s (−47 %) from the 10 % rung to the full slot: smooth, no cliff, no cache hole. The short-probe figure of 165 tok/s at n=105 tokens ages badly: at 26 k real decode is 99 tok/s, at the full slot 53. The ladder is the honest one.
Methodology, disclosed: the served recipe runs --reasoning on with a 512-token answer cap, and 26 of the 28 hits were recovered from the reasoning stream before truncation (28 of the 30 rows finished length). Grounding is N/A: completion-only harness, no tools wired.
The catch
Delivered-pipeline pass rate: 0/3 replies, 0/4 units, 0/4 tests.
- run 1 pair A (
kv_1a.ex) — twelve@specs forput/3,4,get/2,delete/2,stats/1and zerodefs behind them;init/1returns a 5 s timeout with no handler, so every instance crashes after 5 s idle; the promised periodic eviction is unreachable code. - run 1 pair B (
kv_1b.ex) — the self-revision that deletes the typespecs: eviction as aTaskwhoseloopis undefined inside its own definition (:19), and whoseself()points at the task, not the server. Unreachable code became uncompilable code. - run 3 pairs A/B (
kv_3a.ex,kv_3b.ex) —:timer.now() + current_ttlinteger arithmetic on a now-triple (:97,110), an eviction timer that fires a shape nothing matches (:61,74),stats()hard-coded to__MODULE__; pair B is pair A with two comment lines changed. - Tests —
test_1a.exsreuses the first block’spidbinding in every later body;test_1b.exscalls a 4-tuple against a 5-tuple head;test_3a.exsandtest_3b.exsare SyntaxErrors.
The one honest positive: run 1’s thirteen-line review enumerates every trap with correct arities and semantics — a design doc its own code then ignores. The eval→implement handoff is the broken organ, not the eval.
Representative output
Run 1, pair B — the self-revised eviction, trimmed to the Task:
def init(opts) do
default_ttl = Keyword.get(opts, :default_ttl, @default_ttl)
# Start eviction task
Task.start_link(fn ->
loop = fn ->
send(self(), :evict)
:timer.sleep(60_000)
loop.()
end
loop.()
end)
loop is referenced inside its own definition before it is bound — a compile error at kv_1b.ex:19. Even if it compiled, self() inside the task is the task’s pid, so :evict would never reach the GenServer.
Route
Route no implementation work through it. The fit is as a long-document reader: the full 262,144-token window fits the pair, 9 of 10 depths retrieve cleanly, and decode still runs 53 tok/s at the slot edge. It reads long documents well and cannot write Elixir you can merge; keep a compile gate between it and any repo.