Skip to content

feat: cross-entry tool result assembly in toolpath-claude#5

Merged
akesling merged 1 commit intomainfrom
akesling/tool-in-the-city
Feb 25, 2026
Merged

feat: cross-entry tool result assembly in toolpath-claude#5
akesling merged 1 commit intomainfrom
akesling/tool-in-the-city

Conversation

@akesling
Copy link
Copy Markdown
Contributor

Tool results in Claude's JSONL are written as separate user entries from the tool invocations that produced them. Previously, ToolInvocation.result was always None and tool-result-only entries became phantom empty turns.

Now conversation_to_view() pairs results to invocations by tool_use_id, absorbing tool-result-only entries. The watcher emits turns eagerly and follows up with WatcherEvent::TurnUpdated when results arrive — no buffering, no latency, no stuck state.

toolpath-convo 0.2.0: add WatcherEvent::TurnUpdated variant toolpath-claude 0.3.0: assembly in batch + watcher paths,
Message::tool_results(), ToolResultRef

Tool results in Claude's JSONL are written as separate user entries from
the tool invocations that produced them. Previously, ToolInvocation.result
was always None and tool-result-only entries became phantom empty turns.

Now conversation_to_view() pairs results to invocations by tool_use_id,
absorbing tool-result-only entries. The watcher emits turns eagerly and
follows up with WatcherEvent::TurnUpdated when results arrive — no
buffering, no latency, no stuck state.

toolpath-convo 0.2.0: add WatcherEvent::TurnUpdated variant
toolpath-claude 0.3.0: assembly in batch + watcher paths,
  Message::tool_results(), ToolResultRef
@github-actions
Copy link
Copy Markdown

🔍 Preview deployed: https://5889aabc.toolpath.pages.dev

@akesling akesling merged commit d0db828 into main Feb 25, 2026
2 checks passed
@akesling akesling deleted the akesling/tool-in-the-city branch February 25, 2026 22:31
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