#227
fix(ui): skip incomplete tool calls during replay
What
- Ignore persisted input-streaming tool parts when rebuilding internal message history.
- Cover static, dynamic, and legacy tool part shapes.
Why
If a request disconnects while tool arguments are still streaming, the frontend can submit that partial UI state on the next request. The inbound adapter currently converts the partial part into a ToolCallPart, so the agent treats it as a replayable trailing tool call and can execute it before the input is complete.
How
Skip only the input-streaming state before creating internal tool calls. Complete input, approval, result, and error states keep their existing behavior.
Verification
- uv run --frozen pytest -q: 594 passed
- Ruff format and lint passed
- mypy passed
- ty passed
Suggested release label: fix.
@EfeDurmaz16 is attempting to deploy a commit to the Vercel Labs Team on Vercel.
A member of the Team first needs to authorize it.