mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-06-26 11:12:03 +00:00
The desktop "Local / custom endpoint" onboarding never collected an API key and /api/model/set silently dropped one, so an auth-gated endpoint (e.g. a hosted vLLM behind a key) could never enumerate models — and Settings' "Set up custom endpoint" routed `custom` into a non-existent OAuth flow, booting the user back to the first screen (the reported loop). Backend (web_server.py): - /api/providers/validate accepts an optional api_key and sends it as a Bearer header when probing a custom endpoint's /v1/models. - /api/model/set accepts api_key, persists it to model.api_key (same switch/preserve lifecycle as base_url), and registers a named custom_providers entry via _save_custom_provider — matching the `hermes model` CLI flow so the endpoint shows up as a ready picker row. Desktop: - ApiKeyForm shows an optional API key field for the local/custom option; the key is threaded through saveOnboardingLocalEndpoint → validate + setModelAssignment. - New onboarding `localEndpoint` intent + startManualLocalEndpoint(); the Settings "Set up custom endpoint" button now opens the local-endpoint form (URL + key) instead of the OAuth dead-end. - Added localApiKeyPlaceholder i18n key (en + types + zh). Tests: api_key lifecycle on _apply_main_model_assignment, key persistence + custom_providers registration on /api/model/set, Bearer-header probe; onboarding store forwards + persists the key. |
||
|---|---|---|
| .. | ||
| agents | ||
| artifacts | ||
| chat | ||
| command-center | ||
| command-palette | ||
| cron | ||
| gateway/hooks | ||
| hooks | ||
| messaging | ||
| overlays | ||
| profiles | ||
| right-sidebar | ||
| session/hooks | ||
| settings | ||
| shell | ||
| skills | ||
| desktop-controller.tsx | ||
| floating-hud.ts | ||
| index.tsx | ||
| layout-constants.ts | ||
| model-picker-overlay.tsx | ||
| model-visibility-overlay.tsx | ||
| page-search-shell.tsx | ||
| routes.ts | ||
| session-picker-overlay.tsx | ||
| session-switcher.tsx | ||
| types.ts | ||
| updates-overlay.tsx | ||