Skip to content

feat(site/src/pages/AgentsPage/components/ChatConversation): refine working block icons and indent - #29140

Open
tracyjohnsonux wants to merge 7 commits into
mike/collapse-assistant-stepsfrom
tracy/collapse-steps-ui-tweaks
Open

feat(site/src/pages/AgentsPage/components/ChatConversation): refine working block icons and indent#29140
tracyjohnsonux wants to merge 7 commits into
mike/collapse-assistant-stepsfrom
tracy/collapse-steps-ui-tweaks

Conversation

@tracyjohnsonux

@tracyjohnsonux tracyjohnsonux commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #29115 targeting mike/collapse-assistant-steps. Design pass on the collapsed-steps block.

Summary row

  • Live block uses lucide list-todo; completed block uses list-checks.
  • The live label names the current step inline: Working for 1m 45s (Cloning the coder/coder repository). The activity is the tool's stated intent, else its command or name, else a reasoning heading. While the agent is only thinking, the last describable step is kept so the label never reads "(Thinking)". Tabular digits stop the label jiggling as the timer ticks.
  • Failed-step badge is icon + count; the wording lives in the tooltip and accessible name.

Expanded block

  • The rule is centered under the leading icon (ml-2) and nested rows start at pl-4.
  • Narration inside a block branches off the rule with two rounded corners (the AI Bridge session timeline shape), left-aligned with the tool icons, with a 4px gap before the text.
  • The rule ends in a grey dot with "Completed", or "Stopped" when a step was interrupted (chatd's synthetic interrupted tool result) or the chat's newest block ended in an error. Extra bottom margin separates it from the next message.
  • Expanding a block while pinned to the bottom no longer snaps the transcript to the end: the toggle is announced to the message scroller as user scroll intent. A geometry story covers this and fails without the fix.

Opening narration

  • The narration that opens a block's first step (the turn's lead-in) renders above the fold; only the tool work it introduces folds. This applies to the live row too, and the lead-in keeps its element identity when the block appears, so it neither re-streams nor moves; it carries no message actions since it is not the end of the turn.

Streaming

  • Once a turn has a working block, text the agent streams afterwards stays inside the block instead of flashing into view and then folding when the next tool call arrives. When the row persists it is classified normally, so a final answer appears below the summary, complete, while narration stays folded. Turns without tool steps, and the first narration of a turn, still stream as before.

Shared

  • Shimmer sweeps toward a muted content-primary instead of dimming to the background.
  • ToolCall.Root accepts a ref.

Stories: WorkingBlockDisclosure (activity, stopped, outcome marker), ConversationTimelineWorkingBlocks (narration bracket, expand-at-bottom). Unit tests cover activity derivation, outcome, and the interruption marker.

This PR was prepared by Coder Agents on behalf of @tracyjohnsonux.

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