Files
windmill/frontend
Guilhem LemouelandClaude Opus 5 19af05b213 fix(chat): never free a chat on a guess about its run
The same rule the streaming path already follows, applied to the three places
that still decided for themselves:

- Non-streaming turns waited on `waitJob`, which stops answering without
  settling: on its fifth failed status request it cancels and returns, leaving
  its promise pending, and the chat busy for the session. They wait on the job
  the same way a stream-less turn does, and `pollJobResult` goes with it.
- A Stop whose cancel request failed still ended the turn, freeing the composer
  while the run it could not reach carried on. The turn is left to its job.
- Loading a conversation's rows was not covered: between opening a chat and the
  job answering, a send was accepted. The hold now spans the load and the
  question, and a failed question is asked again rather than taken as a no.

A turn with more rows than a page still has no user row on the page to name its
job, so it is not picked up. That needs the server to say which turn is running.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 14:38:28 +02: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