Skip to content

v0.5.3

Choose a tag to compare

@github-actions github-actions released this 01 Sep 04:05
· 45 commits to main since this release

Per-profile settings overrides and template merging: every settings key (backgroundModel, thinkModel, webSearchModel, imageModel, defaultModel, searchResultDiscount, toolRouting, longContextAuto) can now be written directly in a profile body, flat next to protocol/destinations — it applies to that profile alone, and missing keys (missing fields inside toolRouting/longContextAuto included) inherit from the global settings block, so a profile re-tunes exactly what differs. backgroundModel/thinkModel in a profile body are the pre-v0.5.2 per-profile shape, honored again. Serve and the router use the merged result (RoutingProfile.settings); a profile's own longContextAuto.fallbackThreshold now backs its "auto" threshold; usage calibrate/token views with --profile use that profile's discount. config show <profile> prints the effective values with the override keys flat in the entry, the serve banner lists them on an overrides -> ... line. Unknown keys die at load naming the offender — profile bodies now validate their key set too (previously silently ignored), and the global block gets the same check, so a typo'd key never silently inherits.

awerouter init <template> --merge folds a bundled template into an existing config: missing provider entries, profiles, and settings keys are filled in; existing entries always win (your base_url/auth, your profile bodies, your explicitly-set settings). Profile id collisions are skipped and reported, so merging is idempotent. Newly-written imageModel/defaultModel — global keys that re-route every existing profile — print a warning with an awerouter restore hint. Both files are snapshotted to .bak before writing and the merged config is load-validated before init reports done.

Added

  • Per-profile settings overrides: every settings key may also be written directly in a profile body, flat next to protocol/destinations — it applies to that profile alone, and missing keys (missing fields inside toolRouting/longContextAuto included) inherit from the global settings block, so a profile re-tunes exactly what differs (e.g. one multimodal sidekick flipping imageModel/defaultModel without touching everyone else). backgroundModel/thinkModel in a profile body are the pre-v0.5.2 per-profile shape, honored again. Serve and the router use the merged result (RoutingProfile.settings); a profile's own longContextAuto.fallbackThreshold now backs its "auto" threshold; usage calibrate/token views with --profile use that profile's discount. config show <profile> prints the effective values with the override keys flat in the entry, the serve banner lists them on an overrides -> ... line. Unknown keys die at load naming the offender — profile bodies now validate their key set too (previously silently ignored), and the global block gets the same check, so a typo'd key never silently inherits.
  • awerouter init <template> --merge folds a bundled template into an existing config: missing provider entries, profiles, and settings keys are filled in; existing entries always win (your base_url/auth, your profile bodies, your explicitly-set settings). Profile id collisions are skipped and reported, so merging is idempotent. Newly-written imageModel/defaultModel — global keys that re-route every existing profile — print a warning with an awerouter restore hint. Both files are snapshotted to .bak before writing and the merged config is load-validated before init reports done.

Unreleased

Added