Tool Batch Nesting — 3 Options
The current UI nests tool call rows inside a card, but the visual hierarchy feels off.
Here are 3 approaches for how expanded batch rows relate to their parent.
Each shows the same data: a codex_shell ×6 batch with mcp_filesystem ×2 batch, plus content text between them.
Option A — "Indented Rows"
Batch header is a card. Expanded rows are indented below it with a left-border continuation line. No inner card/box for rows — just indented flat text. Clean hierarchy via indentation alone.
A
Step 1: I'm setting up the workspace notes and task plan before building the site.
(+3 earlier)
cat tasks/changedoc.md
9ms
Step 2: Verifying the website implementation matches requirements.
.massgen_scratch/verification
6ms
.massgen_scratch/verification/verify.py
7ms
A — Indented Rows: Header is a card, but expanded rows spill below it as indented lines connected by a left-border. The card stays compact (just the summary); the detail lives outside the card boundary. Visually similar to a file tree.
Option B — "All-in-Card" (flat rows, no border-left)
Everything stays inside the card. Rows are separated by subtle dividers. No left-border/tree — just a flat list inside the card. Header and rows are peers.
B
Step 1: I'm setting up the workspace notes and task plan before building the site.
(+3 earlier)
cat tasks/changedoc.md
9ms
Step 2: Verifying the website implementation matches requirements.
.massgen_scratch/verification
6ms
.massgen_scratch/verification/verify.py
7ms
B — All-in-Card: Rows live inside the card, indented from the header by left padding (32px). Rows separated by subtle 1px lines — no tree connectors. Self-contained: the whole batch is one visual block. This is what we have now, essentially.
Option C — "Inline Accordion"
No card at all. The batch header is just a clickable row (like content). Expanded rows appear directly below, indented, with a thin left accent line. The whole thing is part of the message flow — not boxed off.
C
Step 1: I'm setting up the workspace notes and task plan before building the site.
(+3 earlier)
cat tasks/changedoc.md
9ms
Step 2: Verifying the website implementation matches requirements.
.massgen_scratch/verification
6ms
.massgen_scratch/verification/verify.py
7ms
C — Inline Accordion: No card boundary at all. The batch header is just a row in the message flow. Expanded rows are indented with a blue-tinted left-border. Lightest visual weight — tool calls don't "pop out" from the flow, they're just part of it. Most compact, blends naturally with content text.