test: share memory session search setup

This commit is contained in:
Peter Steinberger
2026-04-20 21:14:46 +01:00
parent d8b3de39b0
commit 512dc4f2b1

View File

@@ -284,6 +284,26 @@ describe("memory index", () => {
}
}
async function getFtsSessionManager(params: {
stateDirName: string;
storeFileName: string;
}): Promise<MemoryIndexManager | null> {
forceNoProvider = true;
vi.stubEnv("OPENCLAW_STATE_DIR", path.join(workspaceDir, params.stateDirName));
const cfg = createCfg({
storePath: path.join(workspaceDir, params.storeFileName),
sources: ["memory", "sessions"],
sessionMemory: true,
minScore: 0,
hybrid: { enabled: true, vectorWeight: 0.7, textWeight: 0.3 },
});
const result = await getMemorySearchManager({ cfg, agentId: "main" });
const manager = requireManager(result);
managersForCleanup.add(manager);
resetManagerForTest(manager);
return manager.status().fts?.available ? manager : null;
}
it.skip("indexes memory files and searches", async () => {
const cfg = createCfg({
storePath: indexMainPath,
@@ -399,22 +419,12 @@ describe("memory index", () => {
});
it("prefers exact session transcript hits in FTS-only mode", async () => {
forceNoProvider = true;
const stateDir = path.join(workspaceDir, ".state-session-ranking");
vi.stubEnv("OPENCLAW_STATE_DIR", stateDir);
try {
const cfg = createCfg({
storePath: path.join(workspaceDir, "index-fts-session-ranking.sqlite"),
sources: ["memory", "sessions"],
sessionMemory: true,
minScore: 0,
hybrid: { enabled: true, vectorWeight: 0.7, textWeight: 0.3 },
const manager = await getFtsSessionManager({
stateDirName: ".state-session-ranking",
storeFileName: "index-fts-session-ranking.sqlite",
});
const result = await getMemorySearchManager({ cfg, agentId: "main" });
const manager = requireManager(result);
managersForCleanup.add(manager);
resetManagerForTest(manager);
if (!manager.status().fts?.available) {
if (!manager) {
return;
}
@@ -469,22 +479,12 @@ describe("memory index", () => {
});
it("bootstraps an empty index on first search so session transcript hits are available", async () => {
forceNoProvider = true;
const stateDir = path.join(workspaceDir, ".state-session-bootstrap");
vi.stubEnv("OPENCLAW_STATE_DIR", stateDir);
try {
const cfg = createCfg({
storePath: path.join(workspaceDir, "index-fts-session-bootstrap.sqlite"),
sources: ["memory", "sessions"],
sessionMemory: true,
minScore: 0,
hybrid: { enabled: true, vectorWeight: 0.7, textWeight: 0.3 },
const manager = await getFtsSessionManager({
stateDirName: ".state-session-bootstrap",
storeFileName: "index-fts-session-bootstrap.sqlite",
});
const result = await getMemorySearchManager({ cfg, agentId: "main" });
const manager = requireManager(result);
managersForCleanup.add(manager);
resetManagerForTest(manager);
if (!manager.status().fts?.available) {
if (!manager) {
return;
}