fix(roundtable): draw a seat's live tool calls in full, in the order they happen - #178
Merged
Merged
Conversation
A roundtable's live block is display: contents, so its tool rows are flex items of the transcript without being its children. The rule that keeps transcript rows from shrinking only matched direct children, so once the transcript overflowed, each streamed tool call shrank to its two border pixels and a seat mid-tool-run read as a stack of empty lines above "is thinking".
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/unitThe overall line coverage in commit 4c9b832 in the TypeScript / code-coverage/componentThe overall line coverage in commit 4c9b832 in the Show a line coverage summary of the most impacted files.
Updated |
…they happen A seat's in-flight turn kept its streamed text and its tool calls in two separate lists and drew every tool call above all of the text, so a seat that said what it was about to do, ran it, then reported back read as tools first and both passages run together underneath. The live turn is now one ordered list of parts; text still waiting in the 40ms stream batch is placed before a tool call that arrives after it.
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.
Two fixes to the live block a roundtable seat streams into while its turn is running.
1. Tool calls collapsed to empty lines
While a seat was running tools, the transcript showed a stack of empty horizontal lines above "Claude is thinking…". There was one line per tool call: the seat in question had made ten (shell checks, then web searches), and there were ten lines.
Why:
.rt-live(a seat's in-flight block) isdisplay: contents, so its tool rows are flex items of.messageswithout being its children. The rule that keeps transcript rows from shrinking,.messages > * { flex-shrink: 0 }, only matches direct children, so it never reached them. A.tool-rowisoverflow: hidden, which lets its minimum height fall to 0. Once the transcript overflowed, each live tool row shrank to its two border pixels. Finished entries and the plain chat view were never affected.Fix: extend the no-shrink rule to the live block's children:
.messages > .rt-live > *.2. Tool calls drawn above all of the seat's text
The live turn kept streamed text and tool calls in two separate lists and rendered every tool call first. A seat that said "Running the suite first.", ran it, then reported back showed the tool rows on top and both passages run together underneath.
Fix: the live turn is now one ordered list of text and tool parts. Text still waiting in the 40ms stream batch is placed before a tool call that arrives after it, so batching can't reorder them.
Verification
Bashcall.npm run typecheck,npm test(118 files, 1813 tests) pass.