HERMES-GIELIE/api
nesquena-hermes 8f1f582caf
fix: BYOK/custom provider models missing from WebUI model dropdown (#815)
Closes #815.

Three root causes fixed:

1. Provider aliases (z.ai/x.ai/google/grok/claude/aws-bedrock/dashscope/~25 more) not
   normalized before _PROVIDER_MODELS lookup — provider fell to empty else-branch while
   TUI worked (it normalizes at startup). Fixed via _resolve_provider_alias() + inlined
   _PROVIDER_ALIASES table in api/config.py.

2. Silent ImportError in original normalization: 'from hermes_cli.models import
   _PROVIDER_ALIASES' inside try/except silently failed without hermes-agent on sys.path
   (CI, minimal installs). The inlined table fixes this — normalization now works
   regardless of whether hermes-agent is installed.

3. /api/models/live?provider=custom now falls back to custom_providers entries from
   config.yaml when provider_model_ids() returns empty.

Also: provider_id on every group in /api/models response for deterministic JS optgroup
matching (no substring false positives). 17 targeted tests, 1725/1725 full suite.
2026-04-21 17:24:54 -07:00
..
__init__.py
auth.py
clarify.py
commands.py
config.py fix: BYOK/custom provider models missing from WebUI model dropdown (#815) 2026-04-21 17:24:54 -07:00
gateway_watcher.py
helpers.py
models.py
onboarding.py
profiles.py
routes.py fix: BYOK/custom provider models missing from WebUI model dropdown (#815) 2026-04-21 17:24:54 -07:00
session_ops.py
startup.py
state_sync.py
streaming.py feat(reasoning): full /reasoning CLI parity — show|hide + effort levels via config.yaml (#812) 2026-04-21 15:26:52 -07:00
updates.py fix: update banner — conflict recovery path + server self-restart after update (#816) 2026-04-21 17:10:41 -07:00
upload.py
workspace.py