mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-21 00:02:30 +00:00
Widening `cleanup()` made it destructive on a prop the editor changes far more often than the flow does: both editor chats were passed `$pathStore`, which is bound to the rename field, so the teardown that forgets a flow could run while someone renamed one. They take the saved path instead, as the preview drawer's other two call sites already do, so forgetting happens when the flow does. The conversation cleanup in `jobs_export` is the same logic as retention's and had the same race: it now takes the conversation rows before asking whether they are empty. One lock order across both paths — messages, then conversation. The lock reads rather than executes because a checked `SELECT` has no `execute`; the discarded ids are the cost of the compile-time check. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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