mirror of
https://github.com/nexu-io/open-design.git
synced 2026-10-27 09:51:12 +01:00
* fix(daemon): resolve the AMR default model from the caller's catalog A run that asked for `default` before the caller's `vela model list` had arrived was concretized from the bundled `vela model preset` seed. The seed is the same for every plan and OD orders deepseek-v4-flash first, so free-tier callers (entitled only to deepseek-v4.1-flash since 09-24) had Vela reject `session/set_model` before any work began. On 0.24.1 that was 22 runs from 21 users in the last 7 days, 13 of 16 bundled runs showing the user's choice as `default`. - When `default` is requested and only the preset is cached, wait up to 12s for the caller's remote catalog (`getAuthoritative`). - Remember remote catalogs separately; a later preset seed never displaces one when a default model is chosen. - Order deepseek-v4.1-flash first: it is the one chat model every plan, including free, is entitled to, so a flagless list still lands on it. * fix(daemon): bound the AMR default-model catalog wait per refresh CI follow-up. A `default` run looked the catalog up twice (the resume probe and the run itself) and each lookup waited up to 12 s for the caller's remote catalog, so a slow or broken `vela model list` held the run queued for up to 24 s. The AMR e2e runs timed out at 20 s that way. - The wait is counted from the start of the remote refresh, so one run, or several concurrent runs, share a single wait. - When the last refresh failed, the preset is used at once; the next refresh still starts in the background. - e2e fake vela: answer `model list --all --format json`, the form the daemon actually sends. It only matched the flag-less form and hung. * test(e2e): let the fake vela answer the daemon's `model list --all` probe The catalog probe spawns `vela model list --all --format json`. The matcher stripped `--all` with its preceding space only, so `' --format json'` never equalled `'--format json'`: the probe fell through to the login check, the cache recorded a failed refresh, and default runs settled on the preset. Match the subcommand and the `--format json` flags in any order, as fake-vela.mjs and turn.test.ts already do, and cover the exact daemon argv for both the catalog and the 401 path.