Product
The Stop button now stops what is running
Stop used to end the chat view at once while a tool, a workflow or a /goal kept going. Now it reaches all of them, and the button says so until the server confirms.
On 27 October a chat needed 91 seconds to stop. A tool was waiting for a workflow and never looked at the Stop button. The page said "stopped" at once, so the person clicked five more times.
Text version
Stop ends the running tool at once, reaches the other server slot, pauses the /goal and pauses the workflows of the chat.
Every tool the assistant can call now watches the Stop button. After a stop no late result lands in the chat. During a release the run can sit on the other server instance, and the stop now reaches it within a few seconds. A stop that arrives while a message is still being prepared is no longer lost.
Stop pauses a /goal. Writing the next message no longer restarts it. The goal bar says "paused" and has a Resume button. Ultracode workflows of that chat are paused too, and their card has a Resume button that continues where they stopped.
The Stop button shows "Stopping" and stays locked until the server confirms the end. If the request fails you see an error. A workflow that fails for a reason a retry cannot change, such as a missing checking model, is no longer repeated ten times, and the waiting tool reports that error at once.
We tested the stop with a replica of the tools, the server slots and the database. We have not yet watched it on a real long build inside a container.