Skip to content

fix(model): show MoA preset picker on selection and label MoA in the banner - #53775

Merged
teknium1 merged 1 commit into
mainfrom
hermes/hermes-9cef5d77
Jun 27, 2026
Merged

fix(model): show MoA preset picker on selection and label MoA in the banner#53775
teknium1 merged 1 commit into
mainfrom
hermes/hermes-9cef5d77

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Summary

Selecting "Mixture of Agents" in the hermes model provider picker now shows the available presets (even when there's only one), prints the chosen preset's full breakdown, and the CLI session banner labels MoA sessions instead of showing a bare preset slug.

Root cause: select_provider_and_model() had no moa branch, so picking MoA fell through every elif to the post-switch cleanup and just reprinted the current model/provider summary — no selection happened. Separately, the banner read model.default (now a bare preset name like opus-gpt) and rendered opus-gpt · Nous Research, which is meaningless out of context.

Changes

  • hermes_cli/model_setup_flows.py: add _model_flow_moa — always lists presets (curses, with a plain-numbered fallback), prints the reference-models + aggregator breakdown on selection, and persists model.provider=moa / model.default=<preset>, dropping stale base_url/api_key/api_mode since MoA is a virtual local provider.
  • hermes_cli/main.py: wire elif selected_provider == "moa": _model_flow_moa(...) into the dispatch chain; import the new flow.
  • hermes_cli/banner.py: build_welcome_banner takes an optional provider; when "moa" it renders MoA: <preset> · agg <aggregator> instead of a bare slug. Both CLI call sites pass self.provider.
  • tests/hermes_cli/test_banner.py: 2 tests (MoA banner shows preset + aggregator; non-MoA banner unchanged).

Validation

Before After
Pick MoA in hermes model silent fall-through, reprints current model preset list shown + full breakdown printed + persisted
Session banner (MoA) opus-gpt · Nous Research MoA: opus-gpt · agg claude-opus-4.8 · Nous Research
Session banner (non-MoA) unchanged unchanged

E2E (temp HERMES_HOME): the flow persists {provider: moa, default: opus-gpt} and strips stale base_url/api_key; resolve_runtime_provider accepts the result. tests/hermes_cli/test_banner.py → 12/12 pass.

Note: scoped to the classic CLI (the reported surface). TUI banner parity (branding.tsx) would require threading provider through the gateway.ready payload + SessionInfo — a separate change.

Infographic

moa-model-picker

…banner

Selecting 'Mixture of Agents' in the `hermes model` provider picker fell
through silently — select_provider_and_model had no moa branch, so it just
reprinted the current model/provider summary and exited. And the CLI session
banner rendered the bare preset name (e.g. 'opus-gpt · Nous Research'),
which is meaningless out of context.

- Add _model_flow_moa: always lists the available presets (even one), then
  prints the full reference-models + aggregator breakdown for the selection
  and persists model.provider=moa / model.default=<preset> (dropping stale
  base_url + endpoint creds, since moa is a virtual local provider).
- Wire the branch into select_provider_and_model.
- build_welcome_banner takes provider; when 'moa' it renders
  'MoA: <preset> · agg <aggregator>' instead of a bare slug. Both CLI call
  sites pass self.provider.

Tests: 2 new banner tests (moa + non-moa unchanged); E2E verified the picker
persists the preset and clears stale base_url/api_key.
@teknium1
teknium1 merged commit 1ef19ba into main Jun 27, 2026
27 checks passed
@teknium1
teknium1 deleted the hermes/hermes-9cef5d77 branch June 27, 2026 18:45
@alt-glitch alt-glitch added type/bug Something isn't working comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have labels Jun 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants