Skip to content

Roster: title into the tab bar, flip the split, rebuild the config view - #271

Merged
ANonABento merged 1 commit into
mainfrom
roster-layout-and-config
Aug 21, 2026
Merged

Roster: title into the tab bar, flip the split, rebuild the config view#271
ANonABento merged 1 commit into
mainfrom
roster-layout-and-config

Conversation

@ANonABento

Copy link
Copy Markdown
Owner

Section title moves into the tab bar

The Roster's own header block (title + caption) is gone. The workspace tab strip now shows the section name instead of workspace tabs when you're not on the board.

That's a correctness fix as much as tidying: agents are global, so a workspace selector in the Roster was chrome that changed nothing. Now the tab strip only offers a choice where the choice does something.

Split flipped

The list was taking ~65% and the dossier a fixed 380px — backwards, since the list is for scanning and the dossier is where the reading happens.

before after
list flex-1 (~65%) 340px fixed
dossier 380px fixed flex-1

340px fits two tiles per row, which is enough to scan a roster, and hands the rest to the pane that actually has content in it.

Configuration view rebuilt

It was a flat key-value list with a hairline under every row — a shape that treats a system prompt, a model name and a filesystem path as if they were peers. They aren't. Now grouped into cards, the pattern GitHub / Vercel / Stripe settings all use:

LLM      Instructions (spans, prose) │ Model │ Tools │ Skills │ Retrieval (v2)
Script   Command (spans)             │ Environment │ Outputs (v2)
  • Card headers carry a count where one is meaningful (tools, skills, args)
  • Paths, commands and tool ids are click-to-copy with a check-mark confirmation — those are values you paste elsewhere
  • The system prompt gets max-w-prose; the wider pane happily ran it to ~150 characters per line
  • Delete demoted from a full-width button to an icon — it sits beside two non-destructive actions and shouldn't carry equal weight
  • Portrait moved beside the name rather than above it, so the wider pane doesn't carry a stretched banner

Two duplications cut, both found by looking at the rendered result

  1. A separate Arguments card listed the exact values the Command card already showed.
  2. Inside Command, a chip row and a full command line said the same thing twice.

What's left is the one line that actually gets run, copyable.

Also fixed: env keys like RENDER_THREADS were truncating in a 112px label column.

Verification

  • tsc, eslint, IPC check (209), vitest run429, production build clean
  • Walked all three runtimes in Chrome, plus the MCP-with-allow-list case and the missing-skill case, at 1500px

…uild the config view

## Section title moves to the tab bar

The Roster's own header block (title + caption) is gone. The workspace tab strip
now shows the section name instead of workspace tabs when you're not on the
board.

That is also a correctness fix, not just tidying: agents are GLOBAL, so a
workspace selector in the Roster was chrome that changed nothing. Removing it
means the tab strip only offers a choice where the choice does something.

## Split flipped

The list was taking ~65% and the dossier a fixed 380px, which is backwards --
the list is for scanning, the dossier is where the reading happens.

  before   grid flex-1        | dossier 380px fixed
  after    rail 340px fixed   | dossier flex-1

340px fits two tiles per row, which is enough to scan a roster, and hands the
rest to the pane that actually has content in it.

## Configuration view rebuilt

It was a flat key-value list with a hairline under every row. That shape treats
a system prompt, a model name and a filesystem path as if they were peers,
which they are not. Now grouped into cards -- the pattern GitHub, Vercel and
Stripe settings all use:

  LLM      Instructions (spans, prose) | Model | Tools | Skills | Retrieval(v2)
  Script   Command (spans)             | Environment | Outputs(v2)

Specifics worth noting:
  - Card headers carry a count where one is meaningful (tools, skills, args).
  - Paths, commands and tool ids are click-to-copy, with a check-mark
    confirmation. Those are values people paste somewhere else.
  - The system prompt gets `max-w-prose`: the wider pane happily ran it to
    ~150 characters per line, well past readable.
  - Delete demoted from a full-width button to an icon -- it sits beside two
    non-destructive actions and shouldn't carry equal weight.
  - Portrait moved beside the name instead of above it, so the wider pane
    doesn't carry a stretched banner.

Cut two duplications found by looking at the rendered result: a separate
"Arguments" card listed the exact values the Command card already showed, and
inside Command a chip row and a full command line said the same thing twice.
What's left is the one line that actually gets run, copyable.

Also: env keys like RENDER_THREADS were truncating in a 112px label column.

Verified: tsc, eslint, IPC check 209, vitest 429, production build clean, and
walked all three runtimes plus the MCP/tools and missing-skill cases in Chrome.
@ANonABento
ANonABento merged commit 2024c3f into main Aug 21, 2026
3 checks passed
@ANonABento
ANonABento deleted the roster-layout-and-config branch August 21, 2026 20:31
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