---
version: 0.17.2
date: 2026-06-18
headline: "Dogfood defaults to the largest installed model and auto-upgrades off tiny ones."
themes: ["dogfood"]
highlights:
  - "Auto-select the LARGEST installed ollama model, not the first listed."
  - "Auto-upgrade to qwen2.5-coder:7b when the box has only ≤3B models."
  - "`FAK_DOGFOOD_FALLBACK_MODEL` overrides the capable default."
---

**TL;DR** — `fak-dogfood` stopped defaulting to whatever ollama listed first (often
the smallest model). It now picks the largest installed model, and upgrades to a
capable 7B when the box only has tiny ones.

## Model selection (#dogfood)

- **What changed** — auto-selection picks the **largest installed** ollama model by
  on-disk size instead of the first-listed one.
  - *Why:* a box with a capable model could still get a 1.5B because selection was
    `awk NR==2` (first row), unrelated to capability.
  - *How:* `fak/scripts/dogfood-claude.sh:largest_installed_model` (normalizes the
    SIZE column's KB/MB/GB/TB unit to MB).

- **What changed** — when the largest installed model is still tiny (≤~3B) or none
  is installed, fall back to `FAK_DOGFOOD_FALLBACK_MODEL` (`qwen2.5-coder:7b`) and
  pull it once.
  - *Why:* a tiny model can't reliably drive Claude Code's multi-tool protocol, so
    "use the biggest I have" must escape a too-small floor.
  - *How:* `model_is_small` gate + one-time `ollama pull`. `FAK_DOGFOOD_MODEL` still
    overrides everything.

## Follow-ups filed

- #53 — harden text-embedded tool-call parsing across model dialects.
- #54 — research grammar-constrained tool-call decoding (upstream fix).
