| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
When the remote end closes the connection (e.g., subprocess crashes), _receive_loop exits cleanly on EOF without raising an exception. This means _on_receive_error is never called and pending outgoing request futures hang forever. Add reject_all_outgoing() after the receive loop breaks on EOF so callers get a ConnectionError instead of an infinite hang. Fixes agentclientprotocol#85 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
| Back | FazBrowse Home | New Git URL |
Summary
When the remote end closes the connection (e.g., an ACP subprocess crashes on startup), _receive_loop exits cleanly on EOF without raising an exception. Since TaskSupervisor._on_done only calls on_error for exceptions, _on_receive_error is never invoked and _state.reject_all_outgoing() is never called. Any in-flight send_request() futures hang forever.
This adds a reject_all_outgoing() call after the receive loop breaks on EOF, so callers get a ConnectionError instead of an infinite hang.
Test plan
Fixes #85