diff --git a/Cargo.lock b/Cargo.lock index ef6490fd1..d8d74e512 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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=4c0063327394cd0f1e9fee2c24541b829b93a8f7#4c0063327394cd0f1e9fee2c24541b829b93a8f7" 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=4c0063327394cd0f1e9fee2c24541b829b93a8f7#4c0063327394cd0f1e9fee2c24541b829b93a8f7" 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=4c0063327394cd0f1e9fee2c24541b829b93a8f7#4c0063327394cd0f1e9fee2c24541b829b93a8f7" dependencies = [ "async-trait", "futures-util", diff --git a/Cargo.toml b/Cargo.toml index 50dc9d593..afb360523 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 = "4c0063327394cd0f1e9fee2c24541b829b93a8f7" } +pebble-coding-agent = { git = "https://github.com/lithoscomputer/pebble", rev = "4c0063327394cd0f1e9fee2c24541b829b93a8f7", features = ["mcp", "search-providers"] } +pebble-cli-core = { git = "https://github.com/lithoscomputer/pebble", rev = "4c0063327394cd0f1e9fee2c24541b829b93a8f7" } sentry = { version = "0.35", default-features = false, features = ["backtrace", "contexts", "ureq", "rustls"] } fork = "0.2" exec = "0.3" diff --git a/apps/fabro-web/app/components/stage-insights-sidebar.test.tsx b/apps/fabro-web/app/components/stage-insights-sidebar.test.tsx index 4aa368c14..fff871494 100644 --- a/apps/fabro-web/app/components/stage-insights-sidebar.test.tsx +++ b/apps/fabro-web/app/components/stage-insights-sidebar.test.tsx @@ -215,6 +215,26 @@ describe("StageInsightsSidebar", () => { expect(dom).toContain("Failed"); }); + test("renders a disconnected mcp server as disconnected, still counted as used", () => { + const dom = render( + makeStage({ + mcp_servers: [ + { + server_name: "github", + tool_count: 4, + status: { kind: "disconnected", error: "transport closed" }, + invoked: true, + }, + ], + }), + null, + ); + expect(dom).toContain("1/1"); + expect(dom).toContain("github"); + expect(dom).toContain("Disconnected"); + expect(dom).not.toContain("Failed"); + }); + test("shows skill activated/available ratio with source label", () => { const dom = render( makeStage({ diff --git a/apps/fabro-web/app/components/stage-insights-sidebar.tsx b/apps/fabro-web/app/components/stage-insights-sidebar.tsx index 3aa053c4b..65323135e 100644 --- a/apps/fabro-web/app/components/stage-insights-sidebar.tsx +++ b/apps/fabro-web/app/components/stage-insights-sidebar.tsx @@ -7,6 +7,7 @@ import { import { ArrowPathIcon, CheckCircleIcon, + ExclamationTriangleIcon, XCircleIcon, } from "@heroicons/react/24/solid"; import { @@ -554,27 +555,15 @@ function McpSection({ servers }: { servers: McpServerProjection[] }) {