Skip to content

feat(gui): providers workspace redesign polish + freeTier + rate limits#139

Open
Wibias wants to merge 53 commits into
lidge-jun:mainfrom
Wibias:codex/providers-workspace-redesign
Open

feat(gui): providers workspace redesign polish + freeTier + rate limits#139
Wibias wants to merge 53 commits into
lidge-jun:mainfrom
Wibias:codex/providers-workspace-redesign

Conversation

@Wibias

@Wibias Wibias commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Providers workspace redesign polish: a single place to manage providers, accounts, rate limits, models, and JSON config — without the classic card UI.

  • Overview with Ready / Needs setup / Disabled counts, rate-limit bars, and recently used
  • Provider detail with Overview / Models / Usage & limits / Settings, plus embedded ChatGPT account pool
  • Free vs paid pricing (freeTier) separate from keyless auth (keyOptional) — e.g. NVIDIA NIM is Free but still needs a key; MiMo Free is keyless
  • Multi-select rail filters, clearer copy (Reset filters, Checked … ago, overwrite warnings, auto-switch help)
  • Edit JSON as an in-pane editor with unsaved-leave prompts
  • Registry DTO backfill so older configs get correct free/keyless flags in the GUI

Screenshots

Captured with mocked /api responses (dummy providers, quotas, usage — no real account data).

01-overview 02-filters 03-chatgpt-detail 04-nvidia-free-tier 05-add-provider-free

Test plan

  • GUI on Vite :5173: overview, rate limits, filters, provider detail tabs, Edit JSON unsaved leave
  • Remove provider uses in-app confirm (not window.confirm)
  • NVIDIA NIM shows Free but still needs an API key when missing
  • MiMo Free does not show “No API key” / “Add API key”
  • Add provider Free / Paid / Accounts tabs still work
  • bun test --isolate ./tests/provider-workspace-data.test.ts ./tests/server-auth.test.ts
  • Full suite: bun test --isolate ./tests/

Wibias added 30 commits July 15, 2026 06:12
Resolve provider-icons signature (keep optional hints for workspace call sites) and drop unused ProviderWorkspace symbols exposed by the merge typecheck.
Take gui-i18n ESLint allowlist/plugin + AGENTS docs, keep redesign lint scope for provider-workspace-data, and fix AddProviderModal initialCustom to use fallbackPresets after the merge.
Wire ProviderWorkspace and remaining Providers hardcodes through useT, add en/de/ko/zh keys, and fix a conditional useT hooks violation.
Keep catalog/custom create in a single left-rail Add menu when providers exist; strip duplicate tiles from the overview; empty state is one centered hero with two paths.
Drop the separate Custom rail/empty-state path — Custom provider is already a row in AddProviderModal.
Custom is a dedicated button that opens the custom form; catalog Add no longer lists a Custom row at the bottom.
Free/Paid tabs, top slots sorted by 30d usage, overflow via Browse free/paid, Connect rows with icons, and a footer Connect API key path for unlisted endpoints.
Drop Custom from the rail; rename CTA to Add provider; make Browse free/paid a primary card; add Accounts tab for login/logout from the classic live account panel, restyled to match the catalog.
Compact Edit JSON on the left; Recently used fills the remaining width under the summary cards.
Drop Quick actions header so both overview panels share the same section chrome; replace the odd list glyph with curly braces for JSON.
Drop the odd Edit JSON glyph card for a simple equal-width panel next to Recently used; show 30d requests/tokens/active providers; force equal-width segment tabs.
…eight

Edit JSON uses the same summary-card language as Ready/Disabled; Browse free/paid matches list borders; Free/Paid/Accounts share equal tab height and a fixed content shell height.
Use soft surface panels with dividers instead of stacked cards on the
detail overview: one connection section, combined stats+notes side panel,
auth panel without chrome, and lighter tab sections for models/usage/settings.
Wibias added 20 commits July 16, 2026 05:28
Remove panel/card surfaces from connection, usage, auth, and tab sections.
Use title + key/value rows separated by horizontal dividers so content sits
on the page background instead of nested bordered boxes.
Match detail flatten on the overview: status counts as a strip with
dividers, Edit JSON as a link row, recently used and attention as
section lists without bordered card chrome.
Add rate-limit bars on overview, in-pane JSON editor with unsaved
leave prompts, freeTier vs keyOptional for NVIDIA NIM, registry
DTO backfill for free flags, and screenshot helper for workspace UI.
Wire DE language consistency, stacked rate limits, overwrite CTA, account IA, models/usage/settings upgrades, and JSON editor guardrails onto the existing workspace redesign.
Remove classic card UI leftovers, flatten chrome into link-style actions, add in-app remove confirm, and tighten quota reset/usage empty states.
Keep workspace Providers.tsx; combine styles (workspace icon masks + link-btn svg + usage-segmented); keep QuotaBars stacked helpers aligned to weekly-only quotas.
Preserve five-hour quota UI pending lidge-jun#138; match Edit JSON actions to workspace link-style chrome.
Use a far-future createdAt on the replacement lock so load-induced retries cannot re-stale and unlink it.
Clarify filter reset, App login, overwrite warnings, auto-switch help, keyless free auth, and checked-at quota meta; embed Codex accounts in the workspace.
Restore Anthropic API-key label parity and point reset-credit UI tests at CodexAccountPool.
Keep screenshot artifacts out of the branch and ignore output/ going forward.
Avoid setState-in-effect and ref-during-render patterns, move pickChatGptForwardProvider out of the component module, and derive JSON parse errors.
@Wibias
Wibias marked this pull request as ready for review July 17, 2026 03:12
Wibias added 2 commits July 17, 2026 05:16
Dummy-data captures of overview, filters, ChatGPT detail, NVIDIA free tier, and Add provider.
@lidge-jun

Copy link
Copy Markdown
Owner

could you leave comment when you finished? below?

@Wibias

Wibias commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

@lidge-jun Should be finished!

Enable overflow on the overview column and reveal the scrollbar only while scrolling.
@lidge-jun

Copy link
Copy Markdown
Owner

Thanks again for the substantial Providers workspace work. For future contributions, please keep each PR small and scoped to one semantic change; this one spans provider contracts, quota behavior, key management, UI architecture, styles, translations, and tests, which makes review and rollback difficult.

We are preserving your authorship and rebuilding the retained work as a small stacked-PR series based on dev. Every child PR will reference #139 and credit @Wibias. Please avoid adding unrelated changes to this branch while we split and validate it.

stack-rebuild-2026-07-17

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.

2 participants