diff --git a/bridged/src/main/java/dev/ltms/bridged/mcp/BridgeMcp.java b/bridged/src/main/java/dev/ltms/bridged/mcp/BridgeMcp.java
index cdfe69b..56df99b 100644
--- a/bridged/src/main/java/dev/ltms/bridged/mcp/BridgeMcp.java
+++ b/bridged/src/main/java/dev/ltms/bridged/mcp/BridgeMcp.java
@@ -24,6 +24,8 @@ import jakarta.servlet.http.HttpServlet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
/**
* The MCP SERVER face (CB-105): a Streamable-HTTP MCP server whose tools are thin adapters
@@ -111,7 +113,7 @@ public final class BridgeMcp {
return spawn(sessions, str(a, "profile"), str(a, "cwd"), callerCwd,
callerTerminal(exchange), worktreeRequest(a));
})
- .toolCall(listTool(), (_, _) -> listWorkers(workers))
+ .toolCall(listTool(), (_, _) -> listWorkers(workers, sessions))
.toolCall(stopTool(), (_, req) -> stop(sessions, str(req.arguments(), "paneId")))
.toolCall(profilesTool(), (_, _) -> profiles(workers))
.build();
@@ -346,10 +348,15 @@ public final class BridgeMcp {
"default", workers.defaultProfile() == null ? "" : workers.defaultProfile())));
}
- /** {@code bridge_list}: every worker herdr tracks (session id, pane, status). */
- static McpSchema.CallToolResult listWorkers(WorkerService workers) {
+ /** {@code bridge_list}: bridge-owned roster merged with live herdr status by paneId. */
+ static McpSchema.CallToolResult listWorkers(WorkerService workers, SessionManager sessions) {
try {
- List