






















@@ -22,6 +22,14 @@ function createGatewayLogMock() {
2222return { info: vi.fn(), warn: vi.fn() };
2323}
242425+function createQmdManagerMock() {
26+return {
27+search: vi.fn(),
28+sync: vi.fn(async () => undefined),
29+close: vi.fn(async () => undefined),
30+};
31+}
32+2533describe("startGatewayMemoryBackend", () => {
2634beforeEach(() => {
2735getMemorySearchManagerMock.mockClear();
@@ -41,7 +49,7 @@ describe("startGatewayMemoryBackend", () => {
4149expect(log.warn).not.toHaveBeenCalled();
4250});
435144-it("initializes qmd backend for the default and explicitly configured agents", async () => {
52+it("runs qmd boot sync for the default and explicitly configured agents", async () => {
4553const cfg = createQmdConfig({
4654list: [
4755{ id: "ops", default: true },
@@ -50,15 +58,23 @@ describe("startGatewayMemoryBackend", () => {
5058],
5159});
5260const log = createGatewayLogMock();
53-getMemorySearchManagerMock.mockResolvedValue({ manager: { search: vi.fn() } });
61+getMemorySearchManagerMock.mockResolvedValue({ manager: createQmdManagerMock() });
54625563await startGatewayMemoryBackend({ cfg, log });
56645765expect(getMemorySearchManagerMock).toHaveBeenCalledTimes(2);
58-expect(getMemorySearchManagerMock).toHaveBeenNthCalledWith(1, { cfg, agentId: "ops" });
59-expect(getMemorySearchManagerMock).toHaveBeenNthCalledWith(2, { cfg, agentId: "main" });
66+expect(getMemorySearchManagerMock).toHaveBeenNthCalledWith(1, {
67+ cfg,
68+agentId: "ops",
69+purpose: "cli",
70+});
71+expect(getMemorySearchManagerMock).toHaveBeenNthCalledWith(2, {
72+ cfg,
73+agentId: "main",
74+purpose: "cli",
75+});
6076expect(log.info).toHaveBeenCalledWith(
61-'qmd memory startup initialization armed for 2 agents: "ops", "main"',
77+'qmd memory startup boot sync completed for 2 agents: "ops", "main"',
6278);
6379expect(log.info).toHaveBeenCalledWith(
6480'qmd memory startup initialization deferred for 1 agent: "lazy"',
@@ -72,15 +88,23 @@ describe("startGatewayMemoryBackend", () => {
7288list: [{ id: "ops", default: true }, { id: "main" }],
7389});
7490const log = createGatewayLogMock();
75-getMemorySearchManagerMock.mockResolvedValue({ manager: { search: vi.fn() } });
91+getMemorySearchManagerMock.mockResolvedValue({ manager: createQmdManagerMock() });
76927793await startGatewayMemoryBackend({ cfg, log });
78947995expect(getMemorySearchManagerMock).toHaveBeenCalledTimes(2);
80-expect(getMemorySearchManagerMock).toHaveBeenNthCalledWith(1, { cfg, agentId: "ops" });
81-expect(getMemorySearchManagerMock).toHaveBeenNthCalledWith(2, { cfg, agentId: "main" });
96+expect(getMemorySearchManagerMock).toHaveBeenNthCalledWith(1, {
97+ cfg,
98+agentId: "ops",
99+purpose: "cli",
100+});
101+expect(getMemorySearchManagerMock).toHaveBeenNthCalledWith(2, {
102+ cfg,
103+agentId: "main",
104+purpose: "cli",
105+});
82106expect(log.info).toHaveBeenCalledWith(
83-'qmd memory startup initialization armed for 2 agents: "ops", "main"',
107+'qmd memory startup boot sync completed for 2 agents: "ops", "main"',
84108);
85109expect(log.info).not.toHaveBeenCalledWith(expect.stringContaining("deferred"));
86110});
@@ -95,15 +119,15 @@ describe("startGatewayMemoryBackend", () => {
95119const log = createGatewayLogMock();
96120getMemorySearchManagerMock
97121.mockResolvedValueOnce({ manager: null, error: "qmd missing" })
98-.mockResolvedValueOnce({ manager: { search: vi.fn() } });
122+.mockResolvedValueOnce({ manager: createQmdManagerMock() });
99123100124await startGatewayMemoryBackend({ cfg, log });
101125102126expect(log.warn).toHaveBeenCalledWith(
103127'qmd memory startup initialization failed for agent "main": qmd missing',
104128);
105129expect(log.info).toHaveBeenCalledWith(
106-'qmd memory startup initialization armed for 1 agent: "ops"',
130+'qmd memory startup boot sync completed for 1 agent: "ops"',
107131);
108132});
109133@@ -116,14 +140,18 @@ describe("startGatewayMemoryBackend", () => {
116140],
117141});
118142const log = createGatewayLogMock();
119-getMemorySearchManagerMock.mockResolvedValue({ manager: { search: vi.fn() } });
143+getMemorySearchManagerMock.mockResolvedValue({ manager: createQmdManagerMock() });
120144121145await startGatewayMemoryBackend({ cfg, log });
122146123147expect(getMemorySearchManagerMock).toHaveBeenCalledTimes(1);
124-expect(getMemorySearchManagerMock).toHaveBeenCalledWith({ cfg, agentId: "main" });
148+expect(getMemorySearchManagerMock).toHaveBeenCalledWith({
149+ cfg,
150+agentId: "main",
151+purpose: "cli",
152+});
125153expect(log.info).toHaveBeenCalledWith(
126-'qmd memory startup initialization armed for 1 agent: "main"',
154+'qmd memory startup boot sync completed for 1 agent: "main"',
127155);
128156expect(log.warn).not.toHaveBeenCalled();
129157});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。