mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-21 16:02:36 +00:00
Two edges of the round-18 serialization, both in the same seam: - The superseded() probe ran after reloadChat but not after loadPastChat, which also awaits (image hydration). A catch-up overtaken during that await still settled the caught-up gate, unlocking the composer over a transcript missing the newer turn for as long as the queued catch-up was still reading. Re-probed before caughtUp is set, so a superseded catch-up leaves the gate to the one that owns it. Every await in applyTurnEnd is now followed by a probe before any write or release. - The unavailable-store retry re-queued carrying its own turn-end's chat id, and newest-queued-wins let that stale retry supersede a newer turn-end's catch-up — re-adopting and re-persisting the chat a /clear had rotated away from. A newly queued catch-up now cancels any pending retry; the new task schedules its own if it needs one, so a retry can no longer outlive its turn-end. Also trims a test comment that repeated the executor contract documented on createLatestWins. 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