diff --git a/src/infra/approval-request-account-binding.ts b/src/infra/approval-request-account-binding.ts index 1cc113fe919..fa3793a225a 100644 --- a/src/infra/approval-request-account-binding.ts +++ b/src/infra/approval-request-account-binding.ts @@ -1,5 +1,6 @@ import { resolveStorePath } from "../config/sessions/paths.js"; import { loadSessionStore } from "../config/sessions/store-load.js"; +import { resolveMaintenanceConfigFromInput } from "../config/sessions/store-maintenance.js"; import type { SessionEntry } from "../config/sessions/types.js"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import { normalizeOptionalAccountId } from "../routing/account-id.js"; @@ -36,7 +37,9 @@ export function resolvePersistedApprovalRequestSessionEntry(params: { const parsed = parseAgentSessionKey(sessionKey); const agentId = parsed?.agentId ?? params.request.request.agentId ?? "main"; const storePath = resolveStorePath(params.cfg.session?.store, { agentId }); - const store = loadSessionStore(storePath); + const store = loadSessionStore(storePath, { + maintenanceConfig: resolveMaintenanceConfigFromInput(params.cfg.session?.maintenance), + }); const entry = store[sessionKey]; if (!entry) { return null; diff --git a/src/plugin-sdk/approval-native-helpers.test.ts b/src/plugin-sdk/approval-native-helpers.test.ts index 5cc1513b485..93346c4c931 100644 --- a/src/plugin-sdk/approval-native-helpers.test.ts +++ b/src/plugin-sdk/approval-native-helpers.test.ts @@ -7,6 +7,12 @@ import { } from "./approval-native-helpers.js"; import type { OpenClawConfig } from "./config-runtime.js"; +const EMPTY_SESSION_CFG = { + session: { + store: ".artifacts/test/approval-native-helpers-empty-sessions.json", + }, +} satisfies OpenClawConfig; + describe("createChannelNativeOriginTargetResolver", () => { it("reuses shared turn-source routing and respects shouldHandle gating", () => { const resolveOriginTarget = createChannelNativeOriginTargetResolver({ @@ -24,7 +30,7 @@ describe("createChannelNativeOriginTargetResolver", () => { expect( resolveOriginTarget({ - cfg: {} as OpenClawConfig, + cfg: EMPTY_SESSION_CFG, accountId: "ops", request: { id: "plugin:req-1", @@ -47,7 +53,7 @@ describe("createChannelNativeOriginTargetResolver", () => { expect( resolveOriginTarget({ - cfg: {} as OpenClawConfig, + cfg: EMPTY_SESSION_CFG, accountId: "other", request: { id: "plugin:req-1", @@ -90,7 +96,7 @@ describe("createChannelNativeOriginTargetResolver", () => { expect( resolveOriginTarget({ - cfg: {} as OpenClawConfig, + cfg: EMPTY_SESSION_CFG, request: { id: "req-1", request: { @@ -120,7 +126,7 @@ describe("createChannelNativeOriginTargetResolver", () => { expect( resolveOriginTarget({ - cfg: {} as OpenClawConfig, + cfg: EMPTY_SESSION_CFG, request: { id: "req-1", request: { @@ -149,7 +155,7 @@ describe("createChannelNativeOriginTargetResolver", () => { expect( resolveOriginTarget({ - cfg: {} as OpenClawConfig, + cfg: EMPTY_SESSION_CFG, request: { id: "req-1", request: { @@ -178,7 +184,7 @@ describe("createChannelNativeOriginTargetResolver", () => { expect( resolveOriginTarget({ - cfg: {} as OpenClawConfig, + cfg: EMPTY_SESSION_CFG, request: { id: "req-1", request: { @@ -206,7 +212,7 @@ describe("createChannelNativeOriginTargetResolver", () => { expect( resolveOriginTarget({ - cfg: {} as OpenClawConfig, + cfg: EMPTY_SESSION_CFG, request: { id: "req-1", request: {