feat(loops): filterable model select in loop modals #176

Merged
dries merged 1 commit from feat/loop-model-select into main 2026-06-29 23:13:49 +02:00
Owner

The model field in the loop create/edit modals was a plain free-text input. This makes it a filter-as-you-type select.

Changes

  • New ModelSelect component: a text input backed by a native <datalist> populated from api.models() (project-scoped via directory). Type-to-filter dropdown of previously-used provider/model values; free-text entry still works for models not in history.
  • Used in both LoopCreateModal and LoopEditModal.

Notes

  • Skipped the heavy Fuse/modal ModelPicker (needs a live-session provider catalog the modals don't have). The datalist gives type-to-filter + keeps free-text. Add the rich picker later if loops need the full live catalog instead of usage history.

Tests

  • pnpm exec tsc -b, pnpm lint, and the loop test suites pass.
The model field in the loop create/edit modals was a plain free-text input. This makes it a filter-as-you-type select. ## Changes - New `ModelSelect` component: a text input backed by a native `<datalist>` populated from `api.models()` (project-scoped via `directory`). Type-to-filter dropdown of previously-used `provider/model` values; free-text entry still works for models not in history. - Used in both `LoopCreateModal` and `LoopEditModal`. ## Notes - Skipped the heavy Fuse/modal `ModelPicker` (needs a live-session provider catalog the modals don't have). The datalist gives type-to-filter + keeps free-text. Add the rich picker later if loops need the full live catalog instead of usage history. ## Tests - `pnpm exec tsc -b`, `pnpm lint`, and the loop test suites pass.
feat(loops): filterable model select in loop create/edit modals
All checks were successful
CI / Frontend (pull_request) Successful in 4m18s
CI / Backend (pull_request) Successful in 4m29s
CI / Build Desktop (macOS arm64) (pull_request) Successful in 1m4s
CI / Playwright E2E (pull_request) Successful in 7m28s
CI / Build (pull_request) Successful in 4m15s
CI / Semantic Tag (pull_request) Has been skipped
CI / Coverage Ratchet (pull_request) Successful in 5m22s
610aebf797

Coverage ratchet: pass

Suite Baseline This PR Δ
go 69.40% 69.40% +0.00
frontend 57.39% 57.46% +0.07

Tolerance: -0.1%. Baseline stored on gh-pages.

<!-- coverage-ratchet --> ### Coverage ratchet: ✅ pass | Suite | Baseline | This PR | Δ | | |---|---|---|---|---| | go | 69.40% | 69.40% | +0.00 | ✅ | | frontend | 57.39% | 57.46% | +0.07 | ✅ | _Tolerance: -0.1%. Baseline stored on `gh-pages`._
dries merged commit 9eb87c2bb4 into main 2026-06-29 23:13:49 +02:00
Sign in to join this conversation.
No description provided.