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> |
||
|---|---|---|
| .. | ||
| assets/brand | ||
| demo | ||
| licenses | ||
| product | ||
| cargo-target-apfs-churn-plan.md | ||
| cli-workflow-coupling-audit.md | ||
| error-handling-strategy.md | ||
| event-schema-competitive-analysis.md | ||
| events-strategy.md | ||
| events.md | ||
| fabro-event-schema-v2-concrete-shape.md | ||
| fabro-event-schema-v2-proposal.md | ||
| llm-client-resolution.md | ||
| logging-strategy.md | ||
| mcp-server-qa-test-plan.md | ||
| migrations-strategy.md | ||
| panic-policy.md | ||
| parallel-strategy.md | ||
| plan-events-as-source-of-truth-follow-ups.md | ||
| plan-events-as-source-of-truth.md | ||
| react-effects-policy.md | ||
| run-directory-keys.md | ||
| server-secrets-strategy.md | ||
| slow-test-opportunities-2026-04-07.md | ||
| testing-strategy.md | ||
| updating-web-screenshots.md | ||