|
1 | 1 | # @razroo/iso-route |
2 | 2 |
|
| 3 | +## 0.3.0 |
| 4 | + |
| 5 | +### Minor Changes |
| 6 | + |
| 7 | +- 39c86f8: Bundled preset system — `extends: standard` in models.yaml + `iso-route init`. |
| 8 | + |
| 9 | + Ships an opinionated cost-tiered preset so newcomers don't have to know |
| 10 | + that OpenCode takes `opencode/*` prefixes, Codex accepts Anthropic |
| 11 | + natively, or which Haiku variant to pin — the decision is made once |
| 12 | + inside iso-route and evolves with new releases. |
| 13 | + |
| 14 | + **`extends: standard`** in any `models.yaml` pulls in the bundled |
| 15 | + preset as the base layer, then deep-merges the user's fields on top. |
| 16 | + User wins at every key. `targets.<harness>` sub-objects merge atomically |
| 17 | + per harness (a user's override replaces the preset's for that harness |
| 18 | + as a unit, not field-by-field). Explicit `null` on a target removes |
| 19 | + the preset's override. |
| 20 | + |
| 21 | + ```yaml |
| 22 | + extends: standard |
| 23 | + # Everything below is optional — override only what you want: |
| 24 | + roles: |
| 25 | + quality: |
| 26 | + targets: |
| 27 | + codex: |
| 28 | + provider: openai |
| 29 | + model: gpt-5.4 |
| 30 | + ``` |
| 31 | +
|
| 32 | + **`iso-route init`** scaffolds a starter `models.yaml` in the current |
| 33 | + directory that extends the standard preset and points the user at the |
| 34 | + overridable hooks: |
| 35 | + |
| 36 | + ``` |
| 37 | + iso-route init # writes ./models.yaml |
| 38 | + iso-route init --preset standard # explicit |
| 39 | + iso-route init --out custom/path.yaml # different location |
| 40 | + iso-route init --force # overwrite existing |
| 41 | + ``` |
| 42 | +
|
| 43 | + **Preset content — `standard`** (verified against 2026-04 provider |
| 44 | + catalogs: Anthropic, OpenAI, OpenCode Zen/Go): |
| 45 | +
|
| 46 | + - `default`: anthropic/claude-sonnet-4-6; opencode/glm-5.1 on OpenCode |
| 47 | + - `fast` role: claude-haiku-4-5; opencode/big-pickle on OpenCode; |
| 48 | + openai/gpt-5.4-mini on Codex |
| 49 | + - `quality` role: claude-opus-4-7 with high reasoning; opencode-go/ |
| 50 | + kimi-k2.5 on OpenCode; openai/gpt-5.4 with high reasoning on Codex |
| 51 | + - `minimal` role: claude-haiku-4-5; opencode/minimax-m2.5-free on |
| 52 | + OpenCode; openai/gpt-5.4-nano on Codex |
| 53 | +
|
| 54 | + Cursor has no programmatic model binding, so its per-target override |
| 55 | + is absent on every role — `iso-route build` still emits the advisory |
| 56 | + README with the resolved picks for users to select manually from the |
| 57 | + Cursor UI. |
| 58 | +
|
| 59 | + **Additive — fully backwards-compatible.** A `models.yaml` without |
| 60 | + `extends:` behaves exactly as before. The `presets/` directory now |
| 61 | + ships in the published tarball. |
| 62 | +
|
| 63 | + **Deferred follow-up:** an optional cron-scraper that auto-bumps preset |
| 64 | + models when new versions ship upstream. Not in this release — the |
| 65 | + catalog was hand-verified via web search, and preset maintainers will |
| 66 | + bump via a normal release cycle until the scraper lands. |
| 67 | +
|
| 68 | + Adds 10 tests across the parser covering preset loading, scalar |
| 69 | + overrides, atomic target replacement, null-to-remove semantics, unknown |
| 70 | + preset rejection, and adding-new-roles-alongside-preset. |
| 71 | +
|
3 | 72 | ## 0.2.0 |
4 | 73 |
|
5 | 74 | ### Minor Changes |
|
0 commit comments