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:
+7
-1
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user