mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-22 13:38:07 +00:00
fix: repair origin main CI failures
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
// Assertions for upgrade-survivor E2E scenarios.
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { DatabaseSync } from "node:sqlite";
|
||||
import { readPluginInstallIndex } from "../plugin-index-sqlite.mjs";
|
||||
|
||||
const command = process.argv[2];
|
||||
@@ -481,8 +482,7 @@ function assertSessionMetadataMigrated(stateDir) {
|
||||
);
|
||||
}
|
||||
|
||||
assert(fs.existsSync(targetStorePath), `agent session store missing: ${targetStorePath}`);
|
||||
const store = readJson(targetStorePath);
|
||||
const store = readMigratedSessionStore(stateDir, targetStorePath);
|
||||
const main = store["agent:main:main"];
|
||||
const direct = store["agent:main:+15551234567"];
|
||||
const group = store["agent:main:slack:channel:cupgrade"];
|
||||
@@ -511,6 +511,33 @@ function assertSessionMetadataMigrated(stateDir) {
|
||||
);
|
||||
}
|
||||
|
||||
function readMigratedSessionStore(stateDir, targetStorePath) {
|
||||
if (fs.existsSync(targetStorePath)) {
|
||||
return readJson(targetStorePath);
|
||||
}
|
||||
|
||||
const dbPath = path.join(stateDir, "agents", "main", "agent", "openclaw-agent.sqlite");
|
||||
assert(fs.existsSync(dbPath), `agent session store missing: ${targetStorePath} or ${dbPath}`);
|
||||
|
||||
let db;
|
||||
try {
|
||||
db = new DatabaseSync(dbPath, { readOnly: true });
|
||||
const rows = db
|
||||
.prepare("SELECT key, value_json FROM cache_entries WHERE scope = ?")
|
||||
.all("session_entries");
|
||||
const store = {};
|
||||
for (const row of rows) {
|
||||
if (typeof row?.key !== "string" || typeof row?.value_json !== "string") {
|
||||
continue;
|
||||
}
|
||||
store[row.key] = JSON.parse(row.value_json);
|
||||
}
|
||||
return store;
|
||||
} finally {
|
||||
db?.close();
|
||||
}
|
||||
}
|
||||
|
||||
function readInstalledPluginIndex() {
|
||||
const stateDir = requireEnv("OPENCLAW_STATE_DIR");
|
||||
const index = readPluginInstallIndex({ stateDir });
|
||||
|
||||
@@ -1995,11 +1995,11 @@ function resolveStaleLegacySessionFile(params: {
|
||||
return undefined;
|
||||
}
|
||||
const legacyBackupHasTranscript = safeReadDir(path.dirname(params.legacyDir)).some(
|
||||
(entry) =>
|
||||
entry.isDirectory() &&
|
||||
entry.name.startsWith(`${path.basename(params.legacyDir)}.legacy-`) &&
|
||||
(dirent) =>
|
||||
dirent.isDirectory() &&
|
||||
dirent.name.startsWith(`${path.basename(params.legacyDir)}.legacy-`) &&
|
||||
fileExists(
|
||||
path.join(path.dirname(params.legacyDir), entry.name, path.basename(legacySessionFile)),
|
||||
path.join(path.dirname(params.legacyDir), dirent.name, path.basename(legacySessionFile)),
|
||||
),
|
||||
);
|
||||
if (legacyBackupHasTranscript) {
|
||||
@@ -2007,10 +2007,10 @@ function resolveStaleLegacySessionFile(params: {
|
||||
}
|
||||
const parsed = path.parse(path.basename(legacySessionFile));
|
||||
const hasCollisionRename = safeReadDir(params.targetDir).some(
|
||||
(entry) =>
|
||||
entry.isFile() &&
|
||||
entry.name.startsWith(`${parsed.name}.legacy-`) &&
|
||||
entry.name.endsWith(parsed.ext),
|
||||
(dirent) =>
|
||||
dirent.isFile() &&
|
||||
dirent.name.startsWith(`${parsed.name}.legacy-`) &&
|
||||
dirent.name.endsWith(parsed.ext),
|
||||
);
|
||||
if (hasCollisionRename) {
|
||||
return undefined;
|
||||
|
||||
Reference in New Issue
Block a user