Repository navigation
feat(desktop): fold thinking and tool calls into one activity group - #170
Merged
Merged
Conversation
Thinking no longer breaks a tool group: every thinking block and tool call between two pieces of reply text renders as one collapsed group, with thinking counted in the summary and shown in order when expanded. A group with a failed step stays collapsed and shows the red marker instead of opening.
GoDiao
force-pushed
the
feat/activity-group
branch
from
October 24, 2026 09:27
7081cf9 to
94813ba
Compare
GoDiao
added a commit
that referenced
this pull request
Oct 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
While the model works, every thinking block and every tool call took its own row, so a short turn pushed the answer far down the page. Thinking also split tool groups, so groups almost always held one call and never collapsed.
Now everything between two pieces of reply text (thinking and tool calls) is one collapsed group, like Claude Code's "Ran 4 commands" box.
Behaviour
Changes
MessageList.tsx– the render model collects thinking into the pending group (as orderedstepsnext totoolCalls). The per-group stable props from perf(desktop): subscribe components to the session fields they use #169 coversteps, and the virtual-list weight and signature include thinking. The group receivesactiveThinkingIdonly when it holds that step, so other groups stay memoized.ToolCallGroup.tsx– rendersstepsin order, adds the thinking count to the summary, treats active thinking as running, and drops the auto-expand on error.en.ts/zh.ts– "thought once / thought N times".Tests
ToolCallGroup: summary with thinking count, running marker while thinking streams, steps shown in order; a failed group stays collapsed with the error marker.cd desktop && bun run test– 117 files, 1214 passed.bun run lint– clean.Follow-up
Rebased onto main after #171 (incremental streaming render, closes #154) and #148. No conflicts: #171 changed the streaming-text path and this PR changes tool and thinking grouping.
bun run lintandbun run test -- --runindesktop/pass after the rebase (121 files, 1242 passed, 4 skipped).