Skip to content

v0.25.15

Choose a tag to compare

@yuanhao yuanhao released this 26 Oct 06:41
· 41 commits to main since this release
a03fc35

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).