From fbdfe0c99318620c235d2d0695d37584f25d6b70 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 13 Feb 2026 19:36:19 +0100 Subject: [PATCH] fix(gateway): complete two-phase exec approval wiring --- src/gateway/protocol/schema/exec-approvals.ts | 1 + src/gateway/server-methods-list.ts | 1 + src/gateway/server-methods.ts | 6 +++++- src/gateway/server-methods/exec-approval.test.ts | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/gateway/protocol/schema/exec-approvals.ts b/src/gateway/protocol/schema/exec-approvals.ts index a88cdffcdc3..05c2e037604 100644 --- a/src/gateway/protocol/schema/exec-approvals.ts +++ b/src/gateway/protocol/schema/exec-approvals.ts @@ -99,6 +99,7 @@ export const ExecApprovalRequestParamsSchema = Type.Object( resolvedPath: Type.Optional(Type.Union([Type.String(), Type.Null()])), sessionKey: Type.Optional(Type.Union([Type.String(), Type.Null()])), timeoutMs: Type.Optional(Type.Integer({ minimum: 1 })), + twoPhase: Type.Optional(Type.Boolean()), }, { additionalProperties: false }, ); diff --git a/src/gateway/server-methods-list.ts b/src/gateway/server-methods-list.ts index 4f997c2dfb7..457973d2e55 100644 --- a/src/gateway/server-methods-list.ts +++ b/src/gateway/server-methods-list.ts @@ -24,6 +24,7 @@ const BASE_METHODS = [ "exec.approvals.node.get", "exec.approvals.node.set", "exec.approval.request", + "exec.approval.waitDecision", "exec.approval.resolve", "wizard.start", "wizard.next", diff --git a/src/gateway/server-methods.ts b/src/gateway/server-methods.ts index f76a637fa63..a293f858abb 100644 --- a/src/gateway/server-methods.ts +++ b/src/gateway/server-methods.ts @@ -32,7 +32,11 @@ const WRITE_SCOPE = "operator.write"; const APPROVALS_SCOPE = "operator.approvals"; const PAIRING_SCOPE = "operator.pairing"; -const APPROVAL_METHODS = new Set(["exec.approval.request", "exec.approval.resolve"]); +const APPROVAL_METHODS = new Set([ + "exec.approval.request", + "exec.approval.waitDecision", + "exec.approval.resolve", +]); const NODE_ROLE_METHODS = new Set(["node.invoke.result", "node.event", "skills.bins"]); const PAIRING_METHODS = new Set([ "node.pair.request", diff --git a/src/gateway/server-methods/exec-approval.test.ts b/src/gateway/server-methods/exec-approval.test.ts index bfc4d24ab33..ac0373343b0 100644 --- a/src/gateway/server-methods/exec-approval.test.ts +++ b/src/gateway/server-methods/exec-approval.test.ts @@ -67,6 +67,7 @@ describe("exec approval handlers", () => { cwd: "/tmp", host: "node", timeoutMs: 2000, + twoPhase: true, }, respond, context: context as unknown as Parameters<