Skip to content

fix(pi): preserve tool result outcomes - #53

Merged
drewstone merged 1 commit into
mainfrom
agent/pi-tool-result-outcomes
Jul 30, 2026
Merged

fix(pi): preserve tool result outcomes#53
drewstone merged 1 commit into
mainfrom
agent/pi-tool-result-outcomes

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

Summary

  • join Pi message-level tool results to their calls by call ID
  • preserve result output, completion time, success or failure status, and error text
  • keep unfinished calls UNSET and retain unmatched results as explicitly marked root-owned tool spans
  • preserve the tool-argument capture merged in fix(pi): preserve tool call arguments #52

Root cause

Pi stores calls inside assistant message content, but stores their completions as separate role: "toolResult" messages. The adapter only handled result blocks nested inside message content, so message-level results were treated as model messages and their output, status, and timing were lost.

Impact

Pi traces now represent successful, failed, unfinished, out-of-order, and orphaned tool outcomes without inventing model calls or dropping result evidence.

Validation

  • pnpm vitest run tests/adapters.test.ts -t 'pi tool results' — 4 passed
  • pnpm typecheck — passed
  • pnpm test — 371 passed
  • pnpm build — passed
  • pnpm check:package — passed
  • git merge-tree --write-tree origin/main HEAD — clean

@drewstone
drewstone marked this pull request as ready for review July 30, 2026 05:49
@drewstone
drewstone merged commit a64b163 into main Jul 30, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant