Skip to content

fix(cli): /model picker shows curated models instead of full catalog#10146

Merged
teknium1 merged 1 commit into
mainfrom
hermes/hermes-308557fe
Apr 15, 2026
Merged

fix(cli): /model picker shows curated models instead of full catalog#10146
teknium1 merged 1 commit into
mainfrom
hermes/hermes-308557fe

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Summary

The /model slash command's interactive picker was showing hundreds of models (the full live API catalog) instead of the same curated list that hermes model and the Telegram/Discord pickers show.

Root cause: In _handle_model_picker_selection(), when a user selected a provider, the code called provider_model_ids(slug) which fetches the FULL live catalog from the provider's API (hundreds of models for Anthropic, Copilot, AI Gateway, Nous, etc.). The curated list from list_authenticated_providers() — which was carefully assembled from _PROVIDER_MODELS / OPENROUTER_MODELS — was only used as a fallback when the live fetch failed.

Fix: Flip the priority. Use the curated list first (consistent with hermes model and gateway pickers). Only fall back to provider_model_ids() when the curated list is empty (e.g. user-defined endpoints that don't have a curated list).

Comparison

Path Before After
hermes model Curated list ✓ Curated list ✓
/model CLI picker Full live catalog ✗ Curated list ✓
/model Telegram/Discord Curated list ✓ Curated list ✓

Test plan

  • 124 model-related tests pass
  • py_compile verified

The /model picker called provider_model_ids() which fetches the FULL
live API catalog (hundreds of models for Anthropic, Copilot, etc.) and
only fell back to the curated list when the live fetch failed.

This flips the priority: use the curated model list from
list_authenticated_providers() (same lists as `hermes model` and
gateway pickers), falling back to provider_model_ids() only when the
curated list is empty (e.g. user-defined endpoints).
@teknium1
teknium1 merged commit df7be3d into main Apr 15, 2026
4 of 5 checks passed
@teknium1
teknium1 deleted the hermes/hermes-308557fe branch April 15, 2026 07:07
teknium1 added a commit that referenced this pull request Apr 15, 2026
provider_model_ids('nous') was calling fetch_nous_models() which
returns the FULL live Nous API catalog (382 models including image
generators, rerankers, and non-agentic models). This caused the
/model picker fallback to dump hundreds of models into the list,
making it unusable.

PR #10146 fixed the /model picker to prefer the curated list first,
but the fallback still called provider_model_ids() which returned
382 models. On WSL2 environments where stale .pyc caches prevented
the #10146 fix from taking effect, users saw the full catalog.

Fix: Return the curated _PROVIDER_MODELS['nous'] list (29 models)
directly, matching the pattern used by hermes model, the gateway
picker, and the OpenRouter flow (which also uses curated lists
cross-referenced against the live API rather than raw live data).

Before: provider_model_ids('nous') → 382 models (live API)
After:  provider_model_ids('nous') → 29 models (curated)
ulasbilgen pushed a commit to ulasbilgen/hermes-adhd-agent that referenced this pull request May 1, 2026
…ousResearch#10146)

The /model picker called provider_model_ids() which fetches the FULL
live API catalog (hundreds of models for Anthropic, Copilot, etc.) and
only fell back to the curated list when the live fetch failed.

This flips the priority: use the curated model list from
list_authenticated_providers() (same lists as `hermes model` and
gateway pickers), falling back to provider_model_ids() only when the
curated list is empty (e.g. user-defined endpoints).
aj-nt pushed a commit to aj-nt/hermes-agent that referenced this pull request May 1, 2026
…ousResearch#10146)

The /model picker called provider_model_ids() which fetches the FULL
live API catalog (hundreds of models for Anthropic, Copilot, etc.) and
only fell back to the curated list when the live fetch failed.

This flips the priority: use the curated model list from
list_authenticated_providers() (same lists as `hermes model` and
gateway pickers), falling back to provider_model_ids() only when the
curated list is empty (e.g. user-defined endpoints).
02356abc pushed a commit to 02356abc/hermes-agent that referenced this pull request May 14, 2026
…ousResearch#10146)

The /model picker called provider_model_ids() which fetches the FULL
live API catalog (hundreds of models for Anthropic, Copilot, etc.) and
only fell back to the curated list when the live fetch failed.

This flips the priority: use the curated model list from
list_authenticated_providers() (same lists as `hermes model` and
gateway pickers), falling back to provider_model_ids() only when the
curated list is empty (e.g. user-defined endpoints).
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
…ousResearch#10146)

The /model picker called provider_model_ids() which fetches the FULL
live API catalog (hundreds of models for Anthropic, Copilot, etc.) and
only fell back to the curated list when the live fetch failed.

This flips the priority: use the curated model list from
list_authenticated_providers() (same lists as `hermes model` and
gateway pickers), falling back to provider_model_ids() only when the
curated list is empty (e.g. user-defined endpoints).
Egavasyug pushed a commit to Egavasyug/hermes-agent that referenced this pull request Jun 10, 2026
…ousResearch#10146)

The /model picker called provider_model_ids() which fetches the FULL
live API catalog (hundreds of models for Anthropic, Copilot, etc.) and
only fell back to the curated list when the live fetch failed.

This flips the priority: use the curated model list from
list_authenticated_providers() (same lists as `hermes model` and
gateway pickers), falling back to provider_model_ids() only when the
curated list is empty (e.g. user-defined endpoints).
liuchanchen pushed a commit to liuchanchen/hermes-agent that referenced this pull request Jul 3, 2026
…ousResearch#10146)

The /model picker called provider_model_ids() which fetches the FULL
live API catalog (hundreds of models for Anthropic, Copilot, etc.) and
only fell back to the curated list when the live fetch failed.

This flips the priority: use the curated model list from
list_authenticated_providers() (same lists as `hermes model` and
gateway pickers), falling back to provider_model_ids() only when the
curated list is empty (e.g. user-defined endpoints).
kulikman pushed a commit to kulikman/hermes-agent that referenced this pull request Jul 16, 2026
…ousResearch#10146)

The /model picker called provider_model_ids() which fetches the FULL
live API catalog (hundreds of models for Anthropic, Copilot, etc.) and
only fell back to the curated list when the live fetch failed.

This flips the priority: use the curated model list from
list_authenticated_providers() (same lists as `hermes model` and
gateway pickers), falling back to provider_model_ids() only when the
curated list is empty (e.g. user-defined endpoints).
waym0reom3ga added a commit to waym0reom3ga/autolycus-agent that referenced this pull request Jul 21, 2026
…ousResearch#10146)

The /model picker called provider_model_ids() which fetches the FULL
live API catalog (hundreds of models for Anthropic, Copilot, etc.) and
only fell back to the curated list when the live fetch failed.

This flips the priority: use the curated model list from
list_authenticated_providers() (same lists as `hermes model` and
gateway pickers), falling back to provider_model_ids() only when the
curated list is empty (e.g. user-defined endpoints).
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