Skip to content

fix(dashboard): Config tab rendered in a narrow column — restore the grid#58

Merged
jmlago merged 1 commit into
mainfrom
config-tab-layout
Jun 30, 2026
Merged

fix(dashboard): Config tab rendered in a narrow column — restore the grid#58
jmlago merged 1 commit into
mainfrom
config-tab-layout

Conversation

@jmlago

@jmlago jmlago commented Jun 30, 2026

Copy link
Copy Markdown
Member

The bug

The Config tab rendered as a thin left column with labels and inputs clipped (operator couldn't read or use the knobs).

Root cause: #configPage had class='grid', but renderConfig writes its provider cards into an inner <div id='config'> — a plain block that is the section's only grid child. The .card span12 cards were therefore one level too deep (no grid context for span12), and #config itself occupied a single 1/12 track. Every other page (activity, builder, …) nests .card spanN directly under the .grid; Config was the odd one out.

The fix (render-only)

  • #config IS the grid now — <div class='grid' id='config'> — so the provider cards are direct grid children and span classes apply.
  • Each provider repaints as a .card span6 (two-up on desktop; the existing @media(max-width:1040px) rule already collapses span6→span12), with a .toolbar header + knob count.
  • Each knob is a .cfgRow grid — description | control | actions — so labels, inputs and Save/Reset align down the card instead of wrapping raggedly. List inputs (peer allow/deny) and number inputs fill their control column.

Not touched

The data endpoint (/dashboard/api/configsettings.current()), the save path (saveConfigKnob/postConfig), and the input contract (cfg_<key> ids, data-kind) are unchanged.

Verification

  • renderConfig executed against settings.current()-shaped input: balanced markup, span6 cards, .toolbar headers, .cfgRow rows, list and number inputs, override pills, Save + Reset wiring — all present; group order and pluralized knob badges correct.
  • Suite (config/settings/dashboard): 69 passed / 0 failed.

Follow-up to the modular-providers refactor (#57) — same Config tab, now legible.

…grid

`#configPage` carried `class='grid'` but `renderConfig` wrote its cards into an
inner `<div id='config'>` — a plain block that is the section's only grid child.
So the cards sat one level too deep: their `span12` had no grid context, and
`#config` itself took a single 1/12 track. The whole tab crammed into a thin
left column with the labels/inputs clipped (see before/after).

- `#config` IS the grid now (`<div class='grid' id='config'>`), so the provider
  cards are direct grid children and their span classes apply — matching how
  every other page (activity, builder…) nests `.card spanN` under `.grid`.
- Repaint each provider as a `.card span6` (two-up on desktop, full-width under
  1040px via the existing media query) with a `.toolbar` header + knob count,
  and lay each knob on a `.cfgRow` grid (description | control | actions) so
  labels, inputs and Save/Reset align down the card instead of wrapping ragged.

Render-only; the data (`/dashboard/api/config`), the save path
(`saveConfigKnob`/`postConfig`) and the knob ids (`cfg_<key>`, `data-kind`) are
untouched. Validated by running renderConfig against settings.current()-shaped
input: balanced markup, span6 cards, list/num inputs, override pills and reset
wiring all present. Suite (config/settings/dashboard) 69/0.
@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@jmlago, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 50 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e5b214fd-8fba-4a1d-9900-230626f89827

📥 Commits

Reviewing files that changed from the base of the PR and between b0dfdf3 and de480d3.

📒 Files selected for processing (1)
  • auth_proxy.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch config-tab-layout

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@jmlago jmlago merged commit 7583285 into main Jun 30, 2026
1 check passed
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