* feat: store mcp tool call, result and reasoning on flow conversation rows
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* fix: keep the failure reason and web search citations on tool rows
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* fix: persist a structured answer as its own row and keep reasoning-only rows from closing a turn
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* fix: keep a failed Windmill tool's error on its conversation row
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* fix: let a structured answer row claim its streamed thinking
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* fix: scope a structured answer's claim to its own turn and document the row fields as stored
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* fix: claim a textless assistant row only within the newest turn
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* refactor: store the thinking that led to a tool call on the tool row
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix: keep tool calls in stream order and scope a structured answer to its turn
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* feat: store the files a user message carried as object-storage references on its row
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* feat(chat-sdk): read a message's attachments and build their download URL
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* feat(chat-sdk): carry a loaded user message's attachments in AI SDK metadata
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* feat: store the model's call and what it got back on every tool row
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix: pass no extras in the orphaned-conversation test's message insert
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix(chat-sdk): keep a stored JSON null tool result instead of the row text
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix: label a tool call the turn finished without as not finished
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix: keep a structured answer's streamed call out of the did-not-finish label
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix: write a turn's conversation rows in order and describe stored tool calls
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix: await the image answer row like the agent loop's other rows
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix(chat-sdk): place a row nothing streamed by its sequence, not at the end
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix(chat-sdk): place only tool rows by sequence, keep a closing row last
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix(flow chat): show a failed tool's error, and no Retry on a running or stopped turn
A failed tool card showed the row label in place of the error the row now
stores. The live tool result now reports failures, so a failed call briefly
flagged a running turn as failed; a stopped turn, whose last row is the
failed tool or the cancelled flow's failure, offered Retry too.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* feat: mark test flow conversations apart from deployed ones and allow renaming a chat
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* fix: keep the conversation kind across refreshes and reject NUL titles
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* fix: ignore conversation lists for a kind no longer selected
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix: start a fresh conversation listing when the kind changes on a later page
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix: refuse sending into a conversation of the other kind
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix: refuse cross-kind conversation continuations on the server
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix: keep the conversation filter unavailable while an answer runs
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* chore: upgrade axum 0.7 to 0.8 and related dependencies
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test: add route reachability tests for ~80 previously untested endpoints
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: switch feature-gated trigger handlers from axum::async_trait to async_trait crate
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: update new trash routes to axum 0.8 path syntax
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* chore: update ee-repo-ref to latest EE commit
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test: upgrade route tests to assert 2xx responses with proper data setup
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test: restore npm_proxy and ai_routes tests using local echo servers
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: gate workspace fork test behind enterprise feature flag
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test: add ~40 more endpoint tests (jobs authed, health, favorites, ACLs, reachability)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: address review findings from axum 0.8 upgrade
- Use cookie value_trimmed() instead of value() for cookie 0.18 compat
- Update comments still referencing old :workspace_id syntax
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* chore: update ee-repo-ref
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* chore: update ee-repo-ref to 61ae055ea31481f1899953e9d5f65566b8c707b1
This commit updates the EE repository reference after PR #486 was merged in windmill-ee-private.
Previous ee-repo-ref: 0059d175a6fdddf52998b183bf91059b224704ac
New ee-repo-ref: 61ae055ea31481f1899953e9d5f65566b8c707b1
Automated by sync-ee-ref workflow.
* test: add test for new get_imports endpoint
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: remove unused import in raw_apps test
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>