# v1.7.0 — Pick the model, fall back between models relay-baton can now choose **which model** each agent CLI runs, and relay between models of the same agent — not only between agents. ## What changed - **`--model `** on `run`, `plan`, `execute`, and `handoff`. Passed to the agent CLI's own model flag (`codex exec -m`, `claude --model`, `gemini -m`, …). Any id works, so models released after this version need no update. - **Per-agent default model** in config: `agents..model` (e.g. `"claude": { …, "model": "claude-opus-5-5" }`). Absent = the CLI's own default, exactly as before. - **Same-agent model fallback.** Chain entries may be `agent:model`: `relay-baton run "…" --chain claude:claude-opus-5-5,claude:claude-sonnet-5,codex` — when the first model hits a limit, the baton passes to the next model of the same CLI before switching agents. - **Desktop model picker** next to the Codex/Claude switch: suggestions for current models (GPT-6.1 Sol / GPT-6 Astra / GPT-6 Luna; Claude Opus 5.5 / Sonnet 5 / Fable 5.1 / Haiku 4.5), or type any id. Empty = CLI default. Remembered per agent. - **Broader fallback detection:** `overloaded_error`, `resource_exhausted`, `credit balance is too low`, `context window exceeded`, and codex's "You've hit your usage limit" wording. - Session `session.json` records `activeModel` (requested) and `reportedModel` (what claude says it ran, with `--pretty`); handoffs name the previous/next hop as `agent:model`. ## Compatibility - Fully additive. Without `--model` / `agents..model`, commands are byte-identical to v1.6.x. Config and session schemas gain optional fields only.