diff --git a/src/components/layout/tab-bar.tsx b/src/components/layout/tab-bar.tsx index 2c18b9e1..6375c20b 100644 --- a/src/components/layout/tab-bar.tsx +++ b/src/components/layout/tab-bar.tsx @@ -391,24 +391,33 @@ export function TabBar() { Below `sm` only the essentials (Settings + Cost) stay — the rest collapse to keep the centered tab cluster from colliding with the right-side icons. New workspace / checklist / archived view stay - reachable via Cmd+T, Cmd+K, and the command palette respectively. */} + reachable via Cmd+T, Cmd+K, and the command palette respectively. + + Everything except Settings is a board/workspace concern — new + workspace, that workspace's checklist, its archived tasks, its + spend. None of them mean anything while you're looking at a global + agent roster, so they come out rather than sit there inert. */}
+ // Deliberately NOT spanning both columns: a full-width card ran the + // prose to ~150 characters, and capping the text inside a full-width + // card just made it look cropped. One column is ~75ch — the right + // measure — so the card itself carries it. +
{config.systemPrompt}
) : ( diff --git a/src/components/roster/agent-editor.tsx b/src/components/roster/agent-editor.tsx index 00b261a4..9523c2c3 100644 --- a/src/components/roster/agent-editor.tsx +++ b/src/components/roster/agent-editor.tsx @@ -39,17 +39,23 @@ const GRADIENTS: { from: string; to: string }[] = [ const inputClass = 'w-full rounded-lg border border-border-default bg-bg px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary/50 focus:border-accent focus:outline-none' +/** + * One labelled control. Short inputs sit two-up in the form grid; anything + * that needs room (textareas, lists) takes `full` and spans the row. + */ function Field({ label, hint, + full = false, children, }: { label: string hint?: string + full?: boolean children: ReactNode }) { return ( -{hint}
} @@ -57,6 +63,17 @@ function Field({ ) } +/** Group heading inside the form, so twelve controls read as three groups. */ +function FormSection({ title }: { title: string }) { + return ( +