fix: migrate legacy state dirs

This commit is contained in:
Peter Steinberger 2026-01-30 04:26:00 +01:00
parent 67918dc41b
commit 9886fd1a5a
4 changed files with 14 additions and 12 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "openclaw", "name": "openclaw",
"version": "2026.1.29-beta.3", "version": "2026.1.29-beta.4",
"description": "WhatsApp gateway CLI (Baileys web) with Pi RPC agent", "description": "WhatsApp gateway CLI (Baileys web) with Pi RPC agent",
"type": "module", "type": "module",
"main": "dist/index.js", "main": "dist/index.js",

View File

@ -64,7 +64,7 @@ const TAGLINES: string[] = [
"Shell yeah—I'm here to pinch the toil and leave you the glory.", "Shell yeah—I'm here to pinch the toil and leave you the glory.",
"If it's repetitive, I'll automate it; if it's hard, I'll bring jokes and a rollback plan.", "If it's repetitive, I'll automate it; if it's hard, I'll bring jokes and a rollback plan.",
"Because texting yourself reminders is so 2024.", "Because texting yourself reminders is so 2024.",
"WhatsApp, but make it ✨engineering✨.", "Your inbox, your infra, your rules.",
'Turning "I\'ll reply later" into "my bot replied instantly".', 'Turning "I\'ll reply later" into "my bot replied instantly".',
"The only crab in your contacts you actually want to hear from. 🦞", "The only crab in your contacts you actually want to hear from. 🦞",
"Chat automation for people who peaked at IRC.", "Chat automation for people who peaked at IRC.",
@ -72,14 +72,16 @@ const TAGLINES: string[] = [
"IPC, but it's your phone.", "IPC, but it's your phone.",
"The UNIX philosophy meets your DMs.", "The UNIX philosophy meets your DMs.",
"curl for conversations.", "curl for conversations.",
"WhatsApp Business, but without the business.", "Less middlemen, more messages.",
"Meta wishes they shipped this fast.", "Ship fast, log faster.",
"End-to-end encrypted, Zuck-to-Zuck excluded.", "End-to-end encrypted, drama-to-drama excluded.",
"The only bot Mark can't train on your DMs.", "The only bot that stays out of your training set.",
'WhatsApp automation without the "please accept our new privacy policy".', 'WhatsApp automation without the "please accept our new privacy policy".',
"Chat APIs that don't require a Senate hearing.", "Chat APIs that don't require a Senate hearing.",
"Because Threads wasn't the answer either.", "Meta wishes they shipped this fast.",
"Your messages, your servers, Meta's tears.", "Because the right answer is usually a script.",
"Your messages, your servers, your control.",
"OpenAI-compatible, not OpenAI-dependent.",
"iMessage green bubble energy, but for everyone.", "iMessage green bubble energy, but for everyone.",
"Siri's competent cousin.", "Siri's competent cousin.",
"Works on Android. Crazy concept, we know.", "Works on Android. Crazy concept, we know.",

View File

@ -64,13 +64,13 @@ export function randomToken(): string {
export function printWizardHeader(runtime: RuntimeEnv) { export function printWizardHeader(runtime: RuntimeEnv) {
const header = [ const header = [
"▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄", "▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓",
"█████░█████░█████░█░░░█░█████░█░░░░░█████░█░░░█", "█████░█████░█████░█░░░█░█████░█░░░░░█████░█░░░█",
"█░░░█░█░░░█░█░░░░░██░░█░█░░░░░█░░░░░█░░░█░█░░░█", "█░░░█░█░░░█░█░░░░░██░░█░█░░░░░█░░░░░█░░░█░█░░░█",
"█░░░█░█████░████░░█░█░█░█░░░░░█░░░░░█████░█░█░█", "█░░░█░█████░████░░█░█░█░█░░░░░█░░░░░█████░█░█░█",
"█░░░█░█░░░░░█░░░░░█░░██░█░░░░░█░░░░░█░░░█░██░██", "█░░░█░█░░░░░█░░░░░█░░██░█░░░░░█░░░░░█░░░█░██░██",
"█████░█░░░░░█████░█░░░█░█████░█████░█░░░█░█░░░█", "█████░█░░░░░█████░█░░░█░█████░█████░█░░░█░█░░░█",
"▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", "▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓",
" 🦞 FRESH DAILY 🦞 ", " 🦞 FRESH DAILY 🦞 ",
" ", " ",
].join("\n"); ].join("\n");

View File

@ -16,10 +16,10 @@ export function resolveIsNixMode(env: NodeJS.ProcessEnv = process.env): boolean
export const isNixMode = resolveIsNixMode(); export const isNixMode = resolveIsNixMode();
const LEGACY_STATE_DIRNAMES = [] as const; const LEGACY_STATE_DIRNAMES = [".clawdbot", ".moltbot", ".moldbot"] as const;
const NEW_STATE_DIRNAME = ".openclaw"; const NEW_STATE_DIRNAME = ".openclaw";
const CONFIG_FILENAME = "openclaw.json"; const CONFIG_FILENAME = "openclaw.json";
const LEGACY_CONFIG_FILENAMES = [] as const; const LEGACY_CONFIG_FILENAMES = ["clawdbot.json", "moltbot.json", "moldbot.json"] as const;
function legacyStateDirs(homedir: () => string = os.homedir): string[] { function legacyStateDirs(homedir: () => string = os.homedir): string[] {
return LEGACY_STATE_DIRNAMES.map((dir) => path.join(homedir(), dir)); return LEGACY_STATE_DIRNAMES.map((dir) => path.join(homedir(), dir));