fix(desktop): settings panels render (model/options, auxiliary, config/schema REST) - #811
Merged
Merged
Conversation
…ig/schema REST (QA round 3)
The Settings > Model panel was stuck on skeleton loaders: it awaits four
REST routes in a Promise.all and three of them 404'd on serve
(/api/model/options, /api/model/auxiliary, /api/config/schema), so the
whole panel never left its loading state. Other panels polled dead routes
too (/api/cron/jobs 54x, /api/audio/elevenlabs/voices).
Added the settings-panel REST surface:
- /api/model/options — session-independent catalog (same as the WS RPC's
config fallback), so the provider/model dropdowns populate.
- /api/model/auxiliary — {main, tasks:[]}; the panel renders 'all helper
tasks use the main model', which is the true state (no per-task override
wired yet).
- /api/config/schema — {fields:{}}; no dynamic schema in this backend, so
the Advanced tab's generated rows degrade to none while the structured
panels render from their own fields.
- /api/cron/jobs {jobs:[]}, /api/audio/elevenlabs/voices {voices:[]} —
empty but valid, stopping the 404 poll spam and letting those panels
settle.
- /api/sessions/{id} — single-session detail from the saved transcript.
Verified live: the Model settings panel fully renders — provider (Anthropic
Claude) + model (claude-sonnet-4-6) selects, Apply, Reasoning, and the full
Auxiliary-models list (Vision/Web extract/Compression/Skills hub/Approval/
MCP/Title gen). 54 desktop pytest cases green.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
agentforce314
enabled auto-merge (squash)
August 8, 2026 15:47
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Continuing hands-on desktop QA: the Settings → Model panel was stuck on skeleton loaders. It awaits four REST routes in a
Promise.alland three 404'd onclawcodex serve, so the panel never left its loading state. Other panels polled dead routes too (/api/cron/jobsfired 54× while open).Added the settings-panel REST surface:
/api/model/options— session-independent catalog (the same config fallback the WS RPC uses), so the provider/model dropdowns populate./api/model/auxiliary—{main, tasks:[]}; the panel renders "all helper tasks use the main model" (the true state)./api/config/schema—{fields:{}}; no dynamic schema in this backend, so the Advanced tab's generated rows degrade to none while the structured panels render from their own fields./api/cron/jobs{jobs:[]},/api/audio/elevenlabs/voices{voices:[]}— empty but valid; stops the 404 poll spam./api/sessions/{id}— single-session detail from the saved transcript.Verified live
The Model settings panel fully renders: provider (Anthropic Claude) + model (claude-sonnet-4-6) dropdowns, Apply, Reasoning, and the full Auxiliary-models list (Vision/Web extract/Compression/Skills hub/Approval/MCP/Title gen). 54 desktop pytest cases green.
🤖 Generated with Claude Code