Skip to content

Commit dc4df59

Browse files
committed
fix(dashboard/config): pair Tags & Cleanup with Sidekick, push Experimental to bottom
The previous layout left two regular-width cards each occupying half a row: ┌─────────┐ ┌─────────┐ │ ... │ │ ... │ ├─────────┴─┴─────────┤ │ SIDEKICK │ ← right slot empty ├─────────────────────┤ │ EXPERIMENTAL │ ← full-width ├─────────────────────┤ │ TAGS & CLEANUP │ ← right slot empty └─────────────────────┘ Reordered so Sidekick and Tags & Cleanup pair on one row (both regular width), and Experimental closes the form full-width: ┌─────────┐ ┌─────────┐ │ SIDEKICK│ │ TAGS & │ │ │ │ CLEANUP │ ├─────────┴─┴─────────┤ │ EXPERIMENTAL │ └─────────────────────┘ Tags & Cleanup is still excluded from the auto-render `<For>` (the same filter at line 593), it just renders directly after Sidekick now instead of dangling at the very bottom. Experimental remains the last card so the "advanced/opt-in" surface stays at the form bottom, where users who don't enable anything see its empty default state without it pushing other config above the fold. Verified: dashboard frontend build clean (147 KB bundle), biome clean.
1 parent 74ed7db commit dc4df59

1 file changed

Lines changed: 22 additions & 18 deletions

File tree

packages/dashboard/src/components/ConfigEditor/ConfigEditor.tsx

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1533,8 +1533,29 @@ function ConfigForm(props: {
15331533
</div>
15341534
</div>
15351535

1536+
{/* Tags & Cleanup — placed right after Sidekick so it fills the empty
1537+
right column of the grid (Sidekick is a regular-width card and was
1538+
otherwise leaving its right slot empty). Tags & Cleanup is also a
1539+
regular-width card, so the two pair naturally on one row before the
1540+
full-width Experimental card closes the form. */}
1541+
{(() => {
1542+
const tagsFields = sections().find(([name]) => name === "Tags & Cleanup");
1543+
if (!tagsFields) return null;
1544+
return (
1545+
<div class="config-card">
1546+
<div class="config-card-header">
1547+
<span class="config-card-icon">🏷️</span>
1548+
<span class="config-card-title">Tags & Cleanup</span>
1549+
</div>
1550+
<div class="config-card-content">
1551+
<For each={tagsFields[1]}>{renderField}</For>
1552+
</div>
1553+
</div>
1554+
);
1555+
})()}
1556+
15361557
{/* Experimental — opt-in features gated behind `experimental.*` flags.
1537-
May change between releases. Rendered before Tags & Cleanup so the
1558+
May change between releases. Full-width and rendered last so the
15381559
"advanced" surface stays at the bottom of the form. Each feature is
15391560
a master toggle; child controls only appear when the feature is on,
15401561
keeping the surface compact for users who never enable any of them. */}
@@ -1873,23 +1894,6 @@ function ConfigForm(props: {
18731894
);
18741895
})()}
18751896

1876-
{/* Tags & Cleanup — rendered after agent cards */}
1877-
{(() => {
1878-
const tagsFields = sections().find(([name]) => name === "Tags & Cleanup");
1879-
if (!tagsFields) return null;
1880-
return (
1881-
<div class="config-card">
1882-
<div class="config-card-header">
1883-
<span class="config-card-icon">🏷️</span>
1884-
<span class="config-card-title">Tags & Cleanup</span>
1885-
</div>
1886-
<div class="config-card-content">
1887-
<For each={tagsFields[1]}>{renderField}</For>
1888-
</div>
1889-
</div>
1890-
);
1891-
})()}
1892-
18931897
</div>
18941898
</Show>
18951899
</div>

0 commit comments

Comments
 (0)