You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Desktop launcher: per-vendor model selection from the server catalog #900
When launching a hosted agent in the web UI, most harnesses offer a full selectable list of models. The desktop launcher only offers a curated model list for Claude and Codex; every other vendor shows just "Default" + free-text. Bring the desktop launcher to parity with the web UI's model list.
Findings
Desktop launcher already has a model picker (the Agent chip flyout, src/Capacitor.App/Views/LauncherPaneView.axaml.csRebuildRows), fed by a hardcoded list in src/Capacitor.App/Services/HostedHarnessCatalog.cs (only claude + codex populated).
The web UI feeds its dropdown from the server-side models.dev catalog. That catalog is already exposed to remote clients over REST: GET /api/agents/model-options (auth-gated), returning { vendor: [{ value, label }] }.
The desktop app already has an authenticated HTTP read path: src/Capacitor.App/Services/AuthenticatedServerReads.cs (used by RemoteAgentsService). No kcap-server change is required.
Note: the web UI launcher has no context-window-size selector — context window is a display-only occupancy metric, not a launch input. So this is model selection only (effort already exists as its own chip).
Proposed change
Add an authenticated model-catalog client that GETs /api/agents/model-options, cache it in memory, and feed it into the launcher model flyout for all vendors (keeping Default / Custom… rows). Fall back to the existing curated list when offline / not yet loaded.
Acceptance
Opening the launcher model picker for any vendor with server-side models shows the same list as the web UI.
Offline or signed-out falls back gracefully to the curated/default list.
Activity
linear-code commentedon Sep 11, 2026
AI-2718
Reload the model catalog after sign-in and log unexpected fetch faults (
Guard the model catalog against out-of-order loads (#900)
Make the catalog generation check and publish atomic (#900)