From 1aee59585bf8d752f5d29100a2b08df53f51c4f9 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Sat, 12 Sep 2026 12:29:36 -0600 Subject: [PATCH] Pin pebble to mcp-embedder-events and accept startup_ms on MCP outcomes Pebble's McpServerReady and McpServerFailed events now carry startup_ms. The workflow event sink destructured both variants by name, so it stops listing every field. The pin is temporary: it moves to pebble main once lithoscomputer/pebble merges the branch. Co-Authored-By: Claude Fable 5.1 --- Cargo.lock | 28 +++++++++---------- Cargo.toml | 6 ++-- .../fabro-workflow/src/handler/llm/pebble.rs | 4 +-- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ef6490fd1..afc83282a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2063,7 +2063,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -2190,7 +2190,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -4364,7 +4364,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core 0.61.2", ] [[package]] @@ -5310,7 +5310,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -5875,7 +5875,7 @@ dependencies = [ [[package]] name = "pebble-agent" version = "0.1.0" -source = "git+https://github.com/lithoscomputer/pebble?rev=222d17f17d7384545d3782f3b315210ad2cb0cfe#222d17f17d7384545d3782f3b315210ad2cb0cfe" +source = "git+https://github.com/lithoscomputer/pebble?rev=330495748fa8c76a98ca7af31c70d0850523759d#330495748fa8c76a98ca7af31c70d0850523759d" dependencies = [ "async-trait", "futures-util", @@ -5892,7 +5892,7 @@ dependencies = [ [[package]] name = "pebble-cli-core" version = "0.1.0" -source = "git+https://github.com/lithoscomputer/pebble?rev=222d17f17d7384545d3782f3b315210ad2cb0cfe#222d17f17d7384545d3782f3b315210ad2cb0cfe" +source = "git+https://github.com/lithoscomputer/pebble?rev=330495748fa8c76a98ca7af31c70d0850523759d#330495748fa8c76a98ca7af31c70d0850523759d" dependencies = [ "anyhow", "async-trait", @@ -5921,7 +5921,7 @@ dependencies = [ [[package]] name = "pebble-coding-agent" version = "0.1.0" -source = "git+https://github.com/lithoscomputer/pebble?rev=222d17f17d7384545d3782f3b315210ad2cb0cfe#222d17f17d7384545d3782f3b315210ad2cb0cfe" +source = "git+https://github.com/lithoscomputer/pebble?rev=330495748fa8c76a98ca7af31c70d0850523759d#330495748fa8c76a98ca7af31c70d0850523759d" dependencies = [ "async-trait", "futures-util", @@ -6291,7 +6291,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -6768,7 +6768,7 @@ dependencies = [ "errno 0.3.14", "libc", "linux-raw-sys", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -6827,7 +6827,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -7474,7 +7474,7 @@ version = "1.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" dependencies = [ - "errno 0.3.14", + "errno 0.2.8", "libc", ] @@ -8039,7 +8039,7 @@ dependencies = [ "getrandom 0.4.1", "once_cell", "rustix", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -8074,7 +8074,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874" dependencies = [ "rustix", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -9141,7 +9141,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 50dc9d593..7a5d09cc3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -123,9 +123,9 @@ sandbox-driver-testing = { git = "https://github.com/lithoscomputer/sandbox-driv # sandbox-driver revision, so move the two pins together. Pebble pins the # same lithos-llm rev as fabro, and its lockfile policy is that every shared # crate resolves to the version lithos-llm locks. -pebble-agent = { git = "https://github.com/lithoscomputer/pebble", rev = "222d17f17d7384545d3782f3b315210ad2cb0cfe" } -pebble-coding-agent = { git = "https://github.com/lithoscomputer/pebble", rev = "222d17f17d7384545d3782f3b315210ad2cb0cfe", features = ["mcp", "search-providers"] } -pebble-cli-core = { git = "https://github.com/lithoscomputer/pebble", rev = "222d17f17d7384545d3782f3b315210ad2cb0cfe" } +pebble-agent = { git = "https://github.com/lithoscomputer/pebble", rev = "330495748fa8c76a98ca7af31c70d0850523759d" } +pebble-coding-agent = { git = "https://github.com/lithoscomputer/pebble", rev = "330495748fa8c76a98ca7af31c70d0850523759d", features = ["mcp", "search-providers"] } +pebble-cli-core = { git = "https://github.com/lithoscomputer/pebble", rev = "330495748fa8c76a98ca7af31c70d0850523759d" } sentry = { version = "0.35", default-features = false, features = ["backtrace", "contexts", "ureq", "rustls"] } fork = "0.2" exec = "0.3" diff --git a/lib/components/fabro-workflow/src/handler/llm/pebble.rs b/lib/components/fabro-workflow/src/handler/llm/pebble.rs index 15a6d7007..a0dc178f1 100644 --- a/lib/components/fabro-workflow/src/handler/llm/pebble.rs +++ b/lib/components/fabro-workflow/src/handler/llm/pebble.rs @@ -198,7 +198,7 @@ impl EventSink for WorkflowEventSink { ); return Ok(()); } - CodingEvent::McpServerReady { server, tools } => { + CodingEvent::McpServerReady { server, tools, .. } => { self.emitter.emit_scoped( &Event::AgentMcpReady { node_id: self.node_id.clone(), @@ -217,7 +217,7 @@ impl EventSink for WorkflowEventSink { ); return Ok(()); } - CodingEvent::McpServerFailed { server, error } => { + CodingEvent::McpServerFailed { server, error, .. } => { self.emitter.emit_scoped( &Event::AgentMcpFailed { node_id: self.node_id.clone(),