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>