mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-15 23:32:46 +00:00
Pebble reports an MCP server whose connection closed mid-session once, as McpServerDisconnected, and carries startup_ms on McpServerReady and McpServerFailed. The workflow event sink mirrors the disconnect onto a new agent.mcp.disconnected run event shaped like agent.mcp.failed, and passes startup_ms through on agent.mcp.ready and agent.mcp.failed. The raw pebble event is not stored for these, so the timing would otherwise be dropped at the boundary. The stage projection's McpServerStatus gains a `disconnected` kind next to `ready` and `failed`. The fold keeps the server's tool count and sticky invoked flag and only moves the status. The OpenAPI McpServerStatus oneOf gains McpServerStatusDisconnected, and the fabro-api round-trip test covers its JSON shape. A new session_projection_parity test folds the same MCP events through pebble's SessionProjection and fabro's stage projection and compares them, including pebble's `disconnected`. ToolErrorKind::Timeout needs no fabro change: the kind is stored as pebble serializes it and never matched. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| client-sdks.mdx | ||
| fabro-api.yaml | ||
| overview.mdx | ||