You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(tui): overhaul phases 1-2 — icon system + custom OpenAI-compatible endpoints; fix model catalog
PHASE 1 (icons): central ICON registry (cli/src/utils/icons.ts) replaces
~160 scattered emoji with a coherent single-width Unicode glyph set
(text-presentation-safe, themeable). Swept: activity bar, welcome screen,
status marks, toasts, attachment/image cards, session/marketplace/init/
pr-swarm/login output, dialogs. Fixed welcome-footer literal \u00B7
rendering as raw text and its stale hardcoded theme name.
PHASE 2 (provider UX): the wizard now supports Custom OpenAI-Compatible
endpoints — base URL, optional display name, optional API key (auth-less
local servers), manual model IDs, connection test against YOUR endpoint,
unique per-endpoint id, baseUrl persisted. updateProvider store action
added. Schema supported baseUrl/customModelIds all along; the UI never
exposed them (wizard filtered the custom category and never wrote
baseUrl).
FIX: parseModelCatalog iterated provider-level keys instead of the
nested provider.models map (models.dev shape), producing junk entries
like id 'models' that the picker offered — selecting one bricked every
run. Now parses the nested map (7,560 entries live, 0 junk). Model
routing also guards against placeholder API keys (e.g. 'test' from env
auto-detection), falling through to the next provider instead of an
opaque upstream 401.
Plan + full audit: docs/ui-overhaul-plan.md. cli 2391 tests green;
tsc green across cli/common.
-**Icon system (Phase 1)** — central `ICON` registry (`cli/src/utils/icons.ts`) replaces ~160 scattered emoji with a coherent single-width Unicode glyph set (text-presentation-safe), themed via tokens. Activity bar, welcome screen, status marks, toasts, attachment/image cards, session/marketplace/init/pr-swarm/login output, dialogs all swept. Fixed the literal `·` rendering as raw text on the welcome footer (and dropped its stale hardcoded theme name).
12
+
-**Custom OpenAI-compatible endpoints (Phase 2)** — the provider wizard now offers Custom > Custom OpenAI-Compatible. Full flow: base URL (LM Studio, llama.cpp, vLLM, LiteLLM, Ollama /v1, any gateway) -> optional display name -> API key (optional for auth-less local servers) -> manual model IDs (comma-separated, for endpoints without /models) -> connection test against YOUR endpoint (not the static definition URL) -> saved with a unique per-endpoint id and the baseUrl persisted. `updateProvider` action added to the provider store. Full audit + phased plan: docs/ui-overhaul-plan.md.
13
+
14
+
### Fixed
15
+
-**Model catalog produced junk entries** — `parseModelCatalog` iterated provider-level keys instead of the nested `provider.models` map (models.dev shape), yielding entries like id "models" per provider; the picker offered garbage and selecting it bricked all runs. Now parses the nested map (7,560 real entries verified live, zero junk) and never treats the container as a model.
16
+
-**Placeholder API keys routed requests to doomed providers** — env auto-detection can seed keys like "test"; model routing now requires a usable key and falls through to the next-priority provider instead of producing an opaque upstream 401.
0 commit comments