mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-21 00:02:30 +00:00
A tool row said one of four things depending on how its call ended, and two of those wordings were the error itself. The row's text is the one thing every reader of a conversation has — the transcript, the chat SDK, anything reading the API — so it should say the same kind of thing every time, and the reason a call failed belongs where every other call's result already lives. All four now word the row from the tool, and a failure puts what it failed with in the row's result. Only where the row is the sole copy: a tool that ran has a job holding both its arguments and its error, and that job is still what the card reads them from. The card shows a failed tool's result rather than discarding it, falling back to the row's text for the rows already written the old way, which keep rendering as they always did. A tool whose job ran and failed streamed success where it stored failure, so the card read as a successful call for the length of the turn and corrected itself on the next reload. The stream now carries what the row is worded from. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Windmill API
The API server, exposing functionality to other components and the frontend
This crate exposes both a library as well as a binary target.