mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-10-17 00:02:59 +00:00
`writeDraft` held three paths at once — the raw argument it was handed, plus the resolved target's `path` and `storagePath` — and passed the raw one to `buildDraft`, which writes it into the value. For a script that value field *is* the draft's chosen name, and the deployer deploys at the path inside the value, so addressing a renamed or never-deployed draft by its storage key renamed the script to that key. The other kinds keep their name in `draft_path`, which survives the spread untouched, and apps are rescued explicitly by `normalizeAppDraftValue`. Both addresses for one draft were legal but not equivalent, and the storage key is the one the tools now hand the model — so the broken address was the common one. `writeDraft` loses its `path` parameter: the resolved target is the only address below the boundary, and `buildDraft` receives one path with one meaning, the chosen name. Each spec now has to say it writes the name, and cannot reach for the key. A base's own name wins; only a create takes its name from the call. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Windmill frontend
The Windmill frontend written in Svelte 5 + Tailwind CSS
The frontend is under AGPL, see the LICENSE file at the root of this repo