Skip to content

feat(studio): provider management, model router, gateway + controller provider routes - #976

Closed
jtenniswood wants to merge 1 commit into
studio/S10from
studio/S11
Closed

feat(studio): provider management, model router, gateway + controller provider routes#976
jtenniswood wants to merge 1 commit into
studio/S10from
studio/S11

Conversation

@jtenniswood

Copy link
Copy Markdown

Stack 11/21 — Studio: provider management, model router, gateway + controller provider routes

The runtime-config half of settings, consolidated with its server side so every write path is reviewed next to the UI that drives it.

  • Provider list/add/test/remove + active-provider switch: server-side auth.yaml ownership — booleans and key-shape probes cross the wire, never key material (provider-auth.mjs's 29-case suite has covered this logic since PR 3). Base-URL overrides for built-in providers; custom gateway providers.
  • The model-router editor over the daemon's whole model inventory; the validated user-entered MCP gateway (HTTPS-only egress, from PR 3's validateGatewayURL); the About-this-daemon card off the safe identity probe (server-info.ts lands with its only consumer).
  • local-controller.mjs grows /providers* + /model-router GET/PUT and reaches its final state; the hermetic suite and workspace.spec.ts reach theirs (the provider e2e spec pins the external-mode "deployment-owned" read-only posture end-to-end).
  • Both per-provider pages (settings/provider/[name] + the workspace/provider/[name] legacy stub); use-harness-runtime, use-provider-management, model-preferences (+test).

Demo at this stack point: add/test/remove providers, switch the active one, route models per category, set the MCP gateway (managed); everything read-only and deployment-owned in external mode.

Part of the stacked landing of #618. Size note: at the top of the series' review budget; model-router-section is the named split-out if review stalls.

🤖 Generated with Claude Code

… provider routes

The runtime-config half of settings, consolidated with its server side.
Provider list/add/test/remove and the active-provider switch run through the
local controller against the daemon's auth file — server-side ownership;
booleans and key-shape probes cross the wire, never key material (the
provider-auth suite has pinned that logic since the server-tier PR).
Built-in providers take base-URL overrides; custom gateway providers are
validated. The model-router editor offers the daemon's whole model
inventory; the MCP gateway stays user-entered but always validated with
HTTPS-only egress. The About-this-daemon card lands with server-info.ts, its
only consumer.

local-controller.mjs grows /providers* + /model-router GET/PUT and reaches
its final state; workspace.spec.ts reaches its final five-surface state (the
provider spec pins the external-mode deployment-owned posture end to end).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@jtenniswood jtenniswood added enhancement New feature or request ui config Operator settings.yaml / YAML config surface, flags, and config UX (init, reference, enable models) WebUI Applies to the WebUI interface labels Sep 2, 2026
@jhrozek jhrozek closed this Sep 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

config Operator settings.yaml / YAML config surface, flags, and config UX (init, reference, enable models) enhancement New feature or request ui WebUI Applies to the WebUI interface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants