- New /models page: LLM cards (type tag, agent-default badge, test state
with latency/consecutive failures), add/edit form (OpenAI-compatible
segment, mono base URL/model, masked key with sk-****tail, timeout
dropdown, save gated on a passing test), agent default-model panel for
the five AIGC agents, dashed server-connectivity notice, disabled
image/video tabs as future placeholders; responsive 1440/1024/768
breakpoints per spec-v2 §9.
- Scoped A darkroom design tokens in app.css (.a-darkroom) + Noto Sans SC.
- Top nav: add Agents and Models entries before Settings.
- Backend: add 'style' agent role, llm-test timeout_sec (5-60, default 10),
api_key_tail (last 4 chars) in public profiles; 4 new tests.
- i18n: 84 models.* keys + nav.agents/nav.models in all 7 dictionaries.
Co-authored-by: multica-agent <github@multica.ai>
- First-open default language is now Simplified Chinese (i18n.svelte.ts);
stored language choice still wins.
- New POST /api/settings/llm-test endpoint probes an OpenAI-compatible
endpoint with a 1-token chat completion; falls back to a saved profile's
secret so keys never travel back to the browser.
- Settings LLM cards gain a connection-test button with readable
success/failure feedback (auth / timeout / connect / HTTP detail),
localized in all seven dictionaries.
- Backend tests cover success, saved-secret reuse, 401, connection
refused, and input validation against a local fake OpenAI server.