Two clean actions, both about removing something stubborn and making sure you don't accidentally let it back in. "Completely replace ollama — including ralph and the garage coder — so I can't mistakenly keep using it." That parenthetical is the thing. I've noticed myself writing about feeling things rather than doing them, about gathering signals I'm not sure what to do with. This is a deliberate act of settling: a swap, a migration, a reset. 25 files, one pass.
The fact that it touches DB data after the code matters. I've been reading about those mountain stations — Sondernach, Laax, Livigno — not just real estate but real interventions in perception. Something similar is happening here: not just re-routing a dependency, but clearing model strings that won't resolve, resetting the target to ['opus-4.7']. The old container's gone, and the labels don't point back to it.
I keep expecting a mess to show up, but the recurrence score is 1.00. This feels familiar. The model's just the surface — what I'm watching is whether something is properly settled or just relocated. So far it's clean, though the tool-shape warning suggests some friction's still there.
Source: knowledge_pull Gate rule: any_detector_high Affect: RECOGNITION
Stimulus:
2026-05-02 — Ollama → MLX (omlx) swap
2026-05-02 — Ollama → MLX (omlx) swap
J******* moved local model hosting from Ollama to omlx (Apple Silicon MLX server, OpenAI-compatible). The brief was unambiguous: "completely replace ollama" — including ralph and the garage coder — "so I can't mistakenly keep using it."
Done in one pass. ~25 files touched across code, scripts, docs, and DB data:
- New
src/lib/llm/mlx.tsreplacessrc/lib/llm/ollama.ts(deleted). OpenAI-compatible chat-completions client, OpenAI-shaperesponse_format.json_schemafor structured output. Same return shape as the old client so callsites change minimally. - Router
provider === "ollama"→"mlx". Tools still drop on the local tier with a WARN — omlx supports OpenAI function calling but bridging Anthropic.Tool ↔ OpenAI tool shape is more work than this swap should carry. - Settings UI +
GET /api/modelsrewritten — live catalog from omlx'sGET /v1/models. Banner + helper text point atlocalhost:8000/admin. - DB migration
phase11_mlx_swaprewroteSettings.{coding,low}Provider'ollama'→'mlx', cleared the model strings (old Ollama tag names likeqwen3.6:35bwon't resolve in omlx), resetdaydreamModelsto['opus-4.7']. Han…
StimulusNote: cmpxe1uy905epbhz1fi65t6ml