diff options
| author | Adam Malczewski <[email protected]> | 2026-09-24 19:20:37 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-09-24 19:20:37 +0900 |
| commit | 591e2dbe5cbf2283d58debdf92943a075edc4569 (patch) | |
| tree | 11ee2481ed79f257cd6303f44992471ec9282237 /.dispatch/wire.reference.md | |
| parent | 6556e70e396ec7cc9b2311ef60e00c81722777c7 (diff) | |
| download | dispatch-web-591e2dbe5cbf2283d58debdf92943a075edc4569.tar.gz dispatch-web-591e2dbe5cbf2283d58debdf92943a075edc4569.zip | |
feat(search-backend-selection): Search backend dropdown in Settings
- New features/search-settings: pure view-model (options = available backends
∪ 'None (search disabled)', unconfigured entries disabled with a suffix,
unknown persisted selection prepended, network-seam normalization) + the
SearchBackendField dropdown (save-on-change, spinner/saved/error states,
revert-to-persisted on failure, 503 -> disabled field with a 'search not
available' hint, loading skeleton, help text noting search-mode-only scope).
- store.svelte.ts: searchBackendConfig() / setSearchBackend() over the global
GET/PUT /search/config routes (503 marked unavailable on the failure variant).
- SettingsPane renders the field under the chat limit; ExtensionsPane lists
the new module manifest.
- .dispatch mirrors: wire + transport-contract deltas for the new types/routes.
Diffstat (limited to '.dispatch/wire.reference.md')
| -rw-r--r-- | .dispatch/wire.reference.md | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/.dispatch/wire.reference.md b/.dispatch/wire.reference.md index 5379b11..6e8daff 100644 --- a/.dispatch/wire.reference.md +++ b/.dispatch/wire.reference.md @@ -822,3 +822,33 @@ export interface ComputerEntry extends Computer { readonly usageCount: number; } ``` + +--- + +## 2026-09-24 delta (search-backend-selection — ADDITIVE) + +The global search-backend selection wire types (`GET/PUT /search/config`, GLOBAL — not +workspace-scoped) shipped in `@dispatch/wire` (transport-contract re-exports them): + +```ts +/** The selected backend id. `"none"` = search off (scrape/crawl keep working). */ +export type SearchBackendId = "firecrawl" | "umans" | "none"; + +/** One dropdown entry; `configured` is the availability gate (umans: UMANS_API_KEY resolves; firecrawl: always). */ +export interface SearchBackendAvailability { + readonly id: string; + readonly label: string; + readonly configured: boolean; +} + +/** Response of `GET /search/config` — the selection + every registered backend's availability. */ +export interface SearchBackendConfigResponse { + readonly backend: string; + readonly available: readonly SearchBackendAvailability[]; +} + +/** Body of `PUT /search/config` — select a backend by id (or `"none"`). */ +export interface UpdateSearchConfigRequest { + readonly backend: string; +} +``` |
