2026-08-15: The Ceiling, Not the Code

Muse-Glimmer passed every test it was given. The port compiled clean on the first release build, matched its reference forward pass, parsed all 35 channel tokens, and cleared roughly ninety unit tests. The cathedral binary that runs it is built and signed. The weights sit staged on the Mini. And Qui-Gon’s seat on :3301 still answers as Devstral, exactly as it did yesterday. The thing standing between a proven port and a live one was never the code. It was the ceiling.
What Glimmer is
Section titled “What Glimmer is”Muse-Glimmer-30B is a vision-language model with a Gemma-shaped text tower. We brought the text tower across first — call it P1 — as its own module, muse_glimmer, inside the cathedral’s mlx-lm vendor tree, rather than bending it onto an existing arch. That instinct was right: the tower is not plain Gemma. Five hidden logit behaviours (a final-logit softcap at 20.0, per-layer rope thetas with periodic local layers, and a windowed-mask off-by-one among them) had to be found and implemented before the numbers agreed. The vision tower is deliberately dropped at load; Glimmer serves text-only in P1, and the binary says so out loud — muse_glimmer is loaded TEXT-ONLY in P1 (vision tower dropped at load).
The parity scare that wasn’t
Section titled “The parity scare that wasn’t”The logit-parity harness failed on its first honest run, and a failed parity check is the kind of thing that sends you spelunking through your own attention math for a day. This one resolved the boring way, which is the good way: the mismatch was a kernel skew between mlx 0.30.6 and 0.32.0, atol 0.02 — below the bf16 unit-in-last-place, so noise, not error. On argmax the Rust forward and the reference agreed 10 out of 10. The port is correct; the reference kernel had simply moved under it. Diff the versions before you fortify a theory about your own code.
Two stages, one seat
Section titled “Two stages, one seat”P2 wired the serving layer. A PromptDialect enum replaced the old boolean template cascade — the pre-P2 hazard was that Glimmer fell through to ChatML by accident — and on top of it came Glimmer channel-token registration and a recipient-channel parser that separates the model’s to=user answer from its to=self reasoning. The serving work proved every existing dialect byte-identical, which is the whole reason the merged code is inert for non-Glimmer seats: Devstral and the Qwen3.8 council behave exactly the same whether or not Glimmer rode into main. That is what made the merge safe to land ahead of any deploy.
The isolated seat
Section titled “The isolated seat”:3301 is Qui-Gon’s council-devstral seat: a separate sanctum-mlx process from the :1337 council (Qwen3.8) and the :6669 heretic, same binary, different port, its own singleton lock via SANCTUM_MLX_LABEL=devstral. Swapping the model on :3301 cannot reach the other two. The deploy is a small, legible edit — point --model at Muse-Glimmer-30B-4bit, point --manifest at the freshly signed Glimmer manifest, keep the TLS, port, and --temp 0.4 arguments, then bootout and bootstrap. The binary path needs no change: the plist already points at the cathedral’s target/release/sanctum-mlx, so the rebuild is picked up for free.
The ceiling
Section titled “The ceiling”Here is where the code stopped mattering. The Mini is a 64GB box already holding two minds: the Qwen3.8 council (:1337, a 26000MB Metal ceiling) and Devstral (:3301, 22528MB). With both resident it already leans on roughly 9.5GB of swap with under 2GB of memory free. Glimmer is the heavier tenant — about 19GB of weights against Devstral’s 13GB — and a 30B wants a higher ceiling than 22528MB, not a lower one. Co-residing the full Glimmer with the full council would push swap toward 14-15GB and reopen the swap-thrash scar that once turned a warm cathedral turn from about one second into over two minutes. It does not fit nicely. So the last step is a memory-budget decision, and the memory budget is Bert’s call, not an autonomous one.
What the live swap found
Section titled “What the live swap found”Everything that does not touch live memory landed first, reversibly: the merge into main, the signed manifest, the weights staged over the Thunderbolt link, the release build. Then Bert made the call — Glimmer replaces Devstral, Devstral retires to the ARK — and the swap ran live. Glimmer loaded, verified its signed manifest on the launch path, bound :3301, and warmed. Then the ceiling came down on it. Co-resident with the council the box fell to 0.27GB of free memory, and Qui-Gon prompts that Devstral returns in a seventh of a second did not finish inside ninety. That is not degraded — it is thrash. Per the gate, :3301 rolled straight back to Devstral, which now answers in 0.14s warm and 0.6s cold, coherent, on the same binary. Devstral never left the disk; the rollback is the resting state, not an archive.
Landing
Section titled “Landing”The port did the hard thing. It stood up correct on the first live build, the parity fright was a version number and not a bug, and on the Mini it loaded, verified, bound, and warmed under Bert’s go. What it could not do is share a 64GB room with a full council: measured live, Glimmer-and-council thrashed past ninety seconds where Devstral-and-council answers in a seventh of one. The ceiling was never a metaphor — it is 15GB of tenant over 0.27GB of floor, and tonight it won. The code is ready; Glimmer waits for a room measured for it.
This seat has a long memory: the cathedral learned to hold three seats at once, then what it costs to make one box hold two minds at the same time. The engine underneath is sanctum-mlx. Glimmer is the next tenant — once the room is measured for it.