Home

mweinbach / agent-coworker

publicmweinbach/agent-coworker
Overview Code History Branches Pull requestsIssuesInsights
main
HomeOverview Code PRsIssues

fix: restore model validation guardrails alongside provider model discovery

3 months ago

52d7000
Authored
Cursor Agent7/1/2026, 10:30:21 PM
The provider model discovery cache commit made every static-catalog provider
pass unknown model ids through, which broke config startup resilience,
selection-time validation, persisted-session migration, and child model
routing (11 red tests on main).

Restore a coherent contract:
- sync paths (normalizeModelIdForProvider) keep discovery passthrough but
  reject ids provably registered to a different provider family
- async selection paths (resolveModelMetadata without allowPlaceholder) are
  strict: static registry plus the on-disk model discovery cache
- config load falls back to the provider default with a warning again for
  unknown, non-discovered model and preferred-child ids
- persisted sessions migrate unsupported/aliased ids again for static-catalog
  providers; lmstudio/bedrock/codex-cli stay passthrough via
  isRuntimeDiscoveryProvider
- gemini-* joins the model/provider mismatch heuristic with google guidance

Also pins env in the connection-catalog oauth_pending test so ambient
provider API keys cannot flip providers to connected.

Co-authored-by: Max Weinbach <mweinbach@users.noreply.github.com>

Parentd022081

7 files changed
  • src/config.ts+44−1
  • src/models/metadata.ts+63−2
  • src/models/registry.ts+27−1
  • src/server/session/AgentSessionFromPersisted.ts+3−3
  • src/server/session/ProviderAuthManager.ts+34−15
  • test/config/config.getModel.test.ts+16−2
  • test/providers/connection-catalog.test.ts+2−0