Only send the delta on the partial tool call#2105
Merged
dgageot merged 1 commit intodocker:mainfrom Mar 18, 2026
Merged
Conversation
06ef911 to
ad83fb8
Compare
Member
Author
|
/review |
There was a problem hiding this comment.
Assessment: 🟢 APPROVE
This PR correctly implements delta-only transmission for partial tool call events. The changes include:
- Normalization logic in
streaming.gothat correctly detects whether providers send full buffers or deltas by checking if the new chunk starts with the accumulated buffer - Delta extraction that properly calculates the new bytes and updates the accumulated state
- TUI component updates that accumulate deltas when status is "pending"
- Comprehensive tests verifying both delta-only and full-buffer normalization scenarios
The code correctly handles:
- Providers that send true deltas (concatenates to accumulated buffer)
- Providers that resend full buffers (detects prefix, extracts delta, updates buffer)
- First event emission with tool name and definition
- Subsequent events with only argument deltas (no definition)
- Proper accumulation in TUI components
No bugs found in the changed code.
Member
Author
|
I'm not so sure about the normalization in streaming.go, I'll remove it, it doesn't make sense |
ad83fb8 to
1593e05
Compare
Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
1593e05 to
cd4b350
Compare
dgageot
approved these changes
Mar 18, 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.
Only sends the delta arguments received on each partial tool call. We used to send the whole accumulated tool call arguemnts, which is dumb, the clients should handle accumulation if they care.
Also added sending the tool definition only on the first partial too call