feat: adapta CdpHandleDialog (nueva firma + DialogLog) y reporta diálogos en disconnect

CdpHandleDialog ahora devuelve (cancel, *DialogLog, error). El pool guarda el
DialogLog por puerto y browser_disconnect reporta cuántos diálogos se
auto-respondieron y el último (tipo + mensaje). drop/closeAll usan CdpDisconnect
(alias legible de CdpClose(c,0)).
This commit is contained in:
Egutierrez
2026-06-06 15:33:02 +02:00
parent ae324562e8
commit 4307fb2e58
4 changed files with 44 additions and 12 deletions
+7 -1
View File
@@ -99,6 +99,12 @@ func disconnectTool() mcp.Tool {
func (d *deps) handleDisconnect(_ context.Context, _ mcp.CallToolRequest, a disconnectArgs) (*mcp.CallToolResult, error) {
port := portOr(a.Port)
// Leer el log de diálogos ANTES de drop (drop lo limpia).
count, lastType, lastMsg := d.pool.dialogSnapshot(port)
d.pool.drop(port)
return mcp.NewToolResultText(fmt.Sprintf("disconnected port=%d", port)), nil
msg := fmt.Sprintf("disconnected port=%d", port)
if count > 0 {
msg += fmt.Sprintf(" (dialogs auto-handled: %d, last %s: %q)", count, lastType, lastMsg)
}
return mcp.NewToolResultText(msg), nil
}