diff --git a/src/config/sessions/paths.ts b/src/config/sessions/paths.ts index 50757121fd3..20cb157d046 100644 --- a/src/config/sessions/paths.ts +++ b/src/config/sessions/paths.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import os from "node:os"; import path from "node:path"; -import { expandHomePrefix, resolveRequiredHomeDir } from "../../infra/home-dir.js"; +import { resolveRequiredHomeDir } from "../../infra/home-dir.js"; import { DEFAULT_AGENT_ID, normalizeAgentId } from "../../routing/session-key.js"; import { normalizeLowercaseStringOrEmpty } from "../../shared/string-coerce.js"; import { resolveStateDir } from "../paths.js"; @@ -283,38 +283,3 @@ export function resolveSessionFilePath( } return resolveSessionTranscriptPathInDir(sessionId, sessionsDir); } - -export function resolveLegacySessionStorePath( - store?: string, - opts?: { agentId?: string; env?: NodeJS.ProcessEnv }, -) { - const agentId = normalizeAgentId(opts?.agentId ?? DEFAULT_AGENT_ID); - const env = opts?.env ?? process.env; - const homedir = () => resolveRequiredHomeDir(env, os.homedir); - if (!store) { - return path.join(resolveAgentSessionsDir(agentId, env, homedir), "sessions.json"); - } - if (store.includes("{agentId}")) { - const expanded = store.replaceAll("{agentId}", agentId); - if (expanded.startsWith("~")) { - return path.resolve( - expandHomePrefix(expanded, { - home: resolveRequiredHomeDir(env, homedir), - env, - homedir, - }), - ); - } - return path.resolve(expanded); - } - if (store.startsWith("~")) { - return path.resolve( - expandHomePrefix(store, { - home: resolveRequiredHomeDir(env, homedir), - env, - homedir, - }), - ); - } - return path.resolve(store); -} diff --git a/src/config/sessions/store-backend.sqlite.test.ts b/src/config/sessions/store-backend.sqlite.test.ts index 724cc90b931..4ee8843fdf9 100644 --- a/src/config/sessions/store-backend.sqlite.test.ts +++ b/src/config/sessions/store-backend.sqlite.test.ts @@ -5,7 +5,7 @@ import { afterEach, describe, expect, it } from "vitest"; import { writeTextAtomic } from "../../infra/json-files.js"; import { closeOpenClawAgentDatabasesForTest } from "../../state/openclaw-agent-db.js"; import { closeOpenClawStateDatabaseForTest } from "../../state/openclaw-state-db.js"; -import { resolveLegacySessionStorePath } from "./paths.js"; +import { resolveSessionTranscriptsDirForAgent } from "./paths.js"; import { importJsonSessionStoreToSqlite, loadSqliteSessionEntries, @@ -26,6 +26,16 @@ function createTempDir(): string { return fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-sqlite-session-store-")); } +function resolveLegacySessionJsonFixturePath(params: { + agentId: string; + env: NodeJS.ProcessEnv; +}): string { + return path.join( + resolveSessionTranscriptsDirForAgent(params.agentId, params.env), + "sessions.json", + ); +} + afterEach(() => { closeOpenClawAgentDatabasesForTest(); closeOpenClawStateDatabaseForTest(); @@ -113,7 +123,7 @@ describe("SQLite session store backend", () => { it("routes the production session row API through SQLite", () => { const stateDir = createTempDir(); const env = { OPENCLAW_STATE_DIR: stateDir }; - const storePath = resolveLegacySessionStorePath(undefined, { + const storePath = resolveLegacySessionJsonFixturePath({ agentId: "ops", env, }); @@ -226,7 +236,7 @@ describe("SQLite session store backend", () => { it("uses SQLite by default for canonical per-agent session rows", () => { const stateDir = createTempDir(); const env = { OPENCLAW_STATE_DIR: stateDir }; - const storePath = resolveLegacySessionStorePath(undefined, { + const storePath = resolveLegacySessionJsonFixturePath({ agentId: "ops", env, }); @@ -247,7 +257,7 @@ describe("SQLite session store backend", () => { it("does not import a legacy canonical sessions.json on first SQLite open", async () => { const stateDir = createTempDir(); process.env.OPENCLAW_STATE_DIR = stateDir; - const storePath = resolveLegacySessionStorePath(undefined, { + const storePath = resolveLegacySessionJsonFixturePath({ agentId: "ops", env: process.env, });