





















@@ -81,32 +81,26 @@ describe("emitResetCommandHooks", () => {
81818282it("passes the bound agent id to before_reset hooks for multi-agent session keys", async () => {
8383const ctx = await runBeforeResetContext("agent:navi:main");
84-expect(ctx).toMatchObject({
85-agentId: "navi",
86-sessionKey: "agent:navi:main",
87-sessionId: "prev-session",
88-workspaceDir: "/tmp/openclaw-workspace",
89-});
84+expect(ctx?.agentId).toBe("navi");
85+expect(ctx?.sessionKey).toBe("agent:navi:main");
86+expect(ctx?.sessionId).toBe("prev-session");
87+expect(ctx?.workspaceDir).toBe("/tmp/openclaw-workspace");
9088});
91899290it("falls back to main when the reset hook has no session key", async () => {
9391const ctx = await runBeforeResetContext(undefined);
94-expect(ctx).toMatchObject({
95-agentId: "main",
96-sessionKey: undefined,
97-sessionId: "prev-session",
98-workspaceDir: "/tmp/openclaw-workspace",
99-});
92+expect(ctx?.agentId).toBe("main");
93+expect(ctx?.sessionKey).toBeUndefined();
94+expect(ctx?.sessionId).toBe("prev-session");
95+expect(ctx?.workspaceDir).toBe("/tmp/openclaw-workspace");
10096});
1019710298it("keeps the main-agent path on the main agent workspace", async () => {
10399const ctx = await runBeforeResetContext("agent:main:main");
104-expect(ctx).toMatchObject({
105-agentId: "main",
106-sessionKey: "agent:main:main",
107-sessionId: "prev-session",
108-workspaceDir: "/tmp/openclaw-workspace",
109-});
100+expect(ctx?.agentId).toBe("main");
101+expect(ctx?.sessionKey).toBe("agent:main:main");
102+expect(ctx?.sessionId).toBe("prev-session");
103+expect(ctx?.workspaceDir).toBe("/tmp/openclaw-workspace");
110104});
111105112106it("recovers the archived transcript when the original reset transcript path is gone", async () => {
@@ -142,15 +136,13 @@ describe("emitResetCommandHooks", () => {
142136});
143137144138await vi.waitFor(() => expect(hookRunnerMocks.runBeforeReset).toHaveBeenCalledTimes(1));
145-expect(hookRunnerMocks.runBeforeReset).toHaveBeenCalledWith(
146-expect.objectContaining({
147-sessionFile: "/tmp/prev-session.jsonl.reset.2026-02-16T22-26-33.000Z",
148-messages: [{ role: "user", content: "Recovered from archive" }],
149-reason: "new",
150-}),
151-expect.objectContaining({
152-sessionId: "prev-session",
153-}),
154-);
139+const [event, ctx] = hookRunnerMocks.runBeforeReset.mock.calls[0] as unknown as [
140+Record<string, unknown>,
141+Record<string, unknown>,
142+];
143+expect(event.sessionFile).toBe("/tmp/prev-session.jsonl.reset.2026-02-16T22-26-33.000Z");
144+expect(event.messages).toEqual([{ role: "user", content: "Recovered from archive" }]);
145+expect(event.reason).toBe("new");
146+expect(ctx.sessionId).toBe("prev-session");
155147});
156148});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。