Files
windmill/backend
Guilhem LemouelandClaude Opus 5 2c79a2f143 fix(ai-chat): make an attachment's key agree with its bytes, and the test backfill find anything
Addresses the CI reviewers on f41174e, plus what the local rounds found on top.

- An image is re-encoded to PNG/JPEG on the way in but kept the picked filename,
  and the worker reads an attachment's media type from the object key alone
  (`mime_guess::from_path`), never from the stored content type — so a `.webp`
  reached the provider as PNG bytes labelled webp, which Anthropic rejects.
  `storedAttachmentName` now makes the extension match the encoding; the same
  rule covers a PDF picked without one, whose key would guess as `image/png`.
- The `is_test` backfill matched no existing conversation: no message row held
  the flow job before this release, so it now walks to the run's root, ordered
  as `get_root_job_id` is — `flow_innermost_root_job` stops at the closest flow
  scope, which would miss an agent inside a subflow.
- A stored value for the attachments input no longer rides an attachment-free
  message: the paperclip is that input's only writer wherever it is offered.
- The lowest thinking stop is now clickable from the `default` state, where the
  range input's value already read 0 and so fired no event.
- Dropped `footerControls` and the `settleStreamingRows` export, neither of
  which ever had a caller.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QN7VboDEm9HAB1t4sMxMdE
2026-09-10 16:51:45 +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