mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-21 00:02:30 +00:00
Two sends can race the run guard, and the loser's refusal ran while the winner was mid-turn: restoreRefusedSend resolved the prompt from this.instructions — which the winner may already own — handed that text back, and blanked the field the winner still reads for its bubble and its outgoing message. The unconditional clear turned that race into an empty turn on a transcript a retry had already rewound. Every sender now passes its prompt in the options (retry/edit, AI Fix, Ask AI, background-job auto-resume, the raw-app hand-off page), so the field is written only by sendRequestImpl and a refusal touches nothing it does not own. Auto-resume drops its conditional unwind — with nothing staged there is nothing to leak on a refusal. Also trims the retry test's comment down to its assertions and adds a case pinning that a refusal parks its own prompt and leaves a concurrent winner's field untouched. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019N8x51GqABUEFvg52V6aYo
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