mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 15:04:33 +00:00
refactor: rename to openclaw
This commit is contained in:
@@ -3,9 +3,9 @@ import os from "node:os";
|
||||
import path from "node:path";
|
||||
|
||||
import { resolveDefaultAgentId } from "../agents/agent-scope.js";
|
||||
import type { MoltbotConfig } from "../config/config.js";
|
||||
import type { OpenClawConfig } from "../config/config.js";
|
||||
import {
|
||||
resolveLegacyStateDir,
|
||||
resolveLegacyStateDirs,
|
||||
resolveNewStateDir,
|
||||
resolveOAuthDir,
|
||||
resolveStateDir,
|
||||
@@ -316,19 +316,25 @@ export async function autoMigrateLegacyStateDir(params: {
|
||||
autoMigrateStateDirChecked = true;
|
||||
|
||||
const env = params.env ?? process.env;
|
||||
if (env.MOLTBOT_STATE_DIR?.trim() || env.CLAWDBOT_STATE_DIR?.trim()) {
|
||||
if (env.OPENCLAW_STATE_DIR?.trim()) {
|
||||
return { migrated: false, skipped: true, changes: [], warnings: [] };
|
||||
}
|
||||
|
||||
const homedir = params.homedir ?? os.homedir;
|
||||
const legacyDir = resolveLegacyStateDir(homedir);
|
||||
const targetDir = resolveNewStateDir(homedir);
|
||||
const legacyDir = resolveLegacyStateDirs(homedir).find((dir) => {
|
||||
try {
|
||||
return fs.existsSync(dir);
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
const warnings: string[] = [];
|
||||
const changes: string[] = [];
|
||||
|
||||
let legacyStat: fs.Stats | null = null;
|
||||
try {
|
||||
legacyStat = fs.lstatSync(legacyDir);
|
||||
legacyStat = legacyDir ? fs.lstatSync(legacyDir) : null;
|
||||
} catch {
|
||||
legacyStat = null;
|
||||
}
|
||||
@@ -341,12 +347,12 @@ export async function autoMigrateLegacyStateDir(params: {
|
||||
}
|
||||
|
||||
if (legacyStat.isSymbolicLink()) {
|
||||
const legacyTarget = resolveSymlinkTarget(legacyDir);
|
||||
const legacyTarget = legacyDir ? resolveSymlinkTarget(legacyDir) : null;
|
||||
if (legacyTarget && path.resolve(legacyTarget) === path.resolve(targetDir)) {
|
||||
return { migrated: false, skipped: false, changes, warnings };
|
||||
}
|
||||
warnings.push(
|
||||
`Legacy state dir is a symlink (${legacyDir} → ${legacyTarget ?? "unknown"}); skipping auto-migration.`,
|
||||
`Legacy state dir is a symlink (${legacyDir ?? "unknown"} → ${legacyTarget ?? "unknown"}); skipping auto-migration.`,
|
||||
);
|
||||
return { migrated: false, skipped: false, changes, warnings };
|
||||
}
|
||||
@@ -359,18 +365,23 @@ export async function autoMigrateLegacyStateDir(params: {
|
||||
}
|
||||
|
||||
try {
|
||||
if (!legacyDir) throw new Error("Legacy state dir not found");
|
||||
fs.renameSync(legacyDir, targetDir);
|
||||
} catch (err) {
|
||||
warnings.push(`Failed to move legacy state dir (${legacyDir} → ${targetDir}): ${String(err)}`);
|
||||
warnings.push(
|
||||
`Failed to move legacy state dir (${legacyDir ?? "unknown"} → ${targetDir}): ${String(err)}`,
|
||||
);
|
||||
return { migrated: false, skipped: false, changes, warnings };
|
||||
}
|
||||
|
||||
try {
|
||||
if (!legacyDir) throw new Error("Legacy state dir not found");
|
||||
fs.symlinkSync(targetDir, legacyDir, "dir");
|
||||
changes.push(formatStateDirMigration(legacyDir, targetDir));
|
||||
} catch (err) {
|
||||
try {
|
||||
if (process.platform === "win32") {
|
||||
if (!legacyDir) throw new Error("Legacy state dir not found");
|
||||
fs.symlinkSync(targetDir, legacyDir, "junction");
|
||||
changes.push(formatStateDirMigration(legacyDir, targetDir));
|
||||
} else {
|
||||
@@ -378,6 +389,7 @@ export async function autoMigrateLegacyStateDir(params: {
|
||||
}
|
||||
} catch (fallbackErr) {
|
||||
try {
|
||||
if (!legacyDir) throw new Error("Legacy state dir not found");
|
||||
fs.renameSync(targetDir, legacyDir);
|
||||
warnings.push(
|
||||
`State dir migration rolled back (failed to link legacy path): ${String(fallbackErr)}`,
|
||||
@@ -385,12 +397,12 @@ export async function autoMigrateLegacyStateDir(params: {
|
||||
return { migrated: false, skipped: false, changes: [], warnings };
|
||||
} catch (rollbackErr) {
|
||||
warnings.push(
|
||||
`State dir moved but failed to link legacy path (${legacyDir} → ${targetDir}): ${String(fallbackErr)}`,
|
||||
`State dir moved but failed to link legacy path (${legacyDir ?? "unknown"} → ${targetDir}): ${String(fallbackErr)}`,
|
||||
);
|
||||
warnings.push(
|
||||
`Rollback failed; set MOLTBOT_STATE_DIR=${targetDir} to avoid split state: ${String(rollbackErr)}`,
|
||||
`Rollback failed; set OPENCLAW_STATE_DIR=${targetDir} to avoid split state: ${String(rollbackErr)}`,
|
||||
);
|
||||
changes.push(`State dir: ${legacyDir} → ${targetDir}`);
|
||||
changes.push(`State dir: ${legacyDir ?? "unknown"} → ${targetDir}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -399,7 +411,7 @@ export async function autoMigrateLegacyStateDir(params: {
|
||||
}
|
||||
|
||||
export async function detectLegacyStateMigrations(params: {
|
||||
cfg: MoltbotConfig;
|
||||
cfg: OpenClawConfig;
|
||||
env?: NodeJS.ProcessEnv;
|
||||
homedir?: () => string;
|
||||
}): Promise<LegacyStateDetection> {
|
||||
@@ -690,7 +702,7 @@ export async function runLegacyStateMigrations(params: {
|
||||
}
|
||||
|
||||
export async function autoMigrateLegacyAgentDir(params: {
|
||||
cfg: MoltbotConfig;
|
||||
cfg: OpenClawConfig;
|
||||
env?: NodeJS.ProcessEnv;
|
||||
homedir?: () => string;
|
||||
log?: MigrationLogger;
|
||||
@@ -705,7 +717,7 @@ export async function autoMigrateLegacyAgentDir(params: {
|
||||
}
|
||||
|
||||
export async function autoMigrateLegacyState(params: {
|
||||
cfg: MoltbotConfig;
|
||||
cfg: OpenClawConfig;
|
||||
env?: NodeJS.ProcessEnv;
|
||||
homedir?: () => string;
|
||||
log?: MigrationLogger;
|
||||
@@ -727,7 +739,7 @@ export async function autoMigrateLegacyState(params: {
|
||||
homedir: params.homedir,
|
||||
log: params.log,
|
||||
});
|
||||
if (env.CLAWDBOT_AGENT_DIR?.trim() || env.PI_CODING_AGENT_DIR?.trim()) {
|
||||
if (env.OPENCLAW_AGENT_DIR?.trim() || env.PI_CODING_AGENT_DIR?.trim()) {
|
||||
return {
|
||||
migrated: stateDirResult.migrated,
|
||||
skipped: true,
|
||||
|
||||
Reference in New Issue
Block a user