mirror of
https://fastgit.cc/github.com/openclaw/openclaw
synced 2026-04-30 14:02:56 +08:00
test: share memory session search setup
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user