Conversation
Move the RateLimit assignment inside the Usage nil-check block. When res.Usage is nil but res.RateLimit is non-nil (e.g. Anthropic with track_usage disabled), msgUsage stays nil and dereferencing it panics. Assisted-By: cagent
Providers like Gemini emit cumulative token usage on every stream chunk. The previous code used sess.Cost += on each emission, re-adding the full cost every time. Track the cost already contributed by the current stream and only apply the delta so the session total stays correct. Assisted-By: cagent
There was a problem hiding this comment.
Review Summary
✅ No issues found
The changes correctly implement two important bug fixes:
-
RateLimit indentation fix (line 1096): Properly moves the
RateLimitassignment inside the conditional block, ensuring the pointer is only dereferenced when not nil. -
Cost calculation fix (lines 1273-1301):
- Introduces
prevStreamCostto track cumulative costs and prevent double-counting in streaming responses - Fixes parenthesis placement to ensure the entire cost calculation is divided by 1e6 (not just the last term)
- Correctly implements differential cost tracking:
sess.Cost += streamCost - prevStreamCost
- Introduces
Both changes are well-implemented and address real issues in the cost tracking logic.
rumpl
approved these changes
Feb 14, 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.
No description provided.