Skip to content

feat(dashboard): compact grid layout for no-auth provider accounts - #4137

Merged
diegosouzapw merged 3 commits into
cheaper-inference:release/v3.8.29from
felipesartori:feat/noauth-account-grid
Jun 18, 2026
Merged

diegosouzapw merged 3 commits into
cheaper-inference:release/v3.8.29from
felipesartori:feat/noauth-account-grid

Conversation

@felipesartori

Copy link
Copy Markdown
Contributor

Problem

The no-auth account list (e.g. MiMoCode (Free)) rendered every account as a full-width row. A provider with 15+ accounts became a tall, repetitive single column — cluttered and hard to scan.

Change

Reworked NoAuthAccountCard's account list into a responsive 1 / 2 / 3-column grid of compact chips with a capped, scrollable height (max-h-72 overflow-y-auto), so the card never grows unbounded.

Each chip keeps the per-account proxy control as a shield icon:

  • muted = no proxy
  • filled blue = proxy configured (full type://host:port shown in the tooltip)
  • hover reveals the remove button

Because an anchored popover would be clipped by the scroll container, the proxy editor was lifted out of the per-row map into a single centered modal, preserving the existing configure / save / cancel behavior (click-outside still closes).

Tests

Added tests/unit/noauth-account-card.test.tsx (vitest + jsdom), covering:

  • the account list renders as a multi-column grid
  • one chip per account fingerprint (15 → 15 chips)
  • capped height + vertical scroll
  • a proxy shield control on every chip
  • clicking a chip's shield opens the proxy editor

All 5 pass; ESLint and typecheck clean on the changed files.

Validation (Hard Rule #18)

UI-only change validated by the new automated component tests (TDD path), and manually verified locally on the live dashboard (/dashboard/providers/mimocode) against the real 15-account MiMoCode connection.

Notes

  • No schema/DB/API changes — pure presentation in a single shared component (src/shared/components/NoAuthAccountCard.tsx), used by all no-auth providers.

🤖 Generated with Claude Code

The no-auth account list (e.g. MiMoCode Free) rendered every account as a
full-width row, so a provider with 15+ accounts became a tall, cluttered
single column that was hard to scan.

Rework NoAuthAccountCard's account list into a responsive 1/2/3-column grid
of compact chips with a capped, scrollable height (max-h-72 overflow-y-auto)
so the card never grows unbounded. Each chip keeps the per-account proxy
control as a shield icon (muted = no proxy, filled blue = configured, host
shown in the tooltip) plus the hover remove button.

Because an anchored popover would be clipped by the scroll container, the
proxy editor is lifted out of the per-row map into a single centered modal,
preserving the existing configure/save/cancel behavior.

Adds tests/unit/noauth-account-card.test.tsx covering the grid layout,
one-chip-per-account, capped-scroll height, the proxy shield on every chip,
and opening the proxy editor.
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

diegosouzapw and others added 2 commits June 18, 2026 00:23
…sts/unit/ui/

The new component test was placed at tests/unit/noauth-account-card.test.tsx,
which the check:test-discovery gate flags as an orphan: the node native runner
only collects tests/unit/*.test.ts, and the vitest UI run (test:vitest:ui) is
path-filtered to tests/unit/ui, so a top-level .test.tsx never runs. Move it to
tests/unit/ui/ (alongside the other component tests) and fix the relative import
depth so it is actually collected and executed.

Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com>
@diegosouzapw
diegosouzapw merged commit 91183dc into cheaper-inference:release/v3.8.29 Jun 18, 2026
4 checks passed
@diegosouzapw

Copy link
Copy Markdown
Collaborator

Thanks, @felipesartori! 🙏 Nice UX upgrade — the no-auth account list was genuinely unwieldy at 15+ accounts, and the compact chip grid + capped scroll + lifted proxy modal is a clean solution. The component-test coverage is appreciated too.

One tiny adjustment before merge (co-authored): the new test landed at tests/unit/noauth-account-card.test.tsx, which the check:test-discovery gate flags as an orphan — the node native runner only collects tests/unit/*.test.ts, and the vitest UI run is path-filtered to tests/unit/ui, so a top-level .test.tsx never actually runs. Moved it to tests/unit/ui/ (next to the other component tests) and fixed the relative import depth; all 5 tests pass there and the gate is green. Merged into release/v3.8.29 — ships in the upcoming release. 🚀

@diegosouzapw diegosouzapw mentioned this pull request Jun 19, 2026
tkgo11 pushed a commit to tkgo11/OmniRoute that referenced this pull request Sep 23, 2026
…heaper-inference#4137)

Integrated into release/v3.8.29 (moved component test into tests/unit/ui/; check:test-discovery green). Co-authored-by: diegosouzapw
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