Desktop fixes
- The desktop app's embedded server now runs the full boot sequence the standalone server does. In practice this fixes four things that were silently broken on desktop only (#1017):
- Automatic backups actually run. The Backups panel's schedule saved but never fired — the scheduler job was never started.
- The dashboard's Logs page now fills up, and the desktop log file (
Open Logs Folder) is credential-redacted — safe to attach to a bug report. - A crashed provider socket can no longer take down the whole app (the server's process safety net now installs).
- Waking from sleep recovers immediately: stale pooled sockets are flushed and every key is re-probed, instead of waiting for the next health cycle.
- New tray item: Open Backups Folder — backups land in the app's data directory, which the dashboard only ever references by relative path.
- The in-app update check now knows it is a desktop install instead of reporting "unsupported".
Dashboard & routing (everything since v0.8.6)
- Named fallback chains: build and manage chains on the Fallback page, use them as
auto:<name>models, or hand-build a chain that stays exactly as you wrote it (#988, #986, #1004). - Free-tier budget clarity: pool-deduped monthly budgets under the token bar, legend grouped by provider pool, budget explainer, and per-model quotas on the model page (#907, #1010, #1005).
- Rate-limit awareness: time-window usage badges in the model table, and models burning through their rpd/tpd windows are demoted in routing (#921, #1001).
- Routing knobs: least-remaining key selection strategy (#930), tunable headroom guardrail thresholds (#989), opt-in peak-hours adjustment (#909), with secondary knobs tucked behind "More options" (#1009).
- Database backups with safe restore — manual and scheduled dumps, download, and a guarded restore with a pre-restore snapshot (#999).
- Catalog-routed video generation (#998) and custom speech-to-text model registration with usage on the STT tab (#991, #992).
/v1/messagesfails over to the same model on another provider (#1000); key labels shown on the failover ladder (#871); reasoning and tool-call capability probes for custom endpoints (#881); cache-key normalization of default-valued sampling params (#901).- Server log viewer under the Analytics menu (#993), xkiro.com provider (#967), playground and page-paint polish (#1011, #1016), agent-card descriptions + MiMo Code (#1003).
Full changelog: v0.8.6...v0.8.7