create_session sets session_creation_pending = true (handle_actions.rs:1927). The only reset is at handle_backend.rs:1504, inside the Ok arm. The Err arm at handle_backend.rs:1587 only pushes a toast.
After any transient session-create failure, startup_session_pending() stays true forever, so handle_actions.rs:691 enqueues every submitted message and returns, and maybe_dequeue_message (handle_actions.rs:834) early-returns at every turn-completion site. The user types, sees the text accepted as a dim queued line, and nothing is ever sent — no spinner, no response.
The recovery the toast suggests (/new) calls create_session, which re-latches the flag, so a second failure re-locks it.
Found independently by two reviewers.
Fix: set self.session_creation_pending = false; in the Err arm.
Shipped knowingly in v1.0.177.
create_sessionsetssession_creation_pending = true(handle_actions.rs:1927). The only reset is athandle_backend.rs:1504, inside theOkarm. TheErrarm athandle_backend.rs:1587only pushes a toast.After any transient session-create failure,
startup_session_pending()stays true forever, sohandle_actions.rs:691enqueues every submitted message and returns, andmaybe_dequeue_message(handle_actions.rs:834) early-returns at every turn-completion site. The user types, sees the text accepted as a dim queued line, and nothing is ever sent — no spinner, no response.The recovery the toast suggests (
/new) callscreate_session, which re-latches the flag, so a second failure re-locks it.Found independently by two reviewers.
Fix: set
self.session_creation_pending = false;in theErrarm.Shipped knowingly in v1.0.177.