f0742dd4f9
The form-submit handler in chat.html was setting ``textarea.disabled = true`` synchronously before the browser actually serialized the form. Disabled form fields are excluded from submission, so the request body contained ``prose=""`` even when the user had typed text — which the server (correctly) rejected with the new empty-prose 400. Net effect: typing "hello" + Send gave a "prose cannot be empty" error. Switched to ``readOnly``: same UX (user can't edit while streaming) but the field IS submitted. The unlock path now also clears the textarea and refocuses for the next turn.