Goose MCP timeouts are not recoverable
Describe the bug After a long running command in something like the developer toolkit, we get a timeout error and the session can't continue
To Reproduce Steps to reproduce the behavior:
- Ask goose to run a command that won't ever finish
- Wait for it to timeout
- Try something new
Expected behavior We should be able to recover after the timeout and resume.
Please provide following information:
- OS & Arch: OSX
- Interface: UI
- Version: v1.0.4
- Extensions enabled: Developer
- Provider & Model: sonnet 3.5
Additional context I believe the issue is that we do not actually interrupt the long running command in the MCP server after the timeout is hit in the client. I'm not sure if MCP has a way in the protocol to interrupt. So we might need to handle timeouts in the server instead, and sync them up with the client.
https://spec.modelcontextprotocol.io/specification/2024-11-05/basic/utilities/cancellation/
Either side can send a cancellation notification to indicate that a previously-issued request should be terminated. If client calls a tool thats long running, we can potentially keep track of it and cancel after some time
This is fixed on latest