create-openclaw-bot 5.4.0 โ 5.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +177 -157
- package/CHANGELOG.vi.md +175 -155
- package/README.md +321 -321
- package/README.vi.md +321 -321
- package/cli.js +17 -19
- package/package.json +1 -1
- package/setup.js +16 -5
- package/openclaw_correct_structure.md +0 -203
package/CHANGELOG.md
CHANGED
|
@@ -1,170 +1,190 @@
|
|
|
1
|
-
# Changelog (English)
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
## [5.4.0] โ 2026-04-14
|
|
5
|
-
|
|
6
|
-
### ๐๏ธ Remove: Telegram + Zalo Combo Channel
|
|
7
|
-
|
|
8
|
-
- **Deprecated and removed `telegram+zalo-personal` combo mode** from both the Web Wizard and CLI. The channel card is hidden in `index.html`, removed from `channels.js` and `data/index.js`, and all conditional logic has been purged from `controller.js`, `output.js`, `steps.js`, `multi-bot.js`, `win-bat.js`, `macos-sh.js`, `linux-sh.js`, `vps-sh.js`, `native-helpers-gen.js`, and `cli.src.js`. Combo mode will be redesigned in a future release.
|
|
9
|
-
|
|
10
|
-
### ๐๏ธ Refactor: Multi-Bot Architecture
|
|
11
|
-
|
|
12
|
-
- **Unified multi-bot flag** โ `isTelegramMultiBot`, `isSharedMultiBot`, and `isMultiBotWizard` have all been merged into a single `isMultiBot` boolean throughout the codebase. Reduces complexity and eliminates divergent code paths.
|
|
13
|
-
- **Fixed `agentDir` path resolution** โ `agentDir` in generated `openclaw.json` is now correctly set as `.openclaw/agents/{slug}/agent` (relative to `OPENCLAW_HOME`). Previously used an incorrect project-root-level `agents/{slug}/agent` path that caused double-prefix errors at runtime.
|
|
14
|
-
- **Removed redundant `agents/` root folder creation** โ OS scripts no longer attempt to `mkdir agents/` at the project root; all agent files are created under `.openclaw/agents/`.
|
|
15
|
-
|
|
16
|
-
### ๐งน Config Generation Cleanup
|
|
17
|
-
|
|
18
|
-
- **Removed per-agent `auth-profiles.json` for 9Router/proxy mode** โ When the provider is a proxy (9Router), per-agent `auth-profiles.json` is no longer generated. This file is only created for direct API providers where per-agent authentication is required.
|
|
19
|
-
- **Removed `.env` generation for native deployments** โ Bot tokens and API keys for native mode are now managed via `openclaw channels login` / the 9Router dashboard. No `.env` is auto-generated in native scripts to avoid credential sprawl.
|
|
20
|
-
- **Removed per-agent `models.json` for Ollama (CLI)** โ Ollama model config is already declared in `openclaw.json โ agents.defaults.model`. The redundant per-agent `models.json` in `agents/{id}/agent/` is no longer generated.
|
|
21
|
-
|
|
22
|
-
### ๐ค Cross-Workspace Rules in AGENTS.md
|
|
23
|
-
|
|
24
|
-
- **Multi-bot `AGENTS.md` now includes a "Cross-Workspace" section** โ In multi-bot (relay) mode, each bot's `AGENTS.md` receives a `๐ค Workspace Chรฉo (Multi-Agent)` / `๐ค Cross-Workspace (Multi-Agent)` section listing the workspace paths of sibling bots. Rules: bots may read each other's `IDENTITY`, `SOUL`, and `MEMORY` files for shared context; they must not delete or overwrite each other's workspace files without explicit user instruction.
|
|
25
|
-
|
|
26
|
-
### ๐ง win-bat.js Refactor
|
|
27
|
-
|
|
28
|
-
- **Extracted `appendGatewayStart()` and `appendDashboardInfo()` helpers** โ Repeated PowerShell gateway launch and dashboard URL blocks are now deduplicated into two local helper functions inside `generateWinBat`, reducing the Windows batch generator by ~50 lines.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
## [5.3.5] โ 2026-04-12
|
|
32
|
-
|
|
33
|
-
### ๐ Fix: MEMORY.md Syntax Error in Zalo Workspace Files
|
|
34
|
-
|
|
35
|
-
- **Fix: `SyntaxError: Unexpected token ':'` in `setup.js`** โ the previous TOOLS.md patch was inserted after the `vi` ternary arm of MEMORY.md, orphaning the `: en-value` colon arm below it. VS Code showed this as 7 error badges on `setup.js`. Now fixed; both MEMORY.md arms are contiguous, then TOOLS.md follows as a clean separate property.
|
|
36
|
-
|
|
37
|
-
### ๐ Improvement: Uninstall Script Written to Project Folder
|
|
38
|
-
|
|
39
|
-
- **All 4 OS native flows + Docker ZIP** now include the matching `uninstall-*.{bat,sh}` script **in the project folder** during setup. Previously the uninstall was only available as a separate browser download. Pattern mirrors `start-chrome-debug.bat` / `.sh`:
|
|
40
|
-
- Windows native: `uninstall-openclaw-win.bat` written via `appendBatWriteCommands`
|
|
41
|
-
- macOS native: `uninstall-openclaw.sh` written via `appendShWriteCommands`
|
|
42
|
-
- VPS/Ubuntu: `uninstall-openclaw-vps.sh` written via `appendShWriteCommands`
|
|
43
|
-
- Linux Desktop: `uninstall-openclaw.sh` written via `appendShWriteCommands`
|
|
44
|
-
- Docker (all OS): uninstall script included in the generatedFiles ZIP
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
### ๐ Windows Native โ Gateway & Workspace Stability
|
|
49
|
-
|
|
50
|
-
- **Fix: Gateway terminal auto-closing** โ `call openclaw gateway run` was blocking the setup terminal indefinitely; closing the window killed the gateway process. The gateway is now launched in a **dedicated, visible CMD window** via a PS1 background launcher (same pattern as 9Router), so the setup terminal closes cleanly while the gateway keeps running.
|
|
51
|
-
- **Fix: `call` missing from `openclaw gateway stop`** โ The gateway stop command before relaunch was missing the `call` keyword, which could prevent the bat script from returning control after the stop completes. Added `call openclaw gateway stop 2>nul` in all affected paths.
|
|
52
|
-
- **Fix: Workspace naming** โ Single-bot deployments previously used a generic `.openclaw/workspace` path. All agents (single-bot and multi-bot) now use a named directory matching their agent ID: `.openclaw/workspace-{agentId}` (e.g. `workspace-williams`, `workspace-luna`). This prevents workspace collisions and aligns the folder structure with the `agents/{agentId}` directory convention.
|
|
53
|
-
- **Improve: TOOLS.md enriched for all bots** โ The generated `TOOLS.md` now includes both the custom skills & conventions section AND a "Local Notes" template section adapted from the OpenClaw workspace default, giving users a clear starting point for documenting environment-specific config.
|
|
54
|
-
- **Improve: Zalo bot AGENTS.md now includes security rules** โ The generated `AGENTS.md` for Zalo Personal bots (Luna-pattern) now appends the same `๐ Security Rules โ MANDATORY` block that Telegram bots receive (file-system boundaries, credential hygiene, crypto wallet protection, Docker mount rules).
|
|
55
|
-
- **Improve: Zalo bot TOOLS.md added** โ Zalo bot workspaces now receive a `TOOLS.md` file with the same skills list and conventions structure as Telegram bots.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
## [5.3.3] โ 2026-04-11
|
|
59
|
-
|
|
60
|
-
### ๐งน Automated Uninstall Scripts
|
|
61
|
-
|
|
62
|
-
- **Wizard UI Generation**: The HTML setup wizard now generates a matching `uninstall-openclaw-*.bat/sh` script when downloading the configuration for Native or Docker deployments.
|
|
63
|
-
- **Complete Cleanup**: The generated scripts cleanly kill 9Router/OpenClaw background processes, uninstall global npm packages, and safely remove the project and `.9router` data directories, allowing for a fresh start whenever needed.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
## [5.3.2] โ 2026-04-11
|
|
68
|
-
|
|
69
|
-
### ๐ Windows Native โ 9Router Launch Stability
|
|
70
|
-
|
|
71
|
-
- **Fix: Remove `-l` (stdin listen) flag from native 9Router launch** โ `resolveNative9RouterDesktopLaunch()` previously passed `-l` which puts 9Router into interactive REPL mode. When spawned as a background process (no TTY), this caused the process to hang waiting for stdin input. Removed the flag; 9Router now starts reliably in the background on Windows, macOS desktop, and any non-VPS native flow.
|
|
72
|
-
- **Fix: Pre-seed `DATA_DIR/.9router/db.json` with `requireLogin: false` before 9Router starts** โ If `db.json` does not exist when 9Router boots, it uses its own default path (`~/.9router`) and defaults `requireLogin` to `true`, causing the dashboard login wall. The CLI wizard now creates the `.9router` directory and writes a minimal `db.json` (with `requireLogin: false`) **before** spawning 9Router, matching the behavior of the fixed `setup-openclaw-win.bat` batch file.
|
|
73
|
-
- **No change to PM2/VPS flow** โ The fix applies only to the desktop/background spawn path (`osChoice !== 'vps'`). VPS users still use the existing PM2-managed `startNative9RouterPm2` flow which is unaffected.
|
|
74
|
-
|
|
75
|
-
## [5.3.1] โ 2026-04-10
|
|
76
|
-
|
|
77
|
-
### ๐ Zalo Personal DM Policy
|
|
78
|
-
|
|
79
|
-
- **Open Zalo Inboxes**: The default `dmPolicy` for Zalo Personal deployments has been changed from `pairing` to `open`. This allows any user on the Zalo network to interact with the AI assistant immediately without requiring explicit device pairing approvals natively.
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
## [5.3.0] โ 2026-04-11
|
|
83
|
-
|
|
84
|
-
### ๐ Multi-Channel: Telegram + Zalo Personal Simultaneously
|
|
85
|
-
|
|
86
|
-
- **Combo channel option** โ New `telegram+zalo-personal` option in both CLI wizard (`select`) and web wizard (channel card). Selecting it configures a single bot to receive messages from both Telegram and Zalo Personal at the same time.
|
|
87
|
-
- **Auto-inject `plugins.entries.zalouser`** โ When any Zalo Personal channel is selected, `openclaw.json` now automatically includes `plugins.entries.zalouser: { enabled: true }`, fixing the root cause of the "not configured" error on Zalo startup.
|
|
88
|
-
- **Docker cold-start fix in Dockerfile CMD** โ A background `(sleep 45 && node -e '...touch historyLimit...')` script is now baked into the generated `Dockerfile` CMD. Triggers chokidar โ gateway hot-reload โ `restartChannel('zalouser')` after Docker network warms up. No more manual `lastTouchedAt` workarounds.
|
|
89
|
-
- **Helper predicates** โ Added `hasTelegram(ck)` and `hasZaloPersonal(ck)` functions replacing all literal `channelKey === 'telegram/zalo-personal'` comparisons throughout `cli.js` for cleaner extensibility.
|
|
90
|
-
- **Smoke tests updated** โ `tests/smoke-cli-logic.mjs` updated to match the new predicate-based assertions (78 checks passing).
|
|
91
|
-
|
|
92
|
-
## [5.2.4] โ 2026-04-10
|
|
93
|
-
|
|
94
|
-
### ๐ Bug Fixes & Developer Tooling
|
|
95
|
-
|
|
96
|
-
- **Fix: `docker compose build --no-cache` during upgrade** โ Removed the `--no-cache` flag from the upgrade flow. Without it, Docker correctly reuses cached layers (including Playwright/Chromium ~300MB) and only rebuilds the `openclaw` layer that changed, making upgrades significantly faster.
|
|
97
|
-
- **UX: Upgrade CLI banner now matches upgrade.ps1/sh style** โ `runUpgrade()` in `cli.js` now renders the same โญโฎโฐโฏ box using visual-width calculation (`vw()`) instead of plain `===` separators.
|
|
98
|
-
- **New: GitHub Actions workflow to auto-detect openclaw updates** โ `.github/workflows/check-openclaw-update.yml` runs daily, compares the pinned `OPENCLAW_NPM_SPEC` in `cli.js` with the latest version on npm, and automatically creates a GitHub Issue with upgrade instructions if a new version is available.
|
|
99
|
-
|
|
100
|
-
## [5.2.3] โ 2026-04-10
|
|
101
|
-
|
|
102
|
-
### ๐ Bug Fixes & Encoding Improvements
|
|
103
|
-
|
|
104
|
-
- **Fix: `ReferenceError: projectDir is not defined`** โ Crash when clicking "Generate Configs" in multi-bot mode. `nativeProjectOpenClawRoot` in `buildTelegramPostInstallChecklist()` referenced an undefined `projectDir` variable and was dead code (unused in return value). Removed.
|
|
105
|
-
- **Fix: Step 3 "Next" button validation** โ `state._activeBotTab` was a typo of `state.activeBotIndex`, causing multi-bot validation to always read the wrong tab index.
|
|
106
|
-
- **Fix: `saveFormData()` always saved bot tab name to `bots[0]`** โ In multi-bot mode, the active bot name was always written to `bots[0]` regardless of which tab was active. Now correctly saves to `bots[state.activeBotIndex]`.
|
|
107
|
-
- **UX: Inline hint for disabled "Generate Configs" button** โ When the button is blocked, a warning now appears showing exactly which fields are still missing (e.g. "Missing: GOOGLE_API_KEY").
|
|
108
|
-
- **Fix: Vietnamese diacritics in generated `.bat` and `.sh` scripts** โ All Vietnamese echo/Write-Host strings in the generated Windows setup script and Linux/macOS bash script have been converted to ASCII (no diacritics) to prevent encoding errors on systems with non-UTF-8 codepages.
|
|
109
|
-
|
|
110
|
-
## [5.2.2] โ 2026-04-10
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
### ๐ Docker & Native PM2 Bug Fixes
|
|
114
|
-
|
|
115
|
-
- **Fix Docker crash loop (socat port conflict)**: `socat TCP-LISTEN:18791` was binding `0.0.0.0:18791` before `openclaw gateway run` started, causing `EADDRINUSE` on `127.0.0.1:18791`. Removed the broken gateway bridge from the generated Dockerfile CMD in both `cli.js` and `setup.js`.
|
|
116
|
-
- **Fix Docker dashboard not accessible from host**: Gateway `bind` was set to `'loopback'` โ Docker port mapping cannot route to container loopback. Restored the v5.0.9 working pattern: `bind:'custom', customBindHost:'0.0.0.0'`.
|
|
117
|
-
- **Fix `delete c.gateway.customBindHost`**: A stray `delete` statement was erasing the `customBindHost` key right after setting it. Removed.
|
|
118
|
-
- **Fix Docker build re-downloading npm packages on every rebuild**: `ARG CACHEBUST=<epoch>` was cache-busting the `npm install -g openclaw` layer on every build (even config-only changes). Replaced with a version-stable `ARG OPENCLAW_VER` so Docker layer cache is reused between rebuilds.
|
|
119
|
-
- **Fix native PM2 double `.openclaw` nesting**: `ecosystem.config.js` was setting `OPENCLAW_HOME: projectDir/.openclaw`, causing OpenClaw to resolve workspace as `projectDir/.openclaw/.openclaw/workspace`. Removed `OPENCLAW_HOME` from PM2 env; OpenClaw discovers config via `cwd` (matching v5.0.9 behavior).
|
|
120
|
-
|
|
121
|
-
## [5.2.1] โ 2026-04-09
|
|
122
|
-
|
|
123
|
-
### ๐ Native Ubuntu/VPS Bug Fixes
|
|
124
|
-
|
|
125
|
-
- **Fix `Bot-9router errored` (PM2)**: `resolveNative9RouterDesktopLaunch` was trying to locate `9router/app/server.js` inside npm global dirs โ a path that doesn't exist after standard `npm install -g 9router`. Now uses the `9router` CLI binary directly with proper args (`-n -l -H 0.0.0.0 -p 20128 --skip-update`), preventing the `โบ 15` restart loop.
|
|
126
|
-
- **Fix double `.openclaw` workspace path**: `workspace` and `agentDir` in generated `openclaw.json` were set as absolute paths (e.g. `/home/user/bot/.openclaw/workspace`). OpenClaw resolves these relative to `OPENCLAW_HOME`, causing a double-prefix (`/home/user/bot/.openclaw/.openclaw/workspace`). Changed to relative paths (`workspace`, `agents/<id>/agent`) matching Docker behavior.
|
|
127
|
-
- **Fix missing runtime packages on native install**: `grammy`, `@grammyjs/runner`, `@grammyjs/transformer-throttler`, `@buape/carbon`, `@larksuiteoapi/node-sdk`, `@slack/web-api` were installed in Docker (Dockerfile) but skipped on native. `installLatestOpenClaw` now installs all `OPENCLAW_RUNTIME_PACKAGES` after the main binary.
|
|
128
|
-
- **Fix `openclaw: command not found` after install**: Post-setup Zalo login instructions now include a `source ~/.bashrc && source ~/.profile` hint for new terminal sessions on Linux.
|
|
129
|
-
- **Fix Zalo session stored in wrong directory**: Manual login hint now includes `OPENCLAW_HOME` and `OPENCLAW_STATE_DIR` env vars so sessions are saved to `<projectDir>/.openclaw/credentials/zalouser/` โ the same path the PM2 gateway reads from.
|
|
130
|
-
- **Fix relative project path**: `projectDir` input is now normalized with `path.resolve()` so typing `home/ubuntu/bot` (without leading `/`) correctly resolves to `/home/ubuntu/bot`.
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
## [5.2.0] โ 2026-04-09
|
|
134
|
-
|
|
135
|
-
### One-Command Upgrade (No Wizard Required)
|
|
136
|
-
|
|
137
|
-
- Added `upgrade` subcommand to the CLI: `npx create-openclaw-bot@latest upgrade`. Detects Docker vs Native mode automatically and updates OpenClaw without re-running the setup wizard.
|
|
138
|
-
- Added `upgrade.ps1` for Windows users โ double-click in the bot folder to trigger an upgrade. No terminal knowledge required.
|
|
139
|
-
- Added `upgrade.sh` for Linux / macOS / Ubuntu โ run `bash upgrade.sh` locally or pipe via `curl` or `wget` directly from GitHub without cloning the repo.
|
|
140
|
-
- All user data is preserved during upgrade: `.env`, `.openclaw/memory/`, sessions, credentials, and 9Router OAuth tokens are never modified.
|
|
141
|
-
- Docker mode: patching `Dockerfile` (`OPENCLAW_NPM_SPEC` + `CACHEBUST` refresh) then `docker compose build --no-cache` + `docker compose up -d`.
|
|
142
|
-
- Native / PM2 mode: reinstalls `openclaw` + `9router` globals then runs `pm2 restart all`.
|
|
1
|
+
# Changelog (English)
|
|
2
|
+
|
|
143
3
|
|
|
4
|
+
## [5.4.2] โ 2026-04-14
|
|
144
5
|
|
|
145
|
-
|
|
6
|
+
### ๐ Native Script Wizard Fixes
|
|
146
7
|
|
|
147
|
-
|
|
8
|
+
- **Deduplicate Plugin Installations**: Fixed an issue where the Telegram Multi-Bot Relay plugin was being appended twice to the installation payload in the HTML web wizard (`setup-openclaw-*.bat/sh`). This eliminates the "plugin already exists" crash during `npm exec` plugin installations.
|
|
148
9
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
|
|
10
|
+
|
|
11
|
+
## [5.4.1] โ 2026-04-14
|
|
12
|
+
|
|
13
|
+
### ๐ Docker CLI Generation Fixes
|
|
14
|
+
|
|
15
|
+
- **Browser Automation Restoration**: Reintroduced `xvfb` APT installation and the background Xvfb frame buffer execution (`Xvfb :99 -screen...`) to the generated Dockerfile `CMD`. This prevents headful Playwright processes from crashing on startup within the container.
|
|
16
|
+
- **REST API CORS Hotfix**: Reintroduced the runtime Internal IP injector script. It correctly patches `openclaw.json` at container startup strictly mapping Docker internal bridge IPs (`172...`) into `allowedOrigins`, eliminating 403 CORS blocks inside Docker Web Control UIs.
|
|
17
|
+
|
|
18
|
+
### ๐งน Automated Uninstall Scripts
|
|
19
|
+
|
|
20
|
+
- **Wizard UI Generation**: The HTML setup wizard now generates a matching `uninstall-openclaw-*.bat/sh` script when downloading the configuration for Native or Docker deployments.
|
|
21
|
+
- **Complete Cleanup**: The generated scripts cleanly kill 9Router/OpenClaw background processes, uninstall global npm packages, and safely remove the project and `.9router` data directories, allowing for a fresh start whenever needed.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## [5.4.0] โ 2026-04-14
|
|
25
|
+
|
|
26
|
+
### ๐๏ธ Remove: Telegram + Zalo Combo Channel
|
|
27
|
+
|
|
28
|
+
- **Deprecated and removed `telegram+zalo-personal` combo mode** from both the Web Wizard and CLI. The channel card is hidden in `index.html`, removed from `channels.js` and `data/index.js`, and all conditional logic has been purged from `controller.js`, `output.js`, `steps.js`, `multi-bot.js`, `win-bat.js`, `macos-sh.js`, `linux-sh.js`, `vps-sh.js`, `native-helpers-gen.js`, and `cli.src.js`. Combo mode will be redesigned in a future release.
|
|
29
|
+
|
|
30
|
+
### ๐๏ธ Refactor: Multi-Bot Architecture
|
|
31
|
+
|
|
32
|
+
- **Unified multi-bot flag** โ `isTelegramMultiBot`, `isSharedMultiBot`, and `isMultiBotWizard` have all been merged into a single `isMultiBot` boolean throughout the codebase. Reduces complexity and eliminates divergent code paths.
|
|
33
|
+
- **Fixed `agentDir` path resolution** โ `agentDir` in generated `openclaw.json` is now correctly set as `.openclaw/agents/{slug}/agent` (relative to `OPENCLAW_HOME`). Previously used an incorrect project-root-level `agents/{slug}/agent` path that caused double-prefix errors at runtime.
|
|
34
|
+
- **Removed redundant `agents/` root folder creation** โ OS scripts no longer attempt to `mkdir agents/` at the project root; all agent files are created under `.openclaw/agents/`.
|
|
35
|
+
|
|
36
|
+
### ๐งน Config Generation Cleanup
|
|
37
|
+
|
|
38
|
+
- **Removed per-agent `auth-profiles.json` for 9Router/proxy mode** โ When the provider is a proxy (9Router), per-agent `auth-profiles.json` is no longer generated. This file is only created for direct API providers where per-agent authentication is required.
|
|
39
|
+
- **Removed `.env` generation for native deployments** โ Bot tokens and API keys for native mode are now managed via `openclaw channels login` / the 9Router dashboard. No `.env` is auto-generated in native scripts to avoid credential sprawl.
|
|
40
|
+
- **Removed per-agent `models.json` for Ollama (CLI)** โ Ollama model config is already declared in `openclaw.json โ agents.defaults.model`. The redundant per-agent `models.json` in `agents/{id}/agent/` is no longer generated.
|
|
41
|
+
|
|
42
|
+
### ๐ค Cross-Workspace Rules in AGENTS.md
|
|
43
|
+
|
|
44
|
+
- **Multi-bot `AGENTS.md` now includes a "Cross-Workspace" section** โ In multi-bot (relay) mode, each bot's `AGENTS.md` receives a `๐ค Workspace Chรฉo (Multi-Agent)` / `๐ค Cross-Workspace (Multi-Agent)` section listing the workspace paths of sibling bots. Rules: bots may read each other's `IDENTITY`, `SOUL`, and `MEMORY` files for shared context; they must not delete or overwrite each other's workspace files without explicit user instruction.
|
|
45
|
+
|
|
46
|
+
### ๐ง win-bat.js Refactor
|
|
47
|
+
|
|
48
|
+
- **Extracted `appendGatewayStart()` and `appendDashboardInfo()` helpers** โ Repeated PowerShell gateway launch and dashboard URL blocks are now deduplicated into two local helper functions inside `generateWinBat`, reducing the Windows batch generator by ~50 lines.
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
## [5.3.5] โ 2026-04-12
|
|
52
|
+
|
|
53
|
+
### ๐ Fix: MEMORY.md Syntax Error in Zalo Workspace Files
|
|
54
|
+
|
|
55
|
+
- **Fix: `SyntaxError: Unexpected token ':'` in `setup.js`** โ the previous TOOLS.md patch was inserted after the `vi` ternary arm of MEMORY.md, orphaning the `: en-value` colon arm below it. VS Code showed this as 7 error badges on `setup.js`. Now fixed; both MEMORY.md arms are contiguous, then TOOLS.md follows as a clean separate property.
|
|
56
|
+
|
|
57
|
+
### ๐ Improvement: Uninstall Script Written to Project Folder
|
|
58
|
+
|
|
59
|
+
- **All 4 OS native flows + Docker ZIP** now include the matching `uninstall-*.{bat,sh}` script **in the project folder** during setup. Previously the uninstall was only available as a separate browser download. Pattern mirrors `start-chrome-debug.bat` / `.sh`:
|
|
60
|
+
- Windows native: `uninstall-openclaw-win.bat` written via `appendBatWriteCommands`
|
|
61
|
+
- macOS native: `uninstall-openclaw.sh` written via `appendShWriteCommands`
|
|
62
|
+
- VPS/Ubuntu: `uninstall-openclaw-vps.sh` written via `appendShWriteCommands`
|
|
63
|
+
- Linux Desktop: `uninstall-openclaw.sh` written via `appendShWriteCommands`
|
|
64
|
+
- Docker (all OS): uninstall script included in the generatedFiles ZIP
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
### ๐ Windows Native โ Gateway & Workspace Stability
|
|
69
|
+
|
|
70
|
+
- **Fix: Gateway terminal auto-closing** โ `call openclaw gateway run` was blocking the setup terminal indefinitely; closing the window killed the gateway process. The gateway is now launched in a **dedicated, visible CMD window** via a PS1 background launcher (same pattern as 9Router), so the setup terminal closes cleanly while the gateway keeps running.
|
|
71
|
+
- **Fix: `call` missing from `openclaw gateway stop`** โ The gateway stop command before relaunch was missing the `call` keyword, which could prevent the bat script from returning control after the stop completes. Added `call openclaw gateway stop 2>nul` in all affected paths.
|
|
72
|
+
- **Fix: Workspace naming** โ Single-bot deployments previously used a generic `.openclaw/workspace` path. All agents (single-bot and multi-bot) now use a named directory matching their agent ID: `.openclaw/workspace-{agentId}` (e.g. `workspace-williams`, `workspace-luna`). This prevents workspace collisions and aligns the folder structure with the `agents/{agentId}` directory convention.
|
|
73
|
+
- **Improve: TOOLS.md enriched for all bots** โ The generated `TOOLS.md` now includes both the custom skills & conventions section AND a "Local Notes" template section adapted from the OpenClaw workspace default, giving users a clear starting point for documenting environment-specific config.
|
|
74
|
+
- **Improve: Zalo bot AGENTS.md now includes security rules** โ The generated `AGENTS.md` for Zalo Personal bots (Luna-pattern) now appends the same `๐ Security Rules โ MANDATORY` block that Telegram bots receive (file-system boundaries, credential hygiene, crypto wallet protection, Docker mount rules).
|
|
75
|
+
- **Improve: Zalo bot TOOLS.md added** โ Zalo bot workspaces now receive a `TOOLS.md` file with the same skills list and conventions structure as Telegram bots.
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
## [5.3.3] โ 2026-04-11
|
|
79
|
+
|
|
80
|
+
### ๐งน Automated Uninstall Scripts
|
|
81
|
+
|
|
82
|
+
- **Wizard UI Generation**: The HTML setup wizard now generates a matching `uninstall-openclaw-*.bat/sh` script when downloading the configuration for Native or Docker deployments.
|
|
83
|
+
- **Complete Cleanup**: The generated scripts cleanly kill 9Router/OpenClaw background processes, uninstall global npm packages, and safely remove the project and `.9router` data directories, allowing for a fresh start whenever needed.
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
## [5.3.2] โ 2026-04-11
|
|
88
|
+
|
|
89
|
+
### ๐ Windows Native โ 9Router Launch Stability
|
|
90
|
+
|
|
91
|
+
- **Fix: Remove `-l` (stdin listen) flag from native 9Router launch** โ `resolveNative9RouterDesktopLaunch()` previously passed `-l` which puts 9Router into interactive REPL mode. When spawned as a background process (no TTY), this caused the process to hang waiting for stdin input. Removed the flag; 9Router now starts reliably in the background on Windows, macOS desktop, and any non-VPS native flow.
|
|
92
|
+
- **Fix: Pre-seed `DATA_DIR/.9router/db.json` with `requireLogin: false` before 9Router starts** โ If `db.json` does not exist when 9Router boots, it uses its own default path (`~/.9router`) and defaults `requireLogin` to `true`, causing the dashboard login wall. The CLI wizard now creates the `.9router` directory and writes a minimal `db.json` (with `requireLogin: false`) **before** spawning 9Router, matching the behavior of the fixed `setup-openclaw-win.bat` batch file.
|
|
93
|
+
- **No change to PM2/VPS flow** โ The fix applies only to the desktop/background spawn path (`osChoice !== 'vps'`). VPS users still use the existing PM2-managed `startNative9RouterPm2` flow which is unaffected.
|
|
94
|
+
|
|
95
|
+
## [5.3.1] โ 2026-04-10
|
|
96
|
+
|
|
97
|
+
### ๐ Zalo Personal DM Policy
|
|
98
|
+
|
|
99
|
+
- **Open Zalo Inboxes**: The default `dmPolicy` for Zalo Personal deployments has been changed from `pairing` to `open`. This allows any user on the Zalo network to interact with the AI assistant immediately without requiring explicit device pairing approvals natively.
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
## [5.3.0] โ 2026-04-11
|
|
103
|
+
|
|
104
|
+
### ๐ Multi-Channel: Telegram + Zalo Personal Simultaneously
|
|
105
|
+
|
|
106
|
+
- **Combo channel option** โ New `telegram+zalo-personal` option in both CLI wizard (`select`) and web wizard (channel card). Selecting it configures a single bot to receive messages from both Telegram and Zalo Personal at the same time.
|
|
107
|
+
- **Auto-inject `plugins.entries.zalouser`** โ When any Zalo Personal channel is selected, `openclaw.json` now automatically includes `plugins.entries.zalouser: { enabled: true }`, fixing the root cause of the "not configured" error on Zalo startup.
|
|
108
|
+
- **Docker cold-start fix in Dockerfile CMD** โ A background `(sleep 45 && node -e '...touch historyLimit...')` script is now baked into the generated `Dockerfile` CMD. Triggers chokidar โ gateway hot-reload โ `restartChannel('zalouser')` after Docker network warms up. No more manual `lastTouchedAt` workarounds.
|
|
109
|
+
- **Helper predicates** โ Added `hasTelegram(ck)` and `hasZaloPersonal(ck)` functions replacing all literal `channelKey === 'telegram/zalo-personal'` comparisons throughout `cli.js` for cleaner extensibility.
|
|
110
|
+
- **Smoke tests updated** โ `tests/smoke-cli-logic.mjs` updated to match the new predicate-based assertions (78 checks passing).
|
|
111
|
+
|
|
112
|
+
## [5.2.4] โ 2026-04-10
|
|
113
|
+
|
|
114
|
+
### ๐ Bug Fixes & Developer Tooling
|
|
115
|
+
|
|
116
|
+
- **Fix: `docker compose build --no-cache` during upgrade** โ Removed the `--no-cache` flag from the upgrade flow. Without it, Docker correctly reuses cached layers (including Playwright/Chromium ~300MB) and only rebuilds the `openclaw` layer that changed, making upgrades significantly faster.
|
|
117
|
+
- **UX: Upgrade CLI banner now matches upgrade.ps1/sh style** โ `runUpgrade()` in `cli.js` now renders the same โญโฎโฐโฏ box using visual-width calculation (`vw()`) instead of plain `===` separators.
|
|
118
|
+
- **New: GitHub Actions workflow to auto-detect openclaw updates** โ `.github/workflows/check-openclaw-update.yml` runs daily, compares the pinned `OPENCLAW_NPM_SPEC` in `cli.js` with the latest version on npm, and automatically creates a GitHub Issue with upgrade instructions if a new version is available.
|
|
119
|
+
|
|
120
|
+
## [5.2.3] โ 2026-04-10
|
|
121
|
+
|
|
122
|
+
### ๐ Bug Fixes & Encoding Improvements
|
|
123
|
+
|
|
124
|
+
- **Fix: `ReferenceError: projectDir is not defined`** โ Crash when clicking "Generate Configs" in multi-bot mode. `nativeProjectOpenClawRoot` in `buildTelegramPostInstallChecklist()` referenced an undefined `projectDir` variable and was dead code (unused in return value). Removed.
|
|
125
|
+
- **Fix: Step 3 "Next" button validation** โ `state._activeBotTab` was a typo of `state.activeBotIndex`, causing multi-bot validation to always read the wrong tab index.
|
|
126
|
+
- **Fix: `saveFormData()` always saved bot tab name to `bots[0]`** โ In multi-bot mode, the active bot name was always written to `bots[0]` regardless of which tab was active. Now correctly saves to `bots[state.activeBotIndex]`.
|
|
127
|
+
- **UX: Inline hint for disabled "Generate Configs" button** โ When the button is blocked, a warning now appears showing exactly which fields are still missing (e.g. "Missing: GOOGLE_API_KEY").
|
|
128
|
+
- **Fix: Vietnamese diacritics in generated `.bat` and `.sh` scripts** โ All Vietnamese echo/Write-Host strings in the generated Windows setup script and Linux/macOS bash script have been converted to ASCII (no diacritics) to prevent encoding errors on systems with non-UTF-8 codepages.
|
|
129
|
+
|
|
130
|
+
## [5.2.2] โ 2026-04-10
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
### ๐ Docker & Native PM2 Bug Fixes
|
|
134
|
+
|
|
135
|
+
- **Fix Docker crash loop (socat port conflict)**: `socat TCP-LISTEN:18791` was binding `0.0.0.0:18791` before `openclaw gateway run` started, causing `EADDRINUSE` on `127.0.0.1:18791`. Removed the broken gateway bridge from the generated Dockerfile CMD in both `cli.js` and `setup.js`.
|
|
136
|
+
- **Fix Docker dashboard not accessible from host**: Gateway `bind` was set to `'loopback'` โ Docker port mapping cannot route to container loopback. Restored the v5.0.9 working pattern: `bind:'custom', customBindHost:'0.0.0.0'`.
|
|
137
|
+
- **Fix `delete c.gateway.customBindHost`**: A stray `delete` statement was erasing the `customBindHost` key right after setting it. Removed.
|
|
138
|
+
- **Fix Docker build re-downloading npm packages on every rebuild**: `ARG CACHEBUST=<epoch>` was cache-busting the `npm install -g openclaw` layer on every build (even config-only changes). Replaced with a version-stable `ARG OPENCLAW_VER` so Docker layer cache is reused between rebuilds.
|
|
139
|
+
- **Fix native PM2 double `.openclaw` nesting**: `ecosystem.config.js` was setting `OPENCLAW_HOME: projectDir/.openclaw`, causing OpenClaw to resolve workspace as `projectDir/.openclaw/.openclaw/workspace`. Removed `OPENCLAW_HOME` from PM2 env; OpenClaw discovers config via `cwd` (matching v5.0.9 behavior).
|
|
140
|
+
|
|
141
|
+
## [5.2.1] โ 2026-04-09
|
|
142
|
+
|
|
143
|
+
### ๐ Native Ubuntu/VPS Bug Fixes
|
|
144
|
+
|
|
145
|
+
- **Fix `Bot-9router errored` (PM2)**: `resolveNative9RouterDesktopLaunch` was trying to locate `9router/app/server.js` inside npm global dirs โ a path that doesn't exist after standard `npm install -g 9router`. Now uses the `9router` CLI binary directly with proper args (`-n -l -H 0.0.0.0 -p 20128 --skip-update`), preventing the `โบ 15` restart loop.
|
|
146
|
+
- **Fix double `.openclaw` workspace path**: `workspace` and `agentDir` in generated `openclaw.json` were set as absolute paths (e.g. `/home/user/bot/.openclaw/workspace`). OpenClaw resolves these relative to `OPENCLAW_HOME`, causing a double-prefix (`/home/user/bot/.openclaw/.openclaw/workspace`). Changed to relative paths (`workspace`, `agents/<id>/agent`) matching Docker behavior.
|
|
147
|
+
- **Fix missing runtime packages on native install**: `grammy`, `@grammyjs/runner`, `@grammyjs/transformer-throttler`, `@buape/carbon`, `@larksuiteoapi/node-sdk`, `@slack/web-api` were installed in Docker (Dockerfile) but skipped on native. `installLatestOpenClaw` now installs all `OPENCLAW_RUNTIME_PACKAGES` after the main binary.
|
|
148
|
+
- **Fix `openclaw: command not found` after install**: Post-setup Zalo login instructions now include a `source ~/.bashrc && source ~/.profile` hint for new terminal sessions on Linux.
|
|
149
|
+
- **Fix Zalo session stored in wrong directory**: Manual login hint now includes `OPENCLAW_HOME` and `OPENCLAW_STATE_DIR` env vars so sessions are saved to `<projectDir>/.openclaw/credentials/zalouser/` โ the same path the PM2 gateway reads from.
|
|
150
|
+
- **Fix relative project path**: `projectDir` input is now normalized with `path.resolve()` so typing `home/ubuntu/bot` (without leading `/`) correctly resolves to `/home/ubuntu/bot`.
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
## [5.2.0] โ 2026-04-09
|
|
154
|
+
|
|
155
|
+
### One-Command Upgrade (No Wizard Required)
|
|
156
|
+
|
|
157
|
+
- Added `upgrade` subcommand to the CLI: `npx create-openclaw-bot@latest upgrade`. Detects Docker vs Native mode automatically and updates OpenClaw without re-running the setup wizard.
|
|
158
|
+
- Added `upgrade.ps1` for Windows users โ double-click in the bot folder to trigger an upgrade. No terminal knowledge required.
|
|
159
|
+
- Added `upgrade.sh` for Linux / macOS / Ubuntu โ run `bash upgrade.sh` locally or pipe via `curl` or `wget` directly from GitHub without cloning the repo.
|
|
160
|
+
- All user data is preserved during upgrade: `.env`, `.openclaw/memory/`, sessions, credentials, and 9Router OAuth tokens are never modified.
|
|
161
|
+
- Docker mode: patching `Dockerfile` (`OPENCLAW_NPM_SPEC` + `CACHEBUST` refresh) then `docker compose build --no-cache` + `docker compose up -d`.
|
|
162
|
+
- Native / PM2 mode: reinstalls `openclaw` + `9router` globals then runs `pm2 restart all`.
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
## [5.1.15] รขโฌโ 2026-04-08
|
|
166
|
+
|
|
167
|
+
### Native Setup Parity & Windows Wizard Fixes
|
|
168
|
+
|
|
169
|
+
- Fixed the Windows native HTML wizard so downloaded `.bat` files always regenerate from the latest UI state before download.
|
|
170
|
+
- Fixed Windows native runtime paths to stay project-local: `.env`, `.openclaw`, and `.9router` now resolve from the user-selected project directory instead of home/AppData fallbacks.
|
|
171
|
+
- Added `OPENCLAW_STATE_DIR` to native runtime environments so OpenClaw loads the generated config from the project runtime directory.
|
|
172
|
+
- Replaced legacy `gateway.bind: "0.0.0.0"` output with the current `bind: "custom"` plus `customBindHost: "0.0.0.0"` format.
|
|
173
|
+
- Fixed Windows native single-bot generation so selected provider, model, API key, and Telegram bot token are correctly synced into generated `.env` and `openclaw.json`.
|
|
174
|
+
- Fixed native Windows 9Router launch path resolution and updated the embedded smart-route sync helper to use the live `9Router` API provider list, matching Docker behavior.
|
|
175
|
+
- Added native Windows skill/runtime parity improvements: selected skills now install automatically, browser automation installs its required runtime packages, and skill config entries now use the correct slugs.
|
|
176
|
+
- Updated macOS, Linux Desktop, and Ubuntu/VPS native scripts to launch from the chosen `PROJECT_DIR` and export project-local `OPENCLAW_HOME`, `OPENCLAW_STATE_DIR`, and `DATA_DIR`.
|
|
157
177
|
- Expanded smoke coverage for the native runtime path, 9Router sync, provider/token sync, browser install, and Unix project-local startup flows.
|
|
158
178
|
|
|
159
179
|
## [5.1.14] รขโฌโ 2026-04-08
|
|
160
180
|
|
|
161
181
|
### OpenClaw stability and Docker fixes
|
|
162
182
|
|
|
163
|
-
- Pinned OpenClaw back to `openclaw@2026.4.5` because the update published on `April 8, 2026` is currently broken.
|
|
164
|
-
- Fixed Dockerfile generation for Windows Docker setups to avoid startup failures caused by bad command escaping and invalid `allowedOrigins`.
|
|
165
|
-
- Added guidance to use `Node.js 20` through `24`, and to avoid `Node.js 25` for now for better OpenClaw stability.
|
|
166
|
-
|
|
167
|
-
## [5.1.13] รขโฌโ 2026-04-08
|
|
183
|
+
- Pinned OpenClaw back to `openclaw@2026.4.5` because the update published on `April 8, 2026` is currently broken.
|
|
184
|
+
- Fixed Dockerfile generation for Windows Docker setups to avoid startup failures caused by bad command escaping and invalid `allowedOrigins`.
|
|
185
|
+
- Added guidance to use `Node.js 20` through `24`, and to avoid `Node.js 25` for now for better OpenClaw stability.
|
|
186
|
+
|
|
187
|
+
## [5.1.13] รขโฌโ 2026-04-08
|
|
168
188
|
|
|
169
189
|
### รฐลธยโบ macOS Install Fixes & Wizard Stability
|
|
170
190
|
|