fix: account completion calling turn usage - #58
Merged
fitchmultz merged 5 commits intoSep 23, 2026
Merged
Conversation
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.
Fixes #57.
Fix
Count the assistant response that calls
update_goalbefore marking the goal complete. Use Pi's persisted current assistant message and the executing tool-call ID; completion and subsequent turn events still charge it only once.Keep response-token ownership tied to the goal active at turn start. Replacing a goal during a response still tracks elapsed tool time, but does not charge the replacement for the old response. Pausing and resuming the same goal preserves its response tokens. Retire ownership after turn accounting so the aborted-response fallback cannot count it again.
This retains the original contribution, simplifies its lookup to native session types, and adds a real in-memory SDK regression.
Verification
npm run verify: 353 tests passed, plus typecheck and platform-smoke harness checks.