Skip to content

feat(web): saved queries UI, file upload on ingest, playground hybrid/rerank#60

Merged
erichare merged 1 commit intomainfrom
feat/web-phase-2b-tail
Apr 24, 2026
Merged

feat(web): saved queries UI, file upload on ingest, playground hybrid/rerank#60
erichare merged 1 commit intomainfrom
feat/web-phase-2b-tail

Conversation

@erichare
Copy link
Copy Markdown
Collaborator

Summary

UI catch-up for the phase-2b backend tail. Brings the web app in line with features that have already shipped server-side: saved queries, hybrid + rerank toggles, and proper file uploads.

  • Saved queries in each catalog row: list, create, delete, one-click replay. New useSavedQueries hooks + SavedQueriesSection component, rendered inside the expanded catalog row under the document list. Talks to the existing /catalogs/{c}/queries + /queries/{q}/run routes.
  • Ingest dialog now has a drag-and-drop + click-to-browse file picker for text-ish formats (.txt, .md, .json, .csv, .yaml, …). Reads the file into the textarea and auto-fills sourceFilename. 5 MB cap, clear toast errors on unsupported types or oversize files.
  • Playground QueryForm Hybrid + Rerank toggles wired to the runtime flags. Validation blocks hybrid/rerank on the Vector tab (they require a text query). Descriptions surface whether the bound store has lexical/reranking enabled.

No backend changes — all routes and schemas already exist.

Test plan

  • pnpm typecheck clean (passes locally)
  • pnpm lint clean (passes locally)
  • pnpm --filter ai-workbench-web build clean (passes locally)
  • Manual: create a saved query from the catalog row, verify it persists after reload, run it, delete it
  • Manual: drop a .md file onto the ingest dialog, confirm textarea fills and filename auto-populates
  • Manual: toggle Hybrid on a lexical-enabled store, verify results differ from pure vector
  • Manual: toggle Rerank on a reranking-enabled store, verify hit order changes

🤖 Generated with Claude Code

…/rerank

Catches the UI up to the phase-2b backend tail:

- Saved queries: list + create + delete + replay, rendered inside the
  expanded catalog row under the document list. Uses new React Query
  hooks (`useSavedQueries`) and the existing /queries route.
- Ingest dialog: drag-and-drop + click-to-browse file picker for
  text-ish formats (txt, md, json, csv, yaml, …). Reads the file
  into the textarea and auto-fills `sourceFilename`. 5 MB cap.
- Playground QueryForm: Hybrid + Rerank toggles wired to the runtime
  flags (`hybrid`, `rerank`). Vector-tab combos are blocked inline.
  Descriptions surface whether the bound store supports each lane.

No backend changes — all routes already exist.
@erichare erichare merged commit 532f965 into main Apr 24, 2026
9 checks passed
@erichare erichare deleted the feat/web-phase-2b-tail branch April 24, 2026 21:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant