From 9c5941ba466b86e3056b6743cd6d4fc554b13e8d Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 3 Feb 2026 18:04:42 -0800 Subject: [PATCH] fix: add legacy daemon-cli shim for updates --- CHANGELOG.md | 6 ++++++ package.json | 4 ++-- scripts/write-cli-compat.ts | 25 +++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 scripts/write-cli-compat.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 69ff9d2e16..e6766a1cf7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ Docs: https://docs.openclaw.ai +## 2026.2.2-3 + +### Fixes + +- Update: ship legacy daemon-cli shim for pre-tsdown update imports (fixes daemon restart after npm update). + ## 2026.2.2-2 ### Fixes diff --git a/package.json b/package.json index 9904b1954b..31d180eb6f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openclaw", - "version": "2026.2.2-2", + "version": "2026.2.2-3", "description": "WhatsApp gateway CLI (Baileys web) with Pi RPC agent", "keywords": [], "license": "MIT", @@ -32,7 +32,7 @@ "android:install": "cd apps/android && ./gradlew :app:installDebug", "android:run": "cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity", "android:test": "cd apps/android && ./gradlew :app:testDebugUnitTest", - "build": "pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts", + "build": "pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts", "canvas:a2ui:bundle": "bash scripts/bundle-a2ui.sh", "check": "pnpm tsgo && pnpm lint && pnpm format", "check:loc": "node --import tsx scripts/check-ts-max-loc.ts --max 500", diff --git a/scripts/write-cli-compat.ts b/scripts/write-cli-compat.ts new file mode 100644 index 0000000000..925c0cec54 --- /dev/null +++ b/scripts/write-cli-compat.ts @@ -0,0 +1,25 @@ +import fs from "node:fs"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +const rootDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), ".."); +const distDir = path.join(rootDir, "dist"); +const cliDir = path.join(distDir, "cli"); + +const candidates = fs + .readdirSync(distDir) + .filter((entry) => entry.startsWith("daemon-cli-") && entry.endsWith(".js")); + +if (candidates.length === 0) { + throw new Error("No daemon-cli bundle found in dist; cannot write legacy CLI shim."); +} + +const target = candidates.toSorted()[0]; +const relPath = `../${target}`; + +const contents = + "// Legacy shim for pre-tsdown update-cli imports.\n" + + `export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "${relPath}";\n`; + +fs.mkdirSync(cliDir, { recursive: true }); +fs.writeFileSync(path.join(cliDir, "daemon-cli.js"), contents);