Uploading or restoring a logo/favicon revalidated /api/system/config,
which re-ran the dialog's sync effect and replaced the whole draft,
silently wiping unsaved wordmark/login-terms edits. Now only the
draft's file field is updated from the response and only the public
config key is revalidated. Also fix the favicon fallback preview src
from the nonexistent /favicon.ico to /icon.png.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add errorReporter (errorToast = toast.error + fire-and-forget POST to
/api/error-logs) and wire it into the operational error toasts across
chat, threads, tasks, agents, models, files and clipboard. Pure form
validation hints stay on toast.error.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Three mechanisms, merged in ThreadList: a 10s heartbeat polling the new
?status=busy filter (out-of-band runs: scheduled tasks, other clients),
a module-level running store fed by useChat's own run lifecycle (zero
latency for this client's runs), and a spinner replacing the status dot
while either source marks the thread busy. The BFF list route now
validates and forwards the status filter, which also unbreaks the
previously ignored status dropdown.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Adds a GenerationParamSlider next to the reasoning-effort slider so a
per-thread temperature/top_p override can be set from the chat bar.
Unset sliders rest at the registry-catalog default in a muted style;
dragging commits an override, and clicking the value resets to the
default. Hidden below the sm breakpoint, and disabled while the
thread inherits the registry model.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
ThreadModelSelection is now "inherit" or { primary, reasoning_effort };
the BFF validator tolerates and drops legacy auxiliary keys, the runs
route no longer snapshots an auxiliary ref, and the Registry Editor's
default-auxiliary field is removed, matching the backend's single-role
snapshot resolution.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Editing a large registry draft is easy to lose to a stray click; the
dialog now only closes via the X or Close button.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Saved models start collapsed to a compact status row (key, availability,
enabled, Test); new unsaved models start expanded for editing. Test
outcomes stay visible regardless of collapse state.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Saving no longer runs live provider tests: changed enabled models are
saved as disabled (defaults repointed when needed) and the user
re-verifies manually with the per-model Test button, then re-enables and
saves again. A successful test now refreshes the local availability so
re-enabling is a plain save.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Editing an enabled model invalidated its verification record, so the
backend rejected the save with MODEL_NOT_AVAILABLE. The editor now
detects changed enabled models (mirroring configuration_hash inputs plus
credential rotation) and runs the documented disable & save -> test ->
enable & save sequence as one click, temporarily repointing defaults
when the edited model is the default primary.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
With multiple providers configured, the vertical stack required long
scrolling. The left pane now lists providers with enabled markers and
per-model availability dots plus the template picker; the right pane
shows the selected provider's editor, auto-selecting newly added
providers and clamping selection on remove.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add the six phase-1 templates (智谱 GLM, OpenAI, Anthropic,
OpenAI-compatible, Anthropic-compatible, Ollama) that prefill adapter,
Base URL, auth mode, and suggested models; saved providers remain
ordinary profiles. Verified in browser against the live dev server.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- New RegistryEditor renders providers, models, runtime parameters and
capabilities from the backend's AdapterParameterSpec contract, with
ModelAvailability badges, write-once credential staging, provider tests
showing effective_request_options, revision CAS on save, and 422 detail
paths surfaced verbatim (design doc sections 9, 11.8)
- ConfigDialog now hosts the Registry Editor (admin-only; non-admins see a
notice from the 403 path)
- AccountDialog shows the session role and embeds an admin user-management
section (list/create/promote/demote/password reset/delete, last-admin
guard enforced server-side)
- Deleted legacy ProviderProfiles/BuiltinProviders/RegistryBuiltinProviders
editors, providerProfiles/legacyLlmConfig libs, the admin-token proxy and
the /api/provider-profiles, /api/provider-actions, /api/default-model and
/api/config BFF routes (design doc section 10 legacy removals)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>