Repository navigation
v3.16.2
What's new
Bug Fixes
Example model identifiers across the user-facing surfaces had drifted several generations behind the current models.dev registry, so anyone copying a snippet out of the docs or the schema was starting from stale ids. This refreshes them everywhere they are authored: the src/lib/config-schema.ts meta examples and descriptions — which regenerate the published JSON Schema under docs/public/schemas/v3 and the generated reference region — plus the hand-written examples in configuration.mdx, the Pi subagents guide, and one skill reference.
The OMO routing profile moved with them. Its category models now point at gemini-3.1-pro-preview instead of gemini-3-pro-preview, claude-opus-5 instead of claude-opus-4-6, and claude-sonnet-5 instead of claude-sonnet-4-5, while gpt-5.3-codex and variant: max were already current and stay as they are. Two schema-test fixtures that had pinned the old example ids were updated to match.
Several surfaces were deliberately left alone, because rewriting them would cost expected-byte churn for no behavioural gain: the deleted-defaults table in model-defaults-migration.mdx stands as a historical record, and the recorded with/without eval, the plans, the solutions docs, and the config corpus fixtures all use arbitrary ids rather than assertions against the schema examples. claude-haiku-4-5 also stays, since no Haiku 5 exists to move to. (#907)
Documentation
The model profiles and per-harness routing feature shipped in #903 with its rules documented in the configuration reference, but no task-oriented page to work from. The new guides/model-profiles.mdx is that task layer: define profiles once, select one per repository, route a single agent differently on OpenCode and Pi, migrate off pi_subagents.thinking, and read the resolved result out of config show --json. It sits in the sidebar next to the model-defaults migration guide, and the reference's Profiles section now links across to it.
The config show --json sample in the guide was captured from the built CLI under an isolated HOME and then generalised for paths, rather than being written by hand, so it reflects real output. Its examples use current model ids and the high variant, matching the refresh above. (#906)