hermes-agent/apps
emozilla 8a9b4bb2c2 feat(desktop): mirror hermes model free/paid curation in GUI onboarding
GUI onboarding picked models[0] from /api/model/options, which ignores the
Nous free/paid tier — a free user could land on a paid default (e.g.
anthropic/claude-opus-4). Now the recommended default mirrors what `hermes
model` does.

- web_server.py: new GET /api/model/recommended-default?provider=<slug>. For
  Nous it runs the same curation as the CLI (get_curated_nous_model_ids +
  pricing + check_nous_free_tier + union_with_portal_{free,paid}_recommendations
  + partition_nous_models_by_tier) so free users get a free model and paid users
  get the curated default. Other providers fall back to the first curated model.
  Never 500s — returns empty model on error so onboarding degrades gracefully.
- hermes.ts: getRecommendedDefaultModel client + RecommendedDefaultModel type.
- onboarding.ts: fetchProviderDefaultModel prefers the recommended endpoint,
  falls back to models[0] when unavailable.
- tests: free-tier picks free model, paid-tier picks curated default, failure
  returns empty without 500.
2026-05-31 05:48:04 -04:00
..
bootstrap-installer macOS desktop: install + in-app self-update (#35607) 2026-05-30 22:26:08 -05:00
desktop feat(desktop): mirror hermes model free/paid curation in GUI onboarding 2026-05-31 05:48:04 -04:00
shared feat: move dashboard to apps/ so we can share ws proto 2026-05-02 13:38:49 -05:00