summaryrefslogtreecommitdiffhomepage
path: root/.dispatch/wire.reference.md
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-09-24 19:20:37 +0900
committerAdam Malczewski <[email protected]>2026-09-24 19:20:37 +0900
commit591e2dbe5cbf2283d58debdf92943a075edc4569 (patch)
tree11ee2481ed79f257cd6303f44992471ec9282237 /.dispatch/wire.reference.md
parent6556e70e396ec7cc9b2311ef60e00c81722777c7 (diff)
downloaddispatch-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.md30
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;
+}
+```