plano/cli/planoai
Musa 897fda2deb
fix(routing): auto-migrate v0.3.0 inline routing_preferences to v0.4.0 top-level (#912)
* fix(routing): auto-migrate v0.3.0 inline routing_preferences to v0.4.0 top-level

Lift inline routing_preferences under each model_provider into the
top-level routing_preferences list with merged models[] and bump
version to v0.4.0, with a deprecation warning. Existing v0.3.0
demo configs (Claude Code, Codex, preference_based_routing, etc.)
keep working unchanged. Schema flags the inline shape as deprecated
but still accepts it. Docs and skills updated to canonical top-level
multi-model form.

* test(common): bump reference config assertion to v0.4.0

The rendered reference config was bumped to v0.4.0 when its inline
routing_preferences were lifted to the top level; align the
configuration deserialization test with that change.

* fix(config_generator): bump version to v0.4.0 up front in migration

Move the v0.3.0 -> v0.4.0 version bump to the top of
migrate_inline_routing_preferences so it runs unconditionally,
including for configs that already declare top-level
routing_preferences at v0.3.0. Previously the bump only fired
when inline migration produced entries, leaving top-level v0.3.0
configs rejected by brightstaff's v0.4.0 gate. Tests updated to
cover the new behavior and to confirm we never downgrade newer
versions.

* fix(config_generator): gate routing_preferences migration on version < v0.4.0

Short-circuit the migration when the config already declares v0.4.0
or newer. Anything at v0.4.0+ is assumed to be on the canonical
top-level shape and is passed through untouched, including stray
inline preferences (which are the author's bug to fix). Only v0.3.0
and older configs are rewritten and bumped.
2026-04-24 12:31:44 -07:00
..
obs Improve obs model name matching, latency metrics, and error reporting (#900) 2026-04-18 21:21:15 -07:00
templates Run plano natively by default (#744) 2026-03-05 07:35:25 -08:00
__init__.py release: bump version to 0.4.20 (#897) 2026-04-17 21:16:12 -07:00
chatgpt_auth.py Add first-class ChatGPT subscription provider support (#881) 2026-04-23 15:34:44 -07:00
chatgpt_cmd.py Add first-class ChatGPT subscription provider support (#881) 2026-04-23 15:34:44 -07:00
config_generator.py fix(routing): auto-migrate v0.3.0 inline routing_preferences to v0.4.0 top-level (#912) 2026-04-24 12:31:44 -07:00
consts.py release: bump version to 0.4.20 (#897) 2026-04-17 21:16:12 -07:00
core.py Update black hook for Python 3.14 (#857) 2026-03-31 13:18:45 -07:00
defaults.py feat(providers): add Vercel AI Gateway and OpenRouter support (#902) 2026-04-23 15:54:39 -07:00
docker_cli.py Run plano natively by default (#744) 2026-03-05 07:35:25 -08:00
init_cmd.py Introduce brand new CLI experience with tracing and quickstart (#724) 2026-02-10 13:17:43 -08:00
main.py Add first-class ChatGPT subscription provider support (#881) 2026-04-23 15:34:44 -07:00
native_binaries.py Use editable install to fix sdist build failure (#805) 2026-03-05 13:50:50 -08:00
native_runner.py Add first-class ChatGPT subscription provider support (#881) 2026-04-23 15:34:44 -07:00
obs_cmd.py planoai obs: live LLM observability TUI (#891) 2026-04-17 14:03:47 -07:00
rich_click_config.py planoai obs: live LLM observability TUI (#891) 2026-04-17 14:03:47 -07:00
targets.py Update black hook for Python 3.14 (#857) 2026-03-31 13:18:45 -07:00
template_sync.py sync CLI templates with demo configs via manifest + CI flow (#764) 2026-02-17 12:59:09 -08:00
trace_cmd.py add support for background trace collection and tracing output (#749) 2026-02-24 19:17:33 -08:00
trace_listener_runtime.py add support for background trace collection and tracing output (#749) 2026-02-24 19:17:33 -08:00
utils.py Fix request closures during long-running streaming (#899) 2026-04-18 21:20:34 -07:00
versioning.py Introduce brand new CLI experience with tracing and quickstart (#724) 2026-02-10 13:17:43 -08:00