Repository navigation
v0.5.3
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
settingskey may also be written directly in a profile body, flat next toprotocol/destinations— it applies to that profile alone, and missing keys (missing fields insidetoolRouting/longContextAutoincluded) inherit from the globalsettingsblock, so a profile re-tunes exactly what differs (e.g. one multimodal sidekick flippingimageModel/defaultModelwithout touching everyone else).backgroundModel/thinkModelin 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 ownlongContextAuto.fallbackThresholdnow backs its"auto"threshold;usage calibrate/token views with--profileuse 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 anoverrides -> ...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> --mergefolds a bundled template into an existing config: missing provider entries, profiles, and settings keys are filled in; existing entries always win (yourbase_url/auth, your profile bodies, your explicitly-set settings). Profile id collisions are skipped and reported, so merging is idempotent. Newly-writtenimageModel/defaultModel— global keys that re-route every existing profile — print a warning with anawerouter restorehint. Both files are snapshotted to.bakbefore writing and the merged config is load-validated beforeinitreports done.