Files
windmill/frontend
Guilhem LemouelandClaude Opus 5 6c2ad4bbf6 fix: claim a run before the form mints its secrets, not after
The claim sat in `runAction`, which `RunForm.run()` reaches only after
`processSecretArgs` has written a variable per `password` argument. So a press
that lost the race still minted — and worse, it read the pending call after
that round trip, by which point the winner had settled it: with no call to
claim, the losing press started a job of its own.

`runRefusal` already documents this boundary, saying a caller cannot gate in
`runAction` because it comes after the mint. The claim belongs on the same side,
so the form takes it through `claimRun` just before the first write and hands it
back through `releaseRun` when the mint fails. The pages keep the call they
claimed rather than re-reading it, so a claimed press either answers that call
or does nothing.

The chat card's own form already worked this way, taking the claim ahead of its
`processSecretArgs`; the page was the asymmetric surface.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-10-13 07:42:13 -07:00
..
…
…
…
…
…
…
…

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