fix: harden memory cli manager cleanup

Co-authored-by: Nicholas Spisak <jsnsdirect@gmail.com>
This commit is contained in:
Peter Steinberger
2026-01-17 23:37:07 +00:00
parent 16e5fa1db9
commit 794bab45ff
2 changed files with 107 additions and 69 deletions

View File

@@ -197,6 +197,34 @@ describe("memory cli", () => {
expect(log).toHaveBeenCalledWith("Memory index updated.");
});
it("logs close failures without failing the command", async () => {
const { registerMemoryCli } = await import("./memory-cli.js");
const { defaultRuntime } = await import("../runtime.js");
const close = vi.fn(async () => {
throw new Error("close boom");
});
const sync = vi.fn(async () => {});
getMemorySearchManager.mockResolvedValueOnce({
manager: {
sync,
close,
},
});
const error = vi.spyOn(defaultRuntime, "error").mockImplementation(() => {});
const program = new Command();
program.name("test");
registerMemoryCli(program);
await program.parseAsync(["memory", "index"], { from: "user" });
expect(sync).toHaveBeenCalledWith({ reason: "cli", force: false });
expect(close).toHaveBeenCalled();
expect(error).toHaveBeenCalledWith(
expect.stringContaining("Memory manager close failed: close boom"),
);
expect(process.exitCode).toBeUndefined();
});
it("closes manager after search error", async () => {
const { registerMemoryCli } = await import("./memory-cli.js");
const { defaultRuntime } = await import("../runtime.js");