Skip to content

feat: support arbitrary ANTHROPIC_DEFAULT_*_MODEL env keys#380

Open
sylzd wants to merge 1 commit into
YishenTu:mainfrom
sylzd:feat/dynamic-custom-model-env-keys
Open

feat: support arbitrary ANTHROPIC_DEFAULT_*_MODEL env keys#380
sylzd wants to merge 1 commit into
YishenTu:mainfrom
sylzd:feat/dynamic-custom-model-env-keys

Conversation

@sylzd
Copy link
Copy Markdown
Contributor

@sylzd sylzd commented Mar 20, 2026

Summary

  • Dynamically discover any ANTHROPIC_DEFAULT_*_MODEL environment variable instead of hardcoding only 4 known keys
  • Users who configure additional model tiers (e.g., ANTHROPIC_DEFAULT_MIMO_MODEL) in their env vars will now see them in the model selector automatically
  • computeEnvHash() updated to include dynamic model keys so session invalidation triggers correctly

Changes

  • src/utils/env.ts: Replace hardcoded CUSTOM_MODEL_ENV_KEYS with collectModelEnvKeys() that scans env vars via regex pattern ANTHROPIC_DEFAULT_(\w+)_MODEL. Updated getModelsFromEnvironment(), getCustomModelIds(), and getCurrentModelFromEnvironment() to use it.
  • src/main.ts: computeEnvHash() now uses collectModelEnvKeys() so adding/removing a custom model env var triggers session refresh.
  • tests/unit/utils/env.test.ts: 14 new test cases covering dynamic key discovery, mixed known+dynamic keys, priority ordering, and fallback behavior.

Test plan

  • npm run test -- --selectProjects unit --testPathPatterns env.test — all 154 tests pass (14 new)
  • npx tsc --noEmit — no type errors
  • npx eslint — 0 errors, 0 warnings
  • Manual: Set ANTHROPIC_DEFAULT_MIMO_MODEL=xiaomi/mimo-v2-pro in env vars, confirm it appears in model selector dropdown

🤖 Generated with Claude Code

Dynamically discover model env vars instead of hardcoding 4 known keys,
so users can configure additional tiers (e.g. ANTHROPIC_DEFAULT_MIMO_MODEL)
and have them appear in the UI automatically.

- Add collectModelEnvKeys() to scan env for matching pattern
- Update getModelsFromEnvironment/getCustomModelIds/getCurrentModel to use it
- Update computeEnvHash in main.ts for session invalidation
- Add 14 new test cases covering dynamic key discovery

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant