Skip to content

feat(embeddings): add operator UI - #323

Open
kkopanidis wants to merge 24 commits into
ui-rewritefrom
feat/embeddings-ui
Open

kkopanidis wants to merge 24 commits into
ui-rewritefrom
feat/embeddings-ui

Conversation

@kkopanidis

@kkopanidis kkopanidis commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add an Embeddings operator module on ui-rewrite: overview, configs, backfills, test search, and Settings.
  • Settings is a model catalogue (HTTPS endpoint, replacement-only API key). No gRPC or host controls; GRPC_KEY stays deployment-owned.
  • Config create/edit uses searchable enabled+extendable schema, provider, and model selectors, with derived dimensions and help.
  • Schema eligibility fails closed via authoritative GET /database/schemas/system filtering. Provider keys and search documents stay off the client.

Test plan

  • Node 24 pnpm test — Vitest 125 passed
  • pnpm test:e2e — Playwright 40 passed
  • pnpm lint
  • pnpm exec tsc --noEmit
  • CI=false pnpm build
  • Against a live Conduit with embeddings enabled: save catalogue Settings, create a config from enabled+extendable schema/provider/model selectors, run a backfill, run Test Search

Depends on ConduitPlatform/Conduit#1592

Normalize config, backfill, and capability responses so operator UI can
consume a stable contract without leaking modelName or redacted secrets.
Add navigation, maps, and a fail-soft overview with a reusable
capability, provider, index, config, and worker checklist.
Operators need list/create/detail flows that show matching index
readiness, gate enablement, and confirm edits that can replace an index.
Save provider settings without submitting a redacted API key.
Enable workers separately from the deployed embeddings workload.
Give operators filterable run history and per-run actions
without implying collection-wide completion.
Run Admin semantic search against a ready config with the shared readiness checklist.
Give embeddings helpers and focused components a real runner
with path-filtered CI, without changing operator behavior.
…, and list actions

Keep embeddings chrome stable and make configs, search errors, and backfill
controls usable without changing unrelated modules or theme behavior.
Deduplicate settled-result handling and move overview helpers out of
the dashboard page. Type settings and config forms at the edges.
Match index selection, worker config, and search gates to the live Admin API.
Strip plaintext API keys before RSC serialization, send an explicit upsert
body without client allowlists, and sanitize semantic-search documents
for table and JSON views.
Reuse schema/config fetches per request, send summaries to the client, and
reject upserts when schema eligibility cannot be verified.
Use the Database enabled filter and local DeclaredSchema checks so
create/edit, upsert, search, backfill, and index resolution fail closed.
…ults

Drop leftover LLM phrasing and duplicated start-backfill initial state after review fixes.
Exclude the ui-rewrite node:test file from Vitest, matching the other Node test files.
Align provider settings with HTTPS endpoint, replacement-only API key,
and a named model catalogue. Drop gRPC-key and allowed-hosts fields;
GRPC_KEY remains deployment-owned.
Select provider and model from the live catalogue, derive dimensions,
and only offer schemas that are enabled and extendable.
Reject explicit dimension mismatches and extension collisions, omit
optional dimensions, and keep mock GET/PATCH catalogue-shaped with
redacted keys.
Keep switches and Save in sync when the backend forces enabled false
or catalogue fields after a material edit.
Fetch GET /database/schemas/system and deny core/router-owned internals.
Keep enabled+extendable User/Team/business schemas; fail closed if the
system list is unavailable.
Reuse the shared namedSchema helper, drop unused combobox keywords, and
align empty-provider and form-reset wiring with existing settings patterns.
Keep the keyboard settings save assertion on exact toast text, and run
embeddings-ui when shared nav, module-map, breadcrumb, or dashboard files change.
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