v1.1.0
What's Changed
Features
- DeepSeek direct API support: DeepSeek joins the setup wizard as a fifth provider with its own API key step, live model fetch from DeepSeek's catalog, and a direct
deepseek/...route used automatically when no OpenRouter key is configured. - New
amicus keycommand: manage API keys headlessly.amicus keylists configured providers with masked hints,amicus key <provider> <key>validates and saves, and--removedeletes. No GUI required. - Live quick picks in the setup wizard: recommended models now resolve against the live catalog when the window opens, so quick picks never point at stale ids. Search is always visible and labeled, and a write-preview shows exactly which alias will change before you commit.
Bug Fixes
- Setup no longer rewrites aliases you did not touch: finishing the wizard is now a read-modify-write of your config. Picking a model sets the default and upgrades only that one alias; deleted aliases stay deleted. Previously, finishing setup could silently rewrite every card alias.
- Electron preload crash fixed: the contextBridge is exposed before DOM injection, and the injected CSS guards against a null documentElement. The silent TypeError previously killed both
window.sidecarand the anti-white-flash styling on every page. - Wizard polish: the DeepSeek provider pill no longer renders as
undefinedin the model step.
Improvements
- Readline setup parity: the no-Electron setup path accepts free-form model ids and follows the same no-clobber rules.
amicus models --checknow also warns when a curated pinned fallback drifts from the live catalog. - Council skill (Stage 6): the proposed MODEL-NOTES diff is written to a run-folder file and the approval prompt carries the file path, so an approval dialog can never hide the diff you are deciding on.
- Docs and attribution: single-model sidecars are documented as interactive-first (headless stays the default for fanouts and bulk runs); package attribution updated.
Full Changelog: v1.0.0...v1.1.0