0.20.1

Beta

Closing an MCP session no longer crashes the connection handling it.

Session teardown

When an MCP session ended, the code that tears it down called itself in a loop until it ran out of stack. In a day and a half of production logs it happened 1,884 times across 628 separate sessions.

Sessions now close cleanly. Everything that a closing session should release — pending requests, in-flight work, the connection itself — is released properly, which was the part the crash was skipping.