Files
windmill/backend
Guilhem LemouelandClaude Opus 5 15b8fb1f54 feat(ai-chat): let a purged conversation go, and bound a renamed title
A chat's messages are deleted with the jobs behind them, and the user row now
carries its run, so retention can empty a conversation completely. When it does,
the `flow_conversation` row and the agent memory keyed on it are all that is
left, and nothing else collects them — `ai_agent_memory` has no job id for
retention to match on. Both delete paths (the retention sweep in
`windmill_common::jobs` and the `/jobs/delete` endpoint) now drop a conversation
that has no messages left, and its memory with it. The trigger is the emptiness,
so a partly-purged chat keeps what it still has.

Two statements rather than one CTE: a data-modifying CTE reads the snapshot from
before the message delete, so every conversation would still look non-empty.
Both halves are pinned by a test on each path.

Also from review: the rename endpoint bounds the title three short of the
column, since the helper appends an ellipsis; and `OpenAIResponsesSSEParser`
loses the reasoning field it never wrote — that stream has no reasoning-summary
event, so the value could only ever be empty.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QN7VboDEm9HAB1t4sMxMdE
2026-09-09 19:47:46 +02:00
..

Windmill Backend

This folder holds all backend components, the src/ folder only contains files used to build the "root" binary.

Components

name description
windmill-api The API server, exposing functionality to other components and the frontend
windmill-audit Contains audit functionality, allowing different components to record important actions
windmill-common Common code shared by all crates
windmill-queue Contains job & flow queuing functionality, commonly written to by the API server and read from by workers
windmill-worker The worker. Used to process and execute flows & jobs.
parsers Contains code to parse signatures in different langauges.

Compile sqlx for offline ci

cargo sqlx prepare --workspace -- --bin windmill --features enterprise