Fall back from an unusable selected inference provider - #860
Conversation
A missing or incomplete default or project-local pick used to treat the session as unconfigured even when another provider could run. Explicit --provider still fails closed.
TheGreatAxios
left a comment
There was a problem hiding this comment.
Primary · Approve
Session-only fallback in resolveProvider. Unusable default/local walks recents then remaining catalog keys. --provider stays fail-closed. Empty local.model is unset. Malformed baseURL still fail-closes at normalize (counsel/greybeard: do not treat as unusable). Merge as it stands.
TheGreatAxios
left a comment
There was a problem hiding this comment.
Critic · Comment
No blocking findings on the contracted behavior: CLI fail-closed, no persist, local.model does not follow siblings, throw strings unchanged.
Should-fix that landed: empty local.model no longer abandons a healthy original pick.
Waived: malformed nonempty baseURL still throws from normalize instead of walking siblings — specified, not a miss.
TheGreatAxios
left a comment
There was a problem hiding this comment.
Greybeard · Comment
Approve. resolveProvider owns session-only recovery. Remaining catalog keys run only after a failed original pick, not when nothing was selected. local.model stays paired with the original provider. Do not persist the fallback as the new default.
Summary
Verification
bun run typecheck,bun run build, andbun run testpassbun test ./src/settings.test.tspassesFixes CL-7545