Chat Shows Thinking and Blocks Double Sends
Project chat now handles the assistant's busy state more clearly. Reasoning appears when the assistant is thinking, and users cannot send another prompt while a response is still being sent or streamed.
This is a small interaction fix, but it removes a confusing edge in daily chat use. When the assistant is still working, the UI now reflects that state instead of letting another prompt slip into the same moment.
The thinking display matters for the same reason. If reasoning is available in the message stream, we should show it consistently so users understand why the chat is busy and what the assistant is doing.
- Assistant reasoning display: reasoning parts are rendered in chat messages, so the assistant's thinking state is visible instead of being dropped from the thread.
- Unified busy state: local send state and assistant streaming state now feed the same chat-busy check.
- Duplicate message prevention: the prompt submit button is disabled while a message is sending or the assistant is still responding.
- Busy submit feedback: the submit control now shows a submitted state during sending or streaming instead of looking ready for another prompt.