summaryrefslogtreecommitdiffhomepage
path: root/src/app/App.svelte
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-27 18:15:37 +0900
committerAdam Malczewski <[email protected]>2026-06-27 18:15:37 +0900
commitf4e6fb12c1ed446bc7b088a7d07b51c6de991af3 (patch)
treeaeb738337ccafc6a910559b3f0845592f2b93654 /src/app/App.svelte
parent5b9f48f48053e5e2d8e456efd12a461562b6e593 (diff)
downloaddispatch-web-f4e6fb12c1ed446bc7b088a7d07b51c6de991af3.tar.gz
dispatch-web-f4e6fb12c1ed446bc7b088a7d07b51c6de991af3.zip
feat(concurrency): provider dropdown instead of free-text input
Replace the Add-form provider text input with a <select> dropdown populated from the available models' provider prefixes (<provider>/<model>), unioned with providers already carrying a configured limit (so a limit set out-of-band but whose model list is empty still appears). The selection auto-defaults to the first option and falls back when an option disappears. - logic/view-model.ts: pure providerFromModel + providerOptions(models, limits) (distinct provider ids, first-seen order) + 7 tests. - ConcurrencyView.svelte: models prop + <select> bound to newProviderId; disabled + 'No providers available' when there are no models. - App.svelte: pass models={store.models}; component test updated to the dropdown (selectOptions) + a no-models case (6 component tests). Verified: typecheck 0/0, 922 tests green, biome clean, build OK.
Diffstat (limited to 'src/app/App.svelte')
-rw-r--r--src/app/App.svelte1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/app/App.svelte b/src/app/App.svelte
index b40ed09..e0f64eb 100644
--- a/src/app/App.svelte
+++ b/src/app/App.svelte
@@ -716,6 +716,7 @@
<!-- Per-provider concurrency limits + live status. GLOBAL (not workspace- or
conversation-scoped), so the panel stays mounted across tab switches. -->
<ConcurrencyView
+ models={store.models}
loadLimits={loadConcurrencyLimits}
saveLimit={saveConcurrencyLimit}
deleteLimit={deleteConcurrencyLimit}