Skip to content

feat(client): provider checklist UI on the Keys page (#543) - #596

Open
gaurang-py wants to merge 2 commits into
tashfeenahmed:mainfrom
gaurang-py:feat/provider-checklist-ui
Open

feat(client): provider checklist UI on the Keys page (#543)#596
gaurang-py wants to merge 2 commits into
tashfeenahmed:mainfrom
gaurang-py:feat/provider-checklist-ui

Conversation

@gaurang-py

Copy link
Copy Markdown
Contributor

Adds the dashboard UI for #543, on top of the /api/keys/providers endpoint from #595.

⚠️ Stacked on #595. This branch includes the #595 backend commit, so the diff currently shows two commits — the net-new change here is the single client commit (feat(client): provider checklist on the Keys page). Please merge #595 first; I'll rebase this and the diff will reduce to just the UI.

What it does

A compact, read-only checklist at the top of the Providers tab on the Keys page: every built-in provider with a ✓ (key added) or ✗ (not yet), plus a "{configured} of {total} providers set up" summary — so you can see what's left to configure without scrolling the key manager and enumerating by hand.

  • Consumes GET /api/keys/providers via react-query, exactly like the rest of the page (apiFetch, dashboard-session auth handled by the wrapper).
  • Keyless providers (Kilo, OVH, AI Horde) are tagged "no key needed" so a ✗ there isn't misread as broken.
  • Hidden while loading (skeleton) and when the list is empty. Read-only — no new mutations.
  • Slotted into the existing providers tab (no new tab, minimal plumbing).

i18n

Three English strings added under keys.* (checklistTitle, checklistSummary, checklistKeyless). The custom i18n falls back to English for the other five locales, so everything renders; happy to add translations (or defer to the translation effort in #315) — let me know your preference.

Testing / verification

The client has no test harness (no vitest/testing-library in client/), so — consistent with the repo — this is verified via:

  • npm run build -w client (tsc -b && vite build) — passes
  • eslint on the changed files — clean (the repo's pre-existing lint errors are in unrelated files)

I mirrored the existing provider-list.tsx card/row idiom and lucide Check/X usage to keep it visually consistent. I can't click-test it here, so I kept it deliberately minimal — flagging that honestly.

Closes #543 together with #595.

Adds a dashboard endpoint that enumerates every registered provider with
whether at least one key has been added yet, so users can see what's still
missing without scrolling the full list (tashfeenahmed#543). The existing /api/health
endpoint only reports platforms that already have keys, so there was no way to
list the not-yet-configured providers.

Returns, per provider, { platform, name, keyless, configured, keyCount,
enabledKeyCount } plus a { total, configured, unconfigured } summary, sorted by
display name. Sourced from the runtime provider registry (getAllProviders) so
it stays in sync as providers are added; the `custom` placeholder is excluded
since it's a per-key user-defined entry, not a fixed provider to check off.
Behind the existing dashboard-session auth like the rest of /api/keys.

Adds route tests (auth required, all-unconfigured shape, configured after a
key is added). Full server suite green.
Adds an at-a-glance checklist above the provider key manager showing every
built-in provider and whether a key has been added yet (✓/✗), with a
"{configured} of {total} providers set up" summary, so users can see what's
left to configure without scrolling the full list (tashfeenahmed#543).

Consumes the GET /api/keys/providers endpoint. Read-only, react-query like the
rest of the page; keyless providers (Kilo, OVH, AI Horde) are tagged "no key
needed". Hidden while loading / when empty. English strings added; other
locales fall back to English until translated.

Verified via tsc -b + vite build + eslint (the repo has no client-side test
harness). Backend contract is covered by the server-side test added with the
endpoint.
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.

[Feature Request] Provider Checklist

1 participant