Repository navigation
v0.25.15
MCP: a stdio server that exits is noticed
McpClient::exited() -> Option<String> returns None while the server runs. Once it has gone, it says why: the exit status or the signal that killed it, plus the last of its stderr. A server that closed its output while a wrapper process lives on, or that can't be waited on, also reads as gone. A server stopped by close() reads as closed, not as a crash.
It never waits behind a call in flight, so a host can poll it, for example to tell its user or to restart the server. yoagent itself doesn't restart servers.
McpToolSource uses it: a server that exits is seen at the next turn, and its tools are withdrawn.
For custom transports there's a new provided McpTransport::exit_watch() method and mcp::ExitWatch::new(check). HTTP has no process to watch, and with_mcp_server_* get neither, because they keep no client.
Full details: CHANGELOG.md (#379).