fix: prefer target entry for reset hooks

This commit is contained in:
Tak Hoffman
2026-04-10 20:50:52 -05:00
parent f5d0b54563
commit 9403008c6c
2 changed files with 35 additions and 1 deletions

View File

@@ -255,4 +255,36 @@ describe("handleCommands reset hooks", () => {
}),
);
});
it("prefers the target session entry when emitting reset hooks", async () => {
const params = buildResetParams(
"/reset",
{
commands: { text: true },
channels: { whatsapp: { allowFrom: ["*"] } },
} as OpenClawConfig,
);
params.sessionEntry = {
sessionId: "wrapper-session",
updatedAt: Date.now(),
} as HandleCommandsParams["sessionEntry"];
params.sessionStore = {
"agent:main:main": {
sessionId: "target-session",
updatedAt: Date.now(),
},
};
await maybeHandleResetCommand(params);
expect(triggerInternalHookMock).toHaveBeenCalledWith(
expect.objectContaining({
context: expect.objectContaining({
sessionEntry: expect.objectContaining({
sessionId: "target-session",
}),
}),
}),
);
});
});

View File

@@ -66,13 +66,15 @@ export async function maybeHandleResetCommand(
};
}
const targetSessionEntry = params.sessionStore?.[params.sessionKey] ?? params.sessionEntry;
await emitResetCommandHooks({
action: commandAction,
ctx: params.ctx,
cfg: params.cfg,
command: params.command,
sessionKey: params.sessionKey,
sessionEntry: params.sessionEntry,
sessionEntry: targetSessionEntry,
previousSessionEntry: params.previousSessionEntry,
workspaceDir: params.workspaceDir,
});