diff --git a/Sources/TerminalController.swift b/Sources/TerminalController.swift index f1d6c377..66d1c723 100644 --- a/Sources/TerminalController.swift +++ b/Sources/TerminalController.swift @@ -5346,7 +5346,16 @@ class TerminalController { result = .err(code: "not_found", message: "Workspace not found", data: nil) return } - let surfaceId = v2UUID(params, "surface_id") ?? ws.focusedPanelId + let surfaceId: UUID? + if params["surface_id"] != nil { + surfaceId = v2UUID(params, "surface_id") + guard surfaceId != nil else { + result = .err(code: "not_found", message: "Surface not found for the given surface_id", data: nil) + return + } + } else { + surfaceId = ws.focusedPanelId + } guard let surfaceId else { result = .err(code: "not_found", message: "No focused surface", data: nil) return @@ -5397,7 +5406,16 @@ class TerminalController { result = .err(code: "not_found", message: "Workspace not found", data: nil) return } - let surfaceId = v2UUID(params, "surface_id") ?? ws.focusedPanelId + let surfaceId: UUID? + if params["surface_id"] != nil { + surfaceId = v2UUID(params, "surface_id") + guard surfaceId != nil else { + result = .err(code: "not_found", message: "Surface not found for the given surface_id", data: nil) + return + } + } else { + surfaceId = ws.focusedPanelId + } guard let surfaceId else { result = .err(code: "not_found", message: "No focused surface", data: nil) return @@ -5431,7 +5449,16 @@ class TerminalController { result = .err(code: "not_found", message: "Workspace not found", data: nil) return } - let surfaceId = v2UUID(params, "surface_id") ?? ws.focusedPanelId + let surfaceId: UUID? + if params["surface_id"] != nil { + surfaceId = v2UUID(params, "surface_id") + guard surfaceId != nil else { + result = .err(code: "not_found", message: "Surface not found for the given surface_id", data: nil) + return + } + } else { + surfaceId = ws.focusedPanelId + } guard let surfaceId else { result = .err(code: "not_found", message: "No focused surface", data: nil) return @@ -5482,7 +5509,16 @@ class TerminalController { return } - let surfaceId = v2UUID(params, "surface_id") ?? ws.focusedPanelId + let surfaceId: UUID? + if params["surface_id"] != nil { + surfaceId = v2UUID(params, "surface_id") + guard surfaceId != nil else { + result = .err(code: "not_found", message: "Surface not found for the given surface_id", data: nil) + return + } + } else { + surfaceId = ws.focusedPanelId + } guard let surfaceId else { result = .err(code: "not_found", message: "No focused surface", data: nil) return