Skip to content

fix(web): show a lone setup action as one row - #500

Merged
incognitojam merged 1 commit into
mainfrom
fix/web-single-setup-row
Sep 27, 2026
Merged

incognitojam merged 1 commit into
mainfrom
fix/web-single-setup-row

Conversation

@incognitojam

Copy link
Copy Markdown
Owner

A completed setup action (for example "Setup Worktree completed") showed up in the chat timeline as an expandable group. Expanding it revealed a second, identical row.

The timeline shows a single entry as a plain row only when it is tool-like. A completed setup action is an info-tone entry with no command, so it fell through to the group toggle path as a one-entry group. That entry has nothing to expand on success, so the expanded group only repeated it.

A group holding just one setup-script entry now renders as a plain work row. Failed and stopped setup actions already render this way, and the plain row keeps the configured action icon and the completed, failed, or stopped mark. The group toggle's setup icon and status mark were only reachable through the one-entry case, so they are removed.

Mobile is unchanged: it wraps every group, including single tool calls, in a toggle, so a setup row there follows the same pattern as other rows.

Before After
Before: setup action row with a chevron and a duplicate row beneath it After: single setup action row with its check mark and no chevron

The after screenshot uses the light theme.

Validation

  • Loaded a thread with a completed "Setup Worktree" action in a headless browser against a dev server seeded with a copy of real data. The action renders once, with the wrench icon, the check mark, and no chevron. Clicking it adds no row, and the console showed no errors.
  • New MessagesTimeline.logic.test.ts case: a lone completed setup action produces a work row and no work-toggle. It fails without the logic change.
  • MessagesTimeline.logic.test.ts and MessagesTimeline.test.tsx pass (166 tests), including the existing setup action icon and state tests. Web typecheck is clean.

Upstream replaced these rows with a worktree setup card (pingdotgg/t3code#11372, #11832, #12015), which is past the current intake baseline. This fix covers the fork's rows until that intake decides between the card and the rows.


Written by an agent (Claude Code, claude-opus-5-5).

A completed setup action is an info-tone entry with no command, so the
timeline treated it as a non-tool entry and wrapped it in a group toggle.
Expanding the toggle showed the same row again. A group holding only a
setup-script entry now renders as a plain work row, like failed and stopped
setup actions already do. The group toggle's setup icon and status mark
were only reachable through that case and are removed.
@incognitojam
incognitojam enabled auto-merge (squash) September 27, 2026 09:28
@incognitojam
incognitojam merged commit 4f7c6a9 into main Sep 27, 2026
17 checks passed
@incognitojam
incognitojam deleted the fix/web-single-setup-row branch September 27, 2026 09:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant