create-openclaw-bot 5.5.0 → 5.6.0

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.
Files changed (39) hide show
  1. package/README.md +18 -17
  2. package/README.vi.md +18 -17
  3. package/{cli.js → dist/cli.js} +295 -224
  4. package/dist/setup/shared/install-gen.js +485 -0
  5. package/{setup/shared/scaffold-gen.js → dist/setup/shared/workspace-gen.js} +247 -25
  6. package/{setup.js → dist/setup.js} +771 -1158
  7. package/package.json +10 -7
  8. package/.github/workflows/check-openclaw-update.yml +0 -106
  9. package/CHANGELOG.md +0 -602
  10. package/CHANGELOG.vi.md +0 -588
  11. package/docs/SETUP.md +0 -532
  12. package/docs/SETUP.vi.md +0 -439
  13. package/docs/ai-providers.md +0 -144
  14. package/docs/ai-providers.vi.md +0 -144
  15. package/docs/browser-automation-guide.md +0 -207
  16. package/docs/faq.md +0 -63
  17. package/docs/faq.vi.md +0 -63
  18. package/docs/hardware-guide.md +0 -55
  19. package/docs/hardware-guide.vi.md +0 -55
  20. package/docs/install-docker.md +0 -161
  21. package/docs/install-docker.vi.md +0 -161
  22. package/docs/install-native.md +0 -96
  23. package/docs/install-native.vi.md +0 -96
  24. package/docs/preview.png +0 -0
  25. package/docs/skills-plugins-guide.md +0 -126
  26. package/index.html +0 -589
  27. package/old_v510.js +0 -0
  28. package/setup/shared/runtime-gen.js +0 -710
  29. package/style.css +0 -1653
  30. package/upgrade.ps1 +0 -90
  31. package/upgrade.sh +0 -93
  32. /package/{setup → dist/setup}/data/channels.js +0 -0
  33. /package/{setup → dist/setup}/data/header.js +0 -0
  34. /package/{setup → dist/setup}/data/index.js +0 -0
  35. /package/{setup → dist/setup}/data/plugins.js +0 -0
  36. /package/{setup → dist/setup}/data/providers.js +0 -0
  37. /package/{setup → dist/setup}/data/skills.js +0 -0
  38. /package/{setup → dist/setup}/shared/common-gen.js +0 -0
  39. /package/{setup → dist/setup}/shared/docker-gen.js +0 -0
package/CHANGELOG.md DELETED
@@ -1,602 +0,0 @@
1
- # Changelog (English)
2
-
3
- ## [5.5.0] — 2026-04-15
4
-
5
- ### 📄 Scaffold-Based Workspace Docs & OpenClaw 2026.4.14
6
-
7
- - **Scaffold-based generation** — Both Wizard and CLI now call shared scaffold builders from `scaffold-gen.js` instead of inline code, ensuring consistent workspace doc generation across all platforms and modes.
8
- - **Modular workspace docs** — Multi-bot (Telegram relay) deployments now generate `TEAM.md` (team roster & coordination rules) and `RELAY.md` (relay playbook) as separate files. Single-bot deployments do not create these files.
9
- - **Full security rules everywhere** — All generated `AGENTS.md` files now include the complete 4-section security ruleset (File System, API Key, Crypto Wallet, Docker) regardless of OS, deployment mode, or channel type.
10
- - **Removed `.yaml` agent file generation** — OpenClaw Core reads configuration exclusively from `openclaw.json → agents.list`. Orphaned `.yaml` agent files are no longer generated by any flow.
11
- - **Anti-hallucination handoff rules** — Relay-variant `AGENTS.md` now mandates tool-first `react` actions (👍 for every incoming message) and explicitly forbids LLM refusal of cross-agent handoffs.
12
- - **OpenClaw bumped to 2026.4.14** — Includes the new experimental Dreaming memory consolidation system, active-memory recall improvements, Telegram approval button deadlock fix, WebSocket keepalive stability, and idempotency key fix for dreaming narrative jobs.
13
-
14
-
15
- ## [5.4.2] — 2026-04-14
16
-
17
- ### 🐛 Native Script Wizard Fixes
18
-
19
- - **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.
20
-
21
-
22
- ## [5.4.1] — 2026-04-14
23
-
24
- ### 🐛 Docker CLI Generation Fixes
25
-
26
- - **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.
27
- - **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.
28
-
29
- ### 🧹 Automated Uninstall Scripts
30
-
31
- - **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.
32
- - **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.
33
-
34
-
35
- ## [5.4.0] — 2026-04-14
36
-
37
- ### 🗑️ Remove: Telegram + Zalo Combo Channel
38
-
39
- - **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.
40
-
41
- ### 🏗️ Refactor: Multi-Bot Architecture
42
-
43
- - **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.
44
- - **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.
45
- - **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/`.
46
-
47
- ### 🧹 Config Generation Cleanup
48
-
49
- - **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.
50
- - **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.
51
- - **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.
52
-
53
- ### 🤝 Cross-Workspace Rules in AGENTS.md
54
-
55
- - **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.
56
-
57
- ### 🔧 win-bat.js Refactor
58
-
59
- - **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.
60
-
61
-
62
- ## [5.3.5] — 2026-04-12
63
-
64
- ### 🐛 Fix: MEMORY.md Syntax Error in Zalo Workspace Files
65
-
66
- - **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.
67
-
68
- ### 🐟 Improvement: Uninstall Script Written to Project Folder
69
-
70
- - **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`:
71
- - Windows native: `uninstall-openclaw-win.bat` written via `appendBatWriteCommands`
72
- - macOS native: `uninstall-openclaw.sh` written via `appendShWriteCommands`
73
- - VPS/Ubuntu: `uninstall-openclaw-vps.sh` written via `appendShWriteCommands`
74
- - Linux Desktop: `uninstall-openclaw.sh` written via `appendShWriteCommands`
75
- - Docker (all OS): uninstall script included in the generatedFiles ZIP
76
-
77
-
78
-
79
- ### 🐛 Windows Native — Gateway & Workspace Stability
80
-
81
- - **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.
82
- - **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.
83
- - **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.
84
- - **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.
85
- - **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).
86
- - **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.
87
-
88
-
89
- ## [5.3.3] — 2026-04-11
90
-
91
- ### 🧹 Automated Uninstall Scripts
92
-
93
- - **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.
94
- - **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.
95
-
96
-
97
-
98
- ## [5.3.2] — 2026-04-11
99
-
100
- ### 🐛 Windows Native — 9Router Launch Stability
101
-
102
- - **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.
103
- - **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.
104
- - **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.
105
-
106
- ## [5.3.1] — 2026-04-10
107
-
108
- ### 🌟 Zalo Personal DM Policy
109
-
110
- - **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.
111
-
112
-
113
- ## [5.3.0] — 2026-04-11
114
-
115
- ### 🆕 Multi-Channel: Telegram + Zalo Personal Simultaneously
116
-
117
- - **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.
118
- - **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.
119
- - **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.
120
- - **Helper predicates** — Added `hasTelegram(ck)` and `hasZaloPersonal(ck)` functions replacing all literal `channelKey === 'telegram/zalo-personal'` comparisons throughout `cli.js` for cleaner extensibility.
121
- - **Smoke tests updated** — `tests/smoke-cli-logic.mjs` updated to match the new predicate-based assertions (78 checks passing).
122
-
123
- ## [5.2.4] — 2026-04-10
124
-
125
- ### 🐛 Bug Fixes & Developer Tooling
126
-
127
- - **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.
128
- - **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.
129
- - **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.
130
-
131
- ## [5.2.3] — 2026-04-10
132
-
133
- ### 🐛 Bug Fixes & Encoding Improvements
134
-
135
- - **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.
136
- - **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.
137
- - **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]`.
138
- - **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").
139
- - **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.
140
-
141
- ## [5.2.2] — 2026-04-10
142
-
143
-
144
- ### 🐛 Docker & Native PM2 Bug Fixes
145
-
146
- - **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`.
147
- - **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'`.
148
- - **Fix `delete c.gateway.customBindHost`**: A stray `delete` statement was erasing the `customBindHost` key right after setting it. Removed.
149
- - **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.
150
- - **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).
151
-
152
- ## [5.2.1] — 2026-04-09
153
-
154
- ### 🐛 Native Ubuntu/VPS Bug Fixes
155
-
156
- - **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.
157
- - **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.
158
- - **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.
159
- - **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.
160
- - **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.
161
- - **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`.
162
-
163
-
164
- ## [5.2.0] — 2026-04-09
165
-
166
- ### One-Command Upgrade (No Wizard Required)
167
-
168
- - 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.
169
- - Added `upgrade.ps1` for Windows users — double-click in the bot folder to trigger an upgrade. No terminal knowledge required.
170
- - 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.
171
- - All user data is preserved during upgrade: `.env`, `.openclaw/memory/`, sessions, credentials, and 9Router OAuth tokens are never modified.
172
- - Docker mode: patching `Dockerfile` (`OPENCLAW_NPM_SPEC` + `CACHEBUST` refresh) then `docker compose build --no-cache` + `docker compose up -d`.
173
- - Native / PM2 mode: reinstalls `openclaw` + `9router` globals then runs `pm2 restart all`.
174
-
175
-
176
- ## [5.1.15] — 2026-04-08
177
-
178
- ### Native Setup Parity & Windows Wizard Fixes
179
-
180
- - Fixed the Windows native HTML wizard so downloaded `.bat` files always regenerate from the latest UI state before download.
181
- - 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.
182
- - Added `OPENCLAW_STATE_DIR` to native runtime environments so OpenClaw loads the generated config from the project runtime directory.
183
- - Replaced legacy `gateway.bind: "0.0.0.0"` output with the current `bind: "custom"` plus `customBindHost: "0.0.0.0"` format.
184
- - 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`.
185
- - 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.
186
- - 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.
187
- - 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`.
188
- - Expanded smoke coverage for the native runtime path, 9Router sync, provider/token sync, browser install, and Unix project-local startup flows.
189
-
190
- ## [5.1.14] — 2026-04-08
191
-
192
- ### OpenClaw stability and Docker fixes
193
-
194
- - Pinned OpenClaw back to `openclaw@2026.4.5` because the update published on `April 8, 2026` is currently broken.
195
- - Fixed Dockerfile generation for Windows Docker setups to avoid startup failures caused by bad command escaping and invalid `allowedOrigins`.
196
- - Added guidance to use `Node.js 20` through `24`, and to avoid `Node.js 25` for now for better OpenClaw stability.
197
-
198
- ## [5.1.13] — 2026-04-08
199
-
200
- ### 🐛 macOS Install Fixes & Wizard Stability
201
-
202
- - **Fix macOS `mkdir: : No such file or directory`**: `generateSetupScript` was using `\${dir}` / `\${path}` (escaped), which created empty bash variables — now JS-interpolated so actual file paths are written correctly.
203
- - **Fix macOS Docker script**: Added `docker info` daemon check before `docker compose up`; Docker mode now correctly calls `docker compose up` instead of `openclaw gateway run`.
204
- - **Fix macOS Native npm prefix**: Removed `npm config set prefix` which breaks Homebrew-managed Node.js. Now uses `export npm_config_prefix` (per-session env var) + `sudo npm install -g` fallback.
205
- - **Fix `window.__saveBotTabPersona is not a function`**: Added the missing `__saveBotTabPersona` function that HTML was calling but was never defined in `setup.js`.
206
- - **Fix Step 3 Next button in 1-bot mode**: `bindFormEvents` now syncs `cfg-name` input directly to `state.config.botName` and `state.bots[0].name` on every keystroke, then calls `updateNavButtons()` — Next button reacts instantly without requiring navigation.
207
- - **Fix persona per-bot isolation**: `saveBotTabMeta` and `syncBotTabMeta` now save/restore the `cfg-bot-tab-persona` field per-bot. Switching tabs correctly shows/hides each bot's persona; the value is persisted in `state.bots[i].persona` and used correctly in generated `.md` files.
208
- - **Fix cli.js macOS global npm**: `ensureUserWritableGlobalNpm` skips `npm config set prefix` on darwin; `installGlobalPackage` adds `sudo npm install -g` as macOS fallback.
209
-
210
- ## [5.1.12] — 2026-04-07
211
-
212
- ### 🧠 Expanded Skills & Auto-Select Multi-Bot Relay Plugin
213
-
214
- - **3-Column Skill Grid**: Skill cards now display 3 per row instead of 4 — wider cards, better readability.
215
- - **7 New ClawHub Skills**: Added `Web Search`, `Notion`, `Slack` — covering the most common productivity workflows available on the OpenClaw dashboard.
216
- - **Telegram Multi-Bot Relay Auto-Select**: When multiple Telegram bots are selected (botCount ≥ 2), the `telegram-multibot-relay` plugin is automatically checked and written to `openclaw.json → plugins.entries`. Switching back to 1 bot deselects it.
217
- - **Plugin Selections → openclaw.json**: All plugins selected by the user (Voice Call, Matrix, MS Teams, Nostr...) are now injected into `plugins.entries` so the OpenClaw Dashboard receives the correct `enabled` state. Unselected = disabled.
218
- - **Fix Step 3 "Next" disabled**: Removed mandatory `cfg-user-info` requirement (it's optional), fixed multi-bot validation to use `cfg-bot-tab-name`.
219
- - **Fix Step 4 multi-bot token validation**: Now validates `key-bot-token-0` instead of `key-bot-token` in Telegram multi-bot mode.
220
- - **Fix native multi-bot AGENTS.md missing security rules**: Security rules are now appended to each bot's AGENTS.md during native multi-bot deployment.
221
-
222
- ## [5.1.11] — 2026-04-07
223
-
224
- ### 🌟 Zalo Personal DM Policy
225
-
226
- - **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.
227
-
228
- ## [5.1.10] — 2026-04-07
229
-
230
- ### 🌟 Native UI Auto-Approve Bypasser
231
-
232
- - **Native PM2 Auto-Approve Loop**: The strict `pairing required` security feature mandates that all users manually execute an approval command in their terminal for new web dashboard authentications. While Docker deployments already included an automated bypass, the Native setup did not. This release introduces a dedicated `auto-approve` PM2 background daemon that infinitely polls and accepts new device keys, delivering a frictionless, zero-touch login experience identical to Docker deployments.
233
-
234
- ## [5.1.9] — 2026-04-07
235
-
236
- ### 🌟 Strict Schema Fix & WebCrypto UX Improvement
237
-
238
- - **Revert Unrecognized Config Key**: OpenClaw v2026.x.x enforces strict Zod schema validation. The previously injected `requireDeviceIdentity` flag caused an immediate startup crash (`Config invalid`). This version surgically removes the offending flag, ensuring the gateway boots successfully.
239
- - **Dynamic SSH Tunnel Helper**: Since WebCrypto strictly demands a secure context (HTTPS/localhost), accessing the dashboard via raw VPS IP triggers a `1008` error natively. The CLI now dynamically generates and prints the exact `ssh -L 18791:localhost:18791 ...` Port Forwarding command right in the terminal, guaranteeing a flawless, secure login experience for remote server operators without needing SSL.
240
-
241
- ## [5.1.8] — 2026-04-07
242
-
243
- ### 🌟 Dashboard VPS Connectivity & Token Login Fix
244
-
245
- - **Fix `requireDeviceIdentity` Error on VPS**: OpenClaw's WebCrypto E2E identity check inherently demands a secure browser context (HTTPS or localhost). For raw IPv4 VPS deployments, the `crypto.subtle` browser limitation causes WebSocket `code=1008` rejection upon token login. The setup tool now seamlessly injects `requireDeviceIdentity: false` into the `gateway.controlUi` configuration, granting you flawless remote login capabilities over standard HTTP networks.
246
- - **Dynamic Terminal URLs**: The programmatic CLI will now intelligently scan and log your external, reachable IPv4 addresses in the console output alongside the local endpoints. This eliminates confusion and guarantees that the automatically generated tokenized dashboard links are ready for immediate copy-pasting.
247
-
248
- ## [5.1.7] — 2026-04-07
249
-
250
- ### 🌟 Fix Control UI CORS & Native 9Router Path Resolution
251
-
252
- - **Fix Control UI CORS Rejections**: OpenClaw v2026.3.x strict CORS policies blocked remote dashboard access. The setup configuration and Docker patching scripts now automatically resolve all active IPv4 interfaces (`os.networkInterfaces()`) alongside localhost to pre-populate the `gateway.controlUi.allowedOrigins` array. This ensures the Web UI works flawlessly out-of-the-box on remote VPS instances.
253
- - **Improved Native PM2 Path Resolution**: To prevent PM2 `$PATH` lookup failures with `nvm` on Linux, the script now bypasses the OS `9router` binary wrapper entirely. Instead, it computes the exact explicit path using `$(npm root -g)/9router/app/server.js` and executes it directly via the NodeJS interpreter.
254
-
255
- ## [5.1.6] — 2026-04-07
256
-
257
- ### 🐞 Fix PM2 SIGKILL on Native VPS Installs
258
-
259
- - **Fix `PM2 SIGKILL` Error**: Removed the `-t` (interactive TTY) flag from all background `9router` launches. This terminal-dependent flag could cause PM2 to hang and aggressively SIGKILL the spawned process on headless VPS environments.
260
- - **Robust PM2 Sync Helper**: Added a two-stage fallback for the 9Router smart-route sync script. If PM2 encounters `SIGKILL` or memory limits while spawning the sync helper, the setup gracefully falls back to a background `nohup node ... &` process instead of throwing a hard exception. If both fail, it logs a warning but allows the overall OpenClaw setup to finish successfully.
261
-
262
- ## [5.1.5] — 2026-04-06
263
-
264
- ### 🐞 Fix Native PM2 9Router Startup
265
-
266
- - **Fix**: Replaced shell string execution (`execSync`) with strict array arguments (`execFileSync`) when starting 9Router and its background sync script via PM2 on native systems. This guarantees reliable process spawning across both Linux (VPS) and Windows environments without PM2 shell-parsing errors on quotes or path spaces.
267
- - **Improved**: PM2 now explicitly runs the global `9router` binary via `--interpreter none` and the sync script via the current NodeJS runtime using `--interpreter process.execPath`.
268
-
269
- ## [5.1.4] — 2026-04-06
270
-
271
- ### 🐞 Fix CLI Startup BOM Error & Improve Docker Timeout Patch
272
-
273
- - **Fix CLI BOM**: Removed the unexpected byte order mark (BOM) `\uFEFF` at the beginning of `cli.js` which could cause the shebang `#!/usr/bin/env node` to fail resolving or cause SyntaxErrors in certain environments
274
- - **Improve Docker Timeout Patching**: The backend timeout override injection (`300s`) during Docker build now defensively scans all `.js` files in the `openclaw/dist` directory rather than trying to fuzzy-find a specific `gateway-cli-*` hash. This ensures the patch succeeds across different OpenClaw backend builds without noisy console warnings
275
-
276
- ## [5.1.3] — 2026-04-06
277
-
278
- ### 🐜 Fix Docker Compose Variable Interpolation Leak
279
-
280
- The previous base64 fix introduced a regression where the template literal `${Buffer.from(...)}` was mistakenly escaped in the composition script, causing the literal string to leak into `docker-compose.yml` instead of the actual base64 computed value.
281
-
282
- - **Fix**: Precompute the base64 string completely in JavaScript (`const syncScriptBase64 = encodeBase64Utf8(syncScript)`) before injecting it into the compose template
283
- - This guarantees the generated compose file receives the raw base64 string without any template interpolator conflicts
284
- - Also cleans up testing logic validating these fixes
285
-
286
- ## [5.1.2] — 2026-04-06
287
-
288
- ### 🐛 Fix Shell Injection: Sync Script Now Uses Base64 Encoding
289
-
290
- The `node -e "...JSON.stringify(script)..."` approach caused `/bin/sh: Syntax error: "(" unexpected` because `JSON.stringify` produces a double-quoted string that breaks out of the surrounding `node -e "..."` shell argument.
291
-
292
- - **Fix**: sync script content is now **base64-encoded at compose-generation time** using `Buffer.from(script).toString('base64')`
293
- - The generated entrypoint becomes: `node -e "require('fs').writeFileSync('/tmp/sync.js',Buffer.from('<b64>','base64').toString())"`
294
- - Base64 output contains only `[A-Za-z0-9+/=]` — zero shell quoting issues, works in YAML `|` blocks without escaping
295
- - Applies to all compose generation paths: Docker web wizard (`setup.js` × 2) and Docker CLI (`cli.js` × 2)
296
-
297
- ## [5.1.1] — 2026-04-06
298
-
299
- ### 🔧 9Router Smart-Route Sync — Stable via API
300
-
301
- Fixed a critical bug where the sync script could not detect active providers, causing all requests to fall back to `openai` (resulting in `404 No active credentials`).
302
-
303
- - **Root cause**: sync script read `db.providerConnections` from `db.json`, but this field does not exist in 9Router v0.3.79+ — connections are only available via the REST API
304
- - **Fix**: sync script now calls `fetch('http://localhost:20128/api/providers')` → `d.connections[]` to detect active providers dynamically
305
- - **Fix**: replaced fragile `cat << 'CLAWEOF'` heredoc injection (which caused `const p=undefined`) with `node -e require('fs').writeFileSync(...)` — zero quoting issues in YAML+shell
306
- - **Fix**: `build9RouterSmartRouteSyncScript()` in CLI docker flow now correctly passes `'/root/.9router/db.json'` as the db path
307
- - Applies to all three sync script locations: Docker web wizard (`setup.js`), Docker CLI (`cli.js`), and native (`cli.js`)
308
-
309
- ### 📱 Zalo Pairing — Auto-Approve During Gateway Run
310
-
311
- - Previously, auto-approve only ran during the initial login flow; new pairing requests while the gateway was already running were silently ignored
312
- - **Fix**: `openclaw gateway run` for Zalo Personal now pipes stdout/stderr and auto-calls `openclaw pairing approve zalouser <code>` whenever a new pairing code is detected
313
-
314
- ### 🧹 Cleaner Docker CLI Output
315
-
316
- - Removed redundant post-setup instructions (`docker compose build`, `openclaw gateway`, PM2 commands) that appeared after Docker auto-build; Docker mode is self-contained and needs no manual follow-up steps
317
-
318
- ## [5.1.0] — 2026-04-07
319
-
320
- ### 🤖 Zalo Personal Login Improvements
321
-
322
- - Zalo Personal now uses the direct `zalouser` login flow on both native and Docker.
323
- - Setup prints the QR path plus exact login/copy commands, so users can get in fast without `openclaw onboard`.
324
- - Docker QR login now targets the generated `ai-bot` compose service instead of brittle container names.
325
-
326
- ## [5.0.9] — 2026-04-06
327
-
328
- ### 🚀 Native Install Mode — No Docker Required
329
-
330
- OpenClaw now supports **native (non-Docker) installation** on Windows, Linux, macOS, VPS, and shared hosting. Users who prefer not to use Docker can deploy the bot directly on their machine.
331
-
332
- - **CLI native mode** — new deployment mode selector: `docker` (default) or `native`
333
- - **OS-specific startup scripts** auto-generated:
334
- - 🪟 **Windows** → `setup-openclaw-win.bat` (double-click install)
335
- - 🐧 **Linux / macOS** → `setup-openclaw-linux.sh`
336
- - 🖥️ **VPS / Ubuntu** → `setup-openclaw-vps.sh` (PM2 background process)
337
- - 🏠 **Shared Hosting / cPanel** → `setup-openclaw-hosting.sh` + `ecosystem.config.cjs`
338
- - **Web Wizard updated** — Deploy Mode toggle (Docker / Native) with OS sub-selection cards
339
- - **Dynamic host URLs** — Ollama and 9Router URLs switch automatically:
340
- - Docker mode: `http://ollama:11434` / `http://9router:20128/v1`
341
- - Native mode: `http://localhost:11434` / `http://localhost:20128/v1`
342
- - **Node.js 18+ gate** — Native mode enforces minimum Node.js version at setup time
343
- - **Test scripts** — `test-native-install.bat` (Windows) and `test-native-install.sh` (Linux/macOS)
344
-
345
- ### 🤖 Gemma 4 Model Updates
346
-
347
- - **4 Gemma 4 variants** available via Ollama: `gemma4:e2b` (~4-6 GB), `gemma4:e4b` (~8-10 GB), `gemma4:26b` (~18-24 GB), `gemma4:31b` (~24+ GB)
348
- - Auto-pull selected Gemma 4 variant on first `docker compose up` (container timeout extended to 15 min)
349
- - Raised Ollama timeout to **300 seconds** to handle large model inference
350
- - Added `OLLAMA_NUM_PARALLEL=1` and `OLLAMA_KEEP_ALIVE=24h` to Docker sidecar
351
-
352
- ### 🤖 Multi-Bot Deployment (up to 5 Telegram bots per workspace)
353
-
354
- OpenClaw now supports deploying **multiple independent Telegram bots** from a single setup—each with its own identity, slash command, AI personality, and isolated workspace directory.
355
-
356
- - **Deploy 1–5 bots in one go** — Web Wizard and CLI both support multi-bot configuration
357
- - **Isolated workspaces** — each bot gets its own `botN/` directory with a separate `.env` and `.openclaw/` config, preventing any token or configuration collision
358
- - **Port auto-assignment** — ports start at `18791` and increment per bot (`18791`, `18792`, ...) to avoid host binding conflicts
359
- - **Multi-service Docker Compose** — automatically generates a `docker-compose.yml` with one service per bot, plus a shared provider container (9Router or Ollama)
360
- - **Department Room Model** — when bots share a Telegram group they operate like a professional team:
361
- - 🤫 **Silent by default** — bots react with emoji (👍 ❤️) to casual messages but never spam replies
362
- - 📣 **@mention or /slash triggers** — only the addressed bot responds, like calling a colleague by name in a meeting room
363
- - 🗃️ **Shared workspace** — all bots read from a common workspace folder and can collaborate on tasks, files, and reports
364
- - **botGroup config** injected into each bot's `openclaw.json` so they are aware of each other's names and slash commands at runtime
365
-
366
- ### 🔗 Telegram Group ID Helper
367
-
368
- Getting the Telegram Group ID is now frictionless:
369
-
370
- - **Web Wizard**: "Đã có group" card now shows an inline `Lấy Group ID` button that opens **@userinfobot** directly, with step-by-step instructions (forward a group message → bot replies with Chat ID)
371
- - **CLI**: selecting "existing group" prints an interactive guide with numbered steps and a direct link to `https://t.me/userinfobot`
372
-
373
- ### 🎨 UI Refinements
374
-
375
- - **Group option selector** with **two interactive cards** with icon, description, hover glow, and animated selection checkmark
376
- - Card active state: green tint + border for "create later", indigo tint + border for "existing group"
377
- - Group ID input row includes inline helper button — no more hunting for documentation
378
-
379
- ## [5.0.0] — 2026-04-04
380
-
381
- ### 🚀 Gemma 4 Support — Google's Newest Open Model
382
-
383
- OpenClaw v5.0.0 adds **support for Gemma 4**, Google DeepMind's brand-new open-weights model family released April 2, 2026.
384
-
385
- - **Gemma 4 available in 3 sizes via Ollama** — `gemma4:4b` (~6 GB RAM), `gemma4` default (~10 GB), `gemma4:27b` (~18 GB)
386
- - **Zero manual install** — When you select Local Ollama + a Gemma 4 model, the setup now **auto-generates an `ollama` sidecar service** in `docker-compose.yml`. Docker pulls the model automatically on first `docker compose up`. No separate Ollama installation needed.
387
- - **OLLAMA_HOST auto-configured** — Points to the Docker sidecar (`http://ollama:11434`) instead of the host machine.
388
- - **Full model list updated** — Added `gemma4`, `gemma4:27b`, `gemma4:4b` to the Ollama provider in both CLI and Web Wizard.
389
-
390
- ### 📋 Hardware Requirements for Gemma 4
391
-
392
- | Model | Min RAM/VRAM (4-bit) | Recommended |
393
- | ------------------ | -------------------- | ----------------------------- |
394
- | `gemma4:4b` | ~6 GB | Laptop, Mac M1/M2 |
395
- | `gemma4` (default) | ~10 GB | PC 16 GB RAM |
396
- | `gemma4:27b` | ~18 GB | Workstation 32 GB / GPU 24 GB |
397
-
398
- > Gemma 4 is **free, open-weights, Apache 2.0**. No API key required — runs 100% locally via Docker.
399
-
400
- ## [4.1.4] — 2026-04-03
401
-
402
- ### ✨ Improvements
403
-
404
- - CLI/Wizard parity: synchronized all skills (Browser Automation, Memory, RAG, Code Interpreter, etc.)
405
- - Browser Automation: added Desktop (Host Chrome) vs Server (Headless Chromium) mode selection for Linux/Ubuntu
406
- - Fixed Dockerfile WORKDIR issue causing build failures on Linux
407
- - Skills now install at container **runtime** (not build-time) to avoid ClawHub auth issues
408
- - Dynamic TOOLS.md: auto-generated listing all installed skills with hints
409
- - Added `browser-tool.js` (Desktop mode) and `BROWSER.md` for both modes
410
- - Skills registration in `openclaw.json → skills.entries` at setup time
411
- - Email SMTP config prompts and `.env` injection
412
- - Single-source versioning via `bump-version.mjs` — one command to update all files
413
-
414
- ## [4.1.3] — 2026-04-02
415
-
416
- ### ✨ Improvements
417
-
418
- - CLI/Wizard parity: synchronized all skills (Browser Automation, Memory, RAG, Code Interpreter, etc.)
419
- - Browser Automation: added Desktop (Host Chrome) vs Server (Headless Chromium) mode selection
420
- - Fixed Dockerfile WORKDIR issue on Linux builds
421
- - Dynamic TOOLS.md: auto-generated based on selected skills
422
- - Added browser-tool.js for Desktop mode, BROWSER.md for both modes
423
- - Skills registration in `openclaw.json → skills.entries` at setup time
424
- - Email SMTP config prompts and env var injection
425
-
426
- All notable changes to this project will be documented in this file.
427
-
428
- ## [4.1.2] — 2026-04-01
429
-
430
- ### Fixed
431
-
432
- - **CLI setup**: Fixed `docker-compose.yml` generation syntax error for 9Router (`yaml: while scanning a simple key` issue) by using bash heredoc block scalars instead of single-line escaping for the `syncComboScript`.
433
-
434
- ## [4.1.0] — 2026-04-01
435
-
436
- ### 🚀 Stable 9Router Smart Routing
437
-
438
- - **Clean Database Initialize**: 9Router default combos are now 100% clean (`smart-route` only). Removed legacy injection of GPT-4o/Claude/Gemini to favor pure dynamic routing.
439
- - **Headless UI Toggling**: The setup wizard and CLI no longer display verbose model lists for 9Router; they now cleanly default to Auto Route (`smart-route`) and let the dynamic `PREF` algorithm handle failovers.
440
-
441
- ## [4.0.9] — 2026-04-01
442
-
443
- ### 🔄 Dynamic Smart Route (Real-time Provider Sync)
444
-
445
- - **Zero-Waste Routing**: The `smart-route` combo is no longer a static list of 100+ models. A background sync loop now queries 9Router's `/api/providers` every 30 seconds and dynamically builds the combo from **only connected + enabled providers**. This eliminates `404 No active credentials` errors entirely.
446
- - **Instant Provider Toggle**: Toggle providers on/off in the 9Router Dashboard — the combo updates automatically within 30s. No restart required.
447
- - **Smart Mapping**: Full provider-to-model mapping covering 25+ providers (Codex, Claude Code, GitHub Copilot, Cursor, Kilo, Cline, Gemini CLI, iFlow, Qwen, Kiro, Ollama, GLM, MiniMax, DeepSeek, xAI, Mistral, Groq, etc.).
448
-
449
- ### 🐳 Docker Auto-Install
450
-
451
- - **Zero-Prerequisite Setup**: `npx create-openclaw-bot` now detects if Docker is installed. If missing, it offers to install automatically via `winget` (Windows), `brew` (macOS), or the official Docker install script (Linux).
452
- - **Guided Recovery**: Clear instructions and download links if automatic installation fails.
453
-
454
- ## [4.0.8] — 2026-03-31
455
-
456
- ### ✨ 9Router Stability & Ollama Cloud
457
-
458
- - **Stable 9Router Integration (Zero Config)**: The 9Router proxy is now fully stabilized and runs securely within the Docker network via `sk-no-key`. External configuration (API keys, manual routing) is removed from `.env` and elegantly managed via the [9Router Dashboard](http://localhost:20128/dashboard).
459
- - **Expanded Model Connectivity**: Added comprehensive support for Ollama Cloud models (_Qwen 3.5, GLM-5, MiniMax, GPT-OSS_), Kiro Haiku, Qwen Flash, and extended iFlow free tiers.
460
- - **Smart Routing Injection**: The configuration dynamically injects the `smart-route` combination to balance logic workload across Codex, Claude Code, Gemini, and iFlow.
461
-
462
- ### 🧹 Clean Workspace & Cross-Platform Auto-Setup
463
-
464
- - **Zero-Clutter Generation**: Eliminated all redundant `.env.example` and static `docker-compose` sample templates. The `.bat` / CLI wizard now dynamically constructs the precise Docker environment necessary.
465
- - **Cross-Platform Auto Browser**: Added a native macOS/Linux `start-chrome-debug.sh` boot script alongside the Windows `.bat`, providing instant 1-click Chrome Debug Mode initialization.
466
- - **CLI Feature Parity**: `npx create-openclaw-bot` now prompts for User Identity and Bot Persona, matching the GUI Web UI capabilities exactly.
467
-
468
- ## [4.0.1] — 2026-03-31
469
-
470
- ### ✨ Automation (Auto-create install dir) & NPM CLI
471
-
472
- - **One-Command Install (npx)**: The `create-openclaw-bot` CLI package is now published to NPM. Windows, Linux, and Mac users can simply run `npx create-openclaw-bot` to setup everything via an interactive terminal flow.
473
- - **Auto Setup & Docker Start**: The deployment script (`.bat` / CLI) is completely overhauled. Once configured, Docker compose automatically builds and spins up the Bot instance seamlessly.
474
- - **Improved UI Setup**: Cleaned up the Step 4 file previews. Revamped the Zalo Bot API channel UI card to use the official vector SVG (popping blue colors over the frosted glass background).
475
- - **Safety First**: Removed Antigravity (AG) models from the 9router Proxy Models option to prevent permanent Google AI Ultra abuse bans. Added bright red warnings on the Setup GUI. Updated crediting for thesvg.org.
476
-
477
- ## [4.0.0] — 2026-03-30
478
-
479
- ### ✨ New Features & Updates
480
-
481
- - **Full English Localization** — Completed all English translations for the Setup Wizard (Buttons, Labels, Step 4 Output).
482
- - **Language Toggle Relocation** — Moved the language toggle (VI/EN) to a more visible and accessible location.
483
- - **Setup UI/UX Fixes** — Improved the Setup Wizard UI for Browser Automation and resolved display issues (such as the undefined model badge).
484
- - **Reference Error Fixes** — Fixed several Reference Errors during the setup execution.
485
-
486
- ## [3.0.2] — 2026-03-29
487
-
488
- ### ✨ 9Router Smart Proxy Expansion
489
-
490
- - **9Router db.json Stability** — Updated the `db.json` injection logic for 9Router via entrypoint to prevent "No such file or directory, lstat db.json" errors.
491
- - **Flagship Fallback Proxy** — Configured "Smart Proxy" with a rotating list of the most powerful flagship LLMs from Codex, Antigravity, Claude Code, and Github Copilot.
492
- - **Setup Wizard Customization** — The wizard now displays a complete list of providers/models, setting the Smart Proxy as the preferred default to automatically resolve "404 No Active Credentials" errors.
493
-
494
- ## [3.0.1] — 2026-03-29
495
-
496
- ### ✨ New Features
497
-
498
- - **Wizard UI Redesign (Step 2)** — Brought AI Provider/Model selection to the top, followed by Identity, Personality, Security Rules, and Extensions.
499
- - **User Info Textarea** — Users can input information about themselves → injected into `USER.md` for bot personalization.
500
- - **Editable Security Rules** — Displays default security rules, users can edit them → injected into `AGENTS.md`.
501
- - **Section Dividers** — Added icon dividers between config groups (🤖 🔐 🧩).
502
-
503
- ### 🐛 Bug Fixes
504
-
505
- - **Skills Auto-enable** — Selecting a skill now automatically registers it in `openclaw.json` → `skills.entries` (enabled: true). Previously, it only set up the Dockerfile without registering, making the bot ignore the skill.
506
- - **Skills Env Injection** — Skills requiring API keys (Tavily, SMTP…) now automatically inject env vars into `skills.entries`.
507
-
508
- ### 🎨 UI/UX
509
-
510
- - Identity grid changed to 3 columns (Name, Role, Emoji) — removed Vibe (merged into System Prompt).
511
- - Emoji input fix: assigned `form-input--emoji` class, matching the height of other inputs.
512
- - System Prompt label changed to "Personality, Vibe & Response Rules".
513
- - Responsive mobile: Name is full width, Role + Emoji are side-by-side.
514
- - Security textarea is readonly by default, equipped with a "✏️ Edit" / "🔒 Lock" toggle button.
515
-
516
- ### 🔧 Technical
517
-
518
- - `state.config.userInfo` — new field, saved from the `cfg-user-info` textarea.
519
- - `state.config.securityRules` — editable, defaults per language (vi/en).
520
- - `DEFAULT_SECURITY_RULES` constant established with vi/en templates.
521
- - `clawConfig.skills.entries` generated dynamically from selected skills.
522
- - Language toggle now updates both the system prompt and security rules dynamically.
523
-
524
- ---
525
-
526
- ## [3.0.0] — 2026-03-28
527
-
528
- ### ✨ New Features
529
-
530
- - **9Router Integration** — AI proxy, no API key required, multi-container Docker (`docker-compose.yml` 2 services).
531
- - **Skills System (ClawHub)** — 8 agent capabilities: Web Search, Browser Automation, Memory, RAG, Image Gen, Bot Scheduler, Code Interpreter, Email Assistant.
532
- - **Plugins System (npm)** — 4 runtime extensions: Voice Call, Matrix, MS Teams, Nostr.
533
- - **Browser Automation** — Full Chrome Debug Mode support (socat proxy, agent-browser, Playwright engine).
534
- - **Task Scheduler** — Windows Scheduled Task auto-starts Chrome Debug mode on logon (10s delay).
535
- - **Skill-aware .env** — `.env` template automatically includes env vars for skills requiring API keys (Tavily, SMTP, Flux...).
536
- - **Post-setup Management** — Added guide for adding/removing skills/plugins post-setup via `docker exec`.
537
-
538
- ### 🎨 UI/UX
539
-
540
- - Separated Skills (4-column grid) from Plugins — clearer interface layout.
541
- - Skill cards now show notes (⚙️) for skills that require extra setup.
542
- - Added Browser Automation notice card in Step 4 featuring `.bat` + `.ps1` scripts.
543
- - Management guide card (🔧) featuring `docker exec` commands.
544
-
545
- ### 📚 Documentation
546
-
547
- - `docs/browser-automation-guide.md` — Included Browser Automation usage guide for users.
548
- - `docs/skills-plugins-guide.md` — Synthesized all skills/plugins + setup steps + list of required env vars.
549
- - README.md / README.vi.md — Updated with 9Router, Skills/Plugins, and new FAQs.
550
-
551
- ### 🔧 Technical
552
-
553
- - `state.config.skills[]` + `state.config.plugins[]` are managed independently.
554
- - `openclaw.json` dynamically injects `browser` config when Browser skill is selected.
555
- - Dockerfile conditional logic: socat, agent-browser included only when necessary.
556
- - docker-compose: added `extra_hosts` block for both 9Router and non-9Router setups.
557
-
558
- ---
559
-
560
- ## [2.0.0] — 2026-03-27
561
-
562
- ### ✨ New Features
563
-
564
- - **Setup Wizard UI** — Interactive web wizard (`index.html`) to configure OpenClaw bots visually.
565
- - **Multi-Channel Support** — Added support for Telegram, Zalo Bot API, and Zalo Personal channels.
566
- - **Multi-Provider AI** — Support for Google Gemini, Anthropic Claude, OpenAI/Codex, OpenRouter, and Ollama (local).
567
- - **Plugin System** — Modular plugin grid supporting Browser Automation, Scheduler, Memory, Web Search, RAG, and Image Gen.
568
- - **Config Generation** — Automatically generates `openclaw.json`, `agent.yaml`, `Dockerfile`, and `docker-compose.yml`.
569
- - **Language Toggle** — VI/EN toggle switch utilizing SVG flag icons.
570
- - **Brand Logos** — Implemented high-quality SVG logos from [thesvg.org](https://thesvg.org) for all providers and channels.
571
-
572
- ### 🎨 Design
573
-
574
- - Dark-themed glassmorphism UI overlaid with animated multi-layer gradients.
575
- - Provider cards designed with unique colored icon backgrounds (Gemini purple, Claude orange, OpenAI green, OpenRouter violet, Ollama cyan).
576
- - Auto-expanding System Prompt textarea without internal scroll.
577
- - Developed a shimmer animation on the title and glow effects on selected cards.
578
-
579
- ### 📚 Documentation
580
-
581
- - `README.md` / `README.vi.md` — Authored full bilingual docs, including a multi-provider comparison table.
582
- - `SETUP.md` / `SETUP.vi.md` — Provided a technical setup guide specifically intended for AI agents.
583
- - Security directive notice: Clarified that System Prompt determines personality only, while the framework enforces security rules.
584
-
585
- ### 🔒 Security
586
-
587
- - Enforced a No-credentials-in-UI policy — instructing users to create `.env` files locally.
588
- - Dynamic credential instructions presented conditionally per provider and channel.
589
- - OpenClaw framework automatically enforces default system security rules.
590
-
591
- ---
592
-
593
- ## [1.0.0] — 2026-03-26
594
-
595
- ### Initial Release
596
-
597
- - Published basic OpenClaw setup guide.
598
- - Configured Telegram-only support.
599
- - Configured Google Gemini single provider support.
600
- - Included manual configuration file setup instructions.
601
-
602
-