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.vi.md DELETED
@@ -1,588 +0,0 @@
1
- # Changelog (Tiếng Việt)
2
-
3
- ## [5.5.0] — 2026-04-15
4
-
5
- ### 📄 Tái Cấu Trúc Workspace Docs & OpenClaw 2026.4.14
6
-
7
- - **Scaffold-based generation** — Cả Wizard lẫn CLI giờ gọi chung scaffold builders từ `scaffold-gen.js` thay vì viết inline, đảm bảo workspace docs đồng nhất trên mọi nền tảng và chế độ cài đặt.
8
- - **Tách file workspace docs** — Triển khai multi-bot (Telegram relay) giờ sinh `TEAM.md` (roster đội + quy tắc phối hợp) và `RELAY.md` (sổ tay chuyển tiếp) thành file riêng. Single-bot không tạo các file này.
9
- - **Quy tắc bảo mật đầy đủ mọi nơi** — Tất cả `AGENTS.md` giờ có đủ 4 section bảo mật (File hệ thống, API Key, Ví Crypto, Docker) bất kể OS, chế độ cài đặt hay kênh chat.
10
- - **Xóa file `.yaml` agent** — OpenClaw Core chỉ đọc config từ `openclaw.json → agents.list`. File `.yaml` orphan không còn được sinh ra.
11
- - **Chống ảo giác handoff** — `AGENTS.md` variant relay bắt buộc `react` action (👍 mỗi tin nhắn đến) và cấm từ chối chuyển tiếp giữa các agent.
12
- - **Nâng OpenClaw lên 2026.4.14** — Bao gồm hệ thống Dreaming (thử nghiệm), cải thiện active-memory, sửa deadlock nút approve Telegram, ổn định WebSocket keepalive.
13
-
14
-
15
- ## [5.4.2] — 2026-04-14
16
-
17
- ### 🐛 Sửa lỗi Script Cài Tự Động (Web Wizard)
18
-
19
- - **Trùng lặp cài đặt Plugin**: Đã sửa thuật toán bị lỗi khiến plugin Telegram Multi-Bot Relay bị tiêm vào lệnh cài đặt terminal tận hai lần trong các script `setup-openclaw-*.bat/sh`. Điều này khắc phục lỗi crash "plugin already exists" do vòng lặp cài cùng một gói package.
20
-
21
-
22
- ## [5.4.1] — 2026-04-14
23
-
24
- ### 🐛 Sửa Lỗi Build Dockerfile
25
-
26
- - **Phục hồi hỗ trợ Trình duyệt**: Đưa trở lại gói lệnh cài đặt `xvfb` APT và việc thực thi Xvfb quay trong nền (`Xvfb :99 -screen...`) vào Dockerfile `CMD`. Nó giúp các bot chạy Playwright có giao diện headful khởi động mà không bị crash vì thiếu khung màn hình.
27
- - **Sửa lỗi REST API CORS**: Khôi phục script tiêm dải IP nội bộ lúc runtime. Script này tự động lấy các bridge IP nội bộ của Docker (`172...`) để cấp phép vào mục `allowedOrigins` cho `openclaw.json` ngay lúc container khởi động, sửa hoàn toàn lỗi bị block CORS 403 không vào được Web UI.
28
-
29
- ### 🧹 Tự Động Tạo Script Gỡ Cài Đặt
30
-
31
- - **Tính Năng Wizard UI**: Giao diện HTML wizard giờ đây sẽ tự động tải thêm một file script dọn dẹp hệ thống (`uninstall-openclaw-*.bat/sh`) mỗi khi tải file cài đặt cho Native hoặc Docker.
32
- - **Dọn Dẹp Triệt Để**: Các script này giúp dừng sạch sẽ các tiến trình nền của 9Router/OpenClaw, gỡ cài đặt các gói npm toàn cầu và xoá an toàn thư mục project cũng như data `.9router`, giúp bạn làm sạch máy để cài đặt lại dễ dàng.
33
-
34
-
35
- ## [5.4.0] — 2026-04-14
36
-
37
- ### 🗑️ Xóa: Kênh Combo Telegram + Zalo
38
-
39
- - **Tạm ngưng và xóa chế độ `telegram+zalo-personal` khỏi cả Web Wizard lẫn CLI.** Card kênh bị ẩn trong `index.html`, xóa khỏi `channels.js` và `data/index.js`, toàn bộ logic điều kiện liên quan đã được dọn sạch khỏi `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` và `cli.src.js`. Combo mode sẽ được thiết kế lại trong bản phát hành tương lai.
40
-
41
- ### 🏗️ Tái cấu trúc: Kiến Trúc Multi-Bot
42
-
43
- - **Gộp flag multi-bot** — `isTelegramMultiBot`, `isSharedMultiBot` và `isMultiBotWizard` đã được hợp nhất thành một biến `isMultiBot` duy nhất xuyên suốt codebase. Giảm độ phức tạp và loại bỏ các nhánh code phân kỳ.
44
- - **Sửa đường dẫn `agentDir`** — `agentDir` trong `openclaw.json` được tạo ra nay được đặt đúng là `.openclaw/agents/{slug}/agent` (tương đối với `OPENCLAW_HOME`). Trước đây dùng đường dẫn sai ở root project gây lỗi double-prefix khi runtime.
45
- - **Xóa thư mục `agents/` thừa ở gốc project** — OS scripts không còn cố tạo `mkdir agents/` ở root; toàn bộ file agent được tạo trong `.openclaw/agents/`.
46
-
47
- ### 🧹 Dọn Dẹp Config Generation
48
-
49
- - **Xóa `auth-profiles.json` per-agent khi dùng 9Router/proxy** — Khi provider là proxy, không còn sinh per-agent `auth-profiles.json` nữa. File này chỉ được tạo cho các provider API trực tiếp khi cần xác thực riêng từng agent.
50
- - **Xóa `.env` trong native deployment** — Token bot và API key cho native mode giờ được quản lý qua `openclaw channels login` / 9Router dashboard. Không còn tự sinh `.env` trong native scripts để tránh rò rỉ credentials.
51
- - **Xóa `models.json` per-agent cho Ollama (CLI)** — Config model Ollama đã khai báo trong `openclaw.json → agents.defaults.model`. File `models.json` thừa trong `agents/{id}/agent/` không còn được sinh nữa.
52
-
53
- ### 🤝 Quy Tắc Cross-Workspace trong AGENTS.md
54
-
55
- - **`AGENTS.md` multi-bot có thêm mục "Workspace Chéo"** — Ở chế độ multi-bot (relay), `AGENTS.md` của mỗi bot có thêm mục `🤝 Workspace Chéo (Multi-Agent)` liệt kê đường dẫn workspace của các bot anh em. Quy tắc: bot được phép đọc `IDENTITY`, `SOUL`, `MEMORY` của bot khác để hiểu ngữ cảnh chung; không được xóa hoặc ghi đè file workspace của bot khác trừ khi user yêu cầu rõ ràng.
56
-
57
- ### 🔧 Tái Cấu Trúc win-bat.js
58
-
59
- - **Tách `appendGatewayStart()` và `appendDashboardInfo()` thành helper riêng** — Các đoạn code khởi động gateway PowerShell và in URL dashboard được lặp đi lặp lại đã được đóng gói vào 2 hàm helper cục bộ trong `generateWinBat`, giảm khoảng 50 dòng code.
60
-
61
-
62
- ## [5.3.5] — 2026-04-12
63
-
64
- ### 🐛 Sửa: Lỗi Syntax MEMORY.md trong Workspace Zalo
65
-
66
- - **Sửa: `SyntaxError: Unexpected token ':'` trong `setup.js`** — Patch TOOLS.md trước đó được chèn sau nhánh `vi` của ternary MEMORY.md, khiến nhánh `: en-value` bị bỏ lơ phía dưới. VS Code hiển thị badge đỏ số "7" trên `setup.js`. Đã fix; hai nhánh MEMORY.md nay liền kề nhau, TOOLS.md theo sau như property riêng biệt.
67
-
68
- ### 🐟 Cải Tiến: Script Gỡ Cài Đặt Nằm Trong Thư Mục Project
69
-
70
- - **Tất cả 4 luồng native OS + Docker ZIP** giờ đều có sẵn file `uninstall-*.{bat,sh}` **trong thư mục project** ngay sau khi setup chạy xong. Trước đây uninstall chỉ có thể tải riêng từ trình duyệt. Pattern giống `start-chrome-debug.bat` / `.sh`:
71
- - Windows native: `uninstall-openclaw-win.bat` viết qua `appendBatWriteCommands`
72
- - macOS native: `uninstall-openclaw.sh` viết qua `appendShWriteCommands`
73
- - VPS/Ubuntu: `uninstall-openclaw-vps.sh` viết qua `appendShWriteCommands`
74
- - Linux Desktop: `uninstall-openclaw.sh` viết qua `appendShWriteCommands`
75
- - Docker (mọi OS): uninstall script có trong ZIP generatedFiles
76
-
77
-
78
- ## [5.3.4] — 2026-04-12
79
-
80
- ### 🐛 Windows Native — Ổn Định Gateway & Workspace
81
-
82
- - **Sửa: Terminal tự đóng sau khi khởi động gateway** — `call openclaw gateway run` chặn terminal vô thời hạn; đóng cửa sổ khiến gateway chết theo. Gateway giờ được mở trong **cửa sổ CMD riêng biệt** qua PS1 launcher (giống 9Router), setup terminal đóng gọn mà gateway vẫn chạy độc lập.
83
- - **Sửa: Thiếu `call` trước `openclaw gateway stop`** — Lệnh dừng gateway trước khi khởi động lại thiếu từ khóa `call`, có thể khiến bat script không trả quyền điều hành sau khi stop. Đã thêm `call openclaw gateway stop 2>nul` cho tất cả luồng.
84
- - **Sửa: Tên workspace** — Single-bot deployment trước đây dùng chung `.openclaw/workspace`. Giờ tất cả agent đều có thư mục riêng theo tên agent ID: `.openclaw/workspace-{agentId}` (ví dụ `workspace-williams`, `workspace-luna`). Tránh xung đột và đồng bộ với cấu trúc `agents/{agentId}`.
85
- - **Cải tiến: TOOLS.md đầy đủ hơn cho mọi bot** — File `TOOLS.md` được tạo ra giờ bao gồm cả mục danh sách skills + quy ước VÀ section "Ghi chú thiết lập của bạn" theo chuẩn OpenClaw, giúp người dùng có điểm xuất phát rõ ràng để ghi lại cấu hình môi trường riêng.
86
- - **Cải tiến: AGENTS.md cho Zalo bot bổ sung quy tắc bảo mật** — `AGENTS.md` sinh ra cho bot Zalo Personal (kiểu Luna) giờ có thêm block `🔐 Quy Tắc Bảo Mật — BẮT BUỘC` giống hệt bot Telegram (giới hạn file-system, bảo vệ credentials, ví crypto, mount Docker).
87
- - **Cải tiến: Thêm TOOLS.md cho Zalo bot** — Workspace của bot Zalo giờ cũng có file `TOOLS.md` cùng cấu trúc với bot Telegram.
88
-
89
-
90
- ## [5.3.3] — 2026-04-11
91
-
92
- ### 🧹 Tự Động Tạo Script Gỡ Cài Đặt
93
-
94
- - **Tính Năng Wizard UI**: Giao diện HTML wizard giờ đây sẽ tự động tải thêm một file script dọn dẹp hệ thống (`uninstall-openclaw-*.bat/sh`) mỗi khi tải file cài đặt cho Native hoặc Docker.
95
- - **Dọn Dẹp Triệt Để**: Các script này giúp dừng sạch sẽ các tiến trình nền của 9Router/OpenClaw, gỡ cài đặt các gói npm toàn cầu và xoá an toàn thư mục project cũng như data `.9router`, giúp bạn làm sạch máy để cài đặt lại dễ dàng.
96
-
97
-
98
-
99
- ## [5.3.2] — 2026-04-11
100
-
101
- ### 🐛 Windows Native — Sửa Lỗi Khởi Động 9Router
102
-
103
- - **Sửa: Bỏ flag `-l` (chế độ đọc stdin) khỏi lệnh launch 9Router** — `resolveNative9RouterDesktopLaunch()` trước đây truyền `-l` khiến 9Router chạy ở chế độ REPL tương tác. Khi chạy ẩn (không có TTY), tiến trình bị treo chờ stdin mà không bao giờ nhận được. Đã bỏ flag; 9Router giờ khởi động ổn định ở nền trên Windows, macOS desktop và mọi luồng native không phải VPS.
104
- - **Sửa: Pre-seed `DATA_DIR/.9router/db.json` với `requireLogin: false` trước khi 9Router khởi động** — Nếu `db.json` chưa tồn tại khi 9Router khởi chạy, nó dùng đường dẫn mặc định của riêng mình (`~/.9router`) và đặt `requireLogin` là `true`, gây ra màn hình login khi mở dashboard. CLI wizard giờ tạo thư mục `.9router` và ghi sẵn `db.json` (với `requireLogin: false`) **trước** khi spawn 9Router, khớp với hành vi của file `setup-openclaw-win.bat` đã được sửa.
105
- - **Không thay đổi luồng PM2/VPS** — Fix chỉ áp dụng cho path spawn nền của desktop (`osChoice !== 'vps'`). Người dùng VPS vẫn dùng luồng PM2 `startNative9RouterPm2` hiện tại, không bị ảnh hưởng.
106
-
107
- ## [5.3.1] — 2026-04-10
108
-
109
- ### 🌟 Đổi Chính Sách Bảo Mật Zalo Personal
110
-
111
- - **Thả Ga Inbox Zalo Cầm Tay**: Lược bỏ rào cản duyệt bảo mật của Zalo Personal. Thông số `dmPolicy` trên cài đặt Zalo cá nhân đã được chuyển mặc định từ `pairing` sang `open`. Bây giờ bất cứ ai trên mạng lưới Zalo nhắn tin vào tài khoản của Bot đều sẽ được AI tự động tiếp đón ngay lập tức thay vì bị chặn lại chờ bạn duyệt lệnh kết nối E2E!
112
-
113
-
114
- ## [5.3.0] — 2026-04-11
115
-
116
- ### 🆕 Đa Kênh: Telegram + Zalo Personal Cùng Lúc
117
-
118
- - **Tuỳ chọn kênh combo** — Thêm `telegram+zalo-personal` vào CLI wizard (menu `select`) và web wizard (channel card). Chọn option này để cấu hình 1 bot nhận tin nhắn từ cả Telegram **và** Zalo Personal cùng lúc trong 1 config duy nhất.
119
- - **Tự inject `plugins.entries.zalouser`** — Khi chọn bất kỳ kênh Zalo Personal nào, `openclaw.json` giờ tự thêm `plugins.entries.zalouser: { enabled: true }`, xử lý nguyên nhân gốc rễ của lỗi "not configured" khi Zalo khởi động.
120
- - **Fix cold-start Docker tích hợp sẵn** — Script nền `(sleep 45 && node -e '...touch historyLimit...')` giờ được baked thẳng vào Dockerfile CMD được generate. Kích hoạt chokidar → hot-reload gateway → `restartChannel('zalouser')` sau khi Docker network ổn định. Không cần hack `lastTouchedAt` thủ công nữa.
121
- - **Helper predicates** — Thêm `hasTelegram(ck)` và `hasZaloPersonal(ck)` thay thế tất cả so sánh literal `channelKey === 'telegram/zalo-personal'` trong `cli.js` để dễ mở rộng sau này.
122
- - **Cập nhật smoke tests** — `tests/smoke-cli-logic.mjs` cập nhật để match logic predicate mới (78 checks passing).
123
-
124
- ## [5.2.3] — 2026-04-10
125
-
126
- ### 🐛 Sửa lỗi & Cải thiện encoding
127
-
128
- - **Fix: `ReferenceError: projectDir is not defined`** — Crash khi bấm "Generate Configs" ở chế độ multi-bot. Biến `projectDir` không được khai báo trong `buildTelegramPostInstallChecklist()` và là dead code (không dùng trong return). Đã xoá.
129
- - **Fix: Nút "Tiếp theo" ở Bước 3 bị validate sai** — `state._activeBotTab` là typo của `state.activeBotIndex`, khiến validation multi-bot luôn đọc sai tab index.
130
- - **Fix: `saveFormData()` luôn lưu tên bot vào `bots[0]`** — Trong multi-bot mode, tên bot đang active bị ghi đè cố định vào `bots[0]` thay vì `bots[state.activeBotIndex]`. Đã sửa.
131
- - **UX: Hiển thị gợi ý khi nút "Generate Configs" bị khoá** — Khi nút bị disable, một cảnh báo xuất hiện ngay bên dưới cho biết trường nào còn thiếu (ví dụ: "Còn thiếu: GOOGLE_API_KEY").
132
- - **Fix: Tiếng Việt có dấu trong file `.bat` và `.sh` được tạo ra** — Toàn bộ chuỗi echo/Write-Host tiếng Việt có dấu trong script cài đặt cho Windows và Linux/macOS đã được chuyển về dạng không dấu (ASCII thuần) để tránh lỗi encoding trên các máy không dùng UTF-8.
133
-
134
- ## [5.2.2] — 2026-04-10
135
-
136
-
137
- ### 🐛 Sửa lỗi Docker & Native PM2
138
-
139
- - **Sửa crash loop Docker (xung đột port socat)**: `socat TCP-LISTEN:18791` chiếm port `0.0.0.0:18791` trước khi `openclaw gateway run` khởi động, gây `EADDRINUSE`. Đã xóa gateway bridge khỏi Dockerfile CMD trong `cli.js` và `setup.js`.
140
- - **Sửa Dashboard Docker không vào được từ host**: Gateway `bind` đặt là `'loopback'` — Docker port mapping không reach được loopback bên trong container. Khôi phục pattern đúng từ v5.0.9: `bind:'custom', customBindHost:'0.0.0.0'`.
141
- - **Sửa `delete c.gateway.customBindHost`**: Một lệnh `delete` thừa đang xóa key `customBindHost` ngay sau khi set. Đã xóa dòng đó.
142
- - **Sửa Docker tải lại npm mỗi lần build**: `ARG CACHEBUST=<timestamp>` bust cache layer `npm install -g openclaw` mỗi lần build dù chỉ đổi config. Thay bằng `ARG OPENCLAW_VER` ổn định theo version — Docker tái sử dụng cache giữa các lần rebuild.
143
- - **Sửa lồng đôi `.openclaw` trong native PM2**: `ecosystem.config.js` đang đặt `OPENCLAW_HOME: projectDir/.openclaw`, khiến OpenClaw resolve workspace thành `projectDir/.openclaw/.openclaw/workspace`. Đã xóa `OPENCLAW_HOME` khỏi PM2 env; OpenClaw tự tìm config qua `cwd` (khớp với v5.0.9).
144
-
145
-
146
- ## [5.2.1] — 2026-04-09
147
-
148
- ### 🐛 Sửa Lỗi Ubuntu/VPS Native
149
-
150
- - **Sửa `Bot-9router errored` (PM2 ↺ 15)**: `resolveNative9RouterDesktopLaunch` cố tìm file `9router/app/server.js` trong thư mục npm global — đường dẫn này không tồn tại sau `npm install -g 9router`. Giờ dùng trực tiếp binary `9router` CLI với các tham số đúng (`-n -l -H 0.0.0.0 -p 20128 --skip-update`), loại bỏ hoàn toàn vòng lặp restart.
151
- - **Sửa đường dẫn workspace bị double `.openclaw`**: `workspace` và `agentDir` trong `openclaw.json` được sinh ra dưới dạng đường dẫn tuyệt đối (ví dụ `/home/user/bot/.openclaw/workspace`). OpenClaw giải quyết các path này tương đối với `OPENCLAW_HOME`, gây ra double-prefix (`/home/user/bot/.openclaw/.openclaw/workspace`). Đã chuyển sang path tương đối (`workspace`, `agents/<id>/agent`) giống Docker mode.
152
- - **Sửa thiếu runtime packages khi cài native**: `grammy`, `@grammyjs/runner`, `@grammyjs/transformer-throttler`, `@buape/carbon`, `@larksuiteoapi/node-sdk`, `@slack/web-api` được cài trong Docker (Dockerfile) nhưng bỏ qua ở native. `installLatestOpenClaw` giờ cài toàn bộ `OPENCLAW_RUNTIME_PACKAGES` sau binary chính.
153
- - **Sửa `openclaw: command not found` sau khi cài**: Hướng dẫn login Zalo sau setup giờ có thêm gợi ý `source ~/.bashrc && source ~/.profile` cho terminal mới trên Linux.
154
- - **Sửa Zalo session lưu sai thư mục**: Lệnh login thủ công giờ bao gồm env vars `OPENCLAW_HOME` và `OPENCLAW_STATE_DIR` để session được lưu vào `<projectDir>/.openclaw/credentials/zalouser/` — đúng chỗ gateway PM2 đọc.
155
- - **Sửa đường dẫn project tương đối**: Input `projectDir` giờ được chuẩn hóa bằng `path.resolve()` để gõ `home/ubuntu/bot` (thiếu `/` đầu) tự động thành `/home/ubuntu/bot`.
156
-
157
-
158
- ## [5.2.0] — 2026-04-09
159
-
160
- ### Upgrade 1 Lệnh (Không Cần Chạy Lại Wizard)
161
-
162
- - Thêm subcommand `upgrade` vào CLI: `npx create-openclaw-bot@latest upgrade`. Tự nhận diện Docker hay Native/PM2 và cập nhật OpenClaw mà không cần chạy lại wizard.
163
- - Thêm `upgrade.ps1` cho Windows — nhấp đúp trong thư mục bot là tự động upgrade. Không cần biết terminal.
164
- - Thêm `upgrade.sh` cho Linux / macOS / Ubuntu — `bash upgrade.sh` hoặc pipe trực tiếp qua `curl`/`wget` từ GitHub.
165
- - Toàn bộ dữ liệu người dùng giữ nguyên: `.env`, `.openclaw/memory/`, sessions, credentials, OAuth token 9Router không bao giờ bị xoá.
166
- - Docker mode: vá `Dockerfile` (cập nhật `OPENCLAW_NPM_SPEC` + `CACHEBUST`) → `docker compose build --no-cache` + `docker compose up -d`.
167
- - Native/PM2 mode: cài lại `openclaw` + `9router` global → `pm2 restart all`.
168
-
169
-
170
- ## [5.1.15] — 2026-04-08
171
-
172
- ### Dong Bo Native Setup & Sua Loi Wizard Windows
173
-
174
- - Sua wizard HTML tren Windows native de file `.bat` tai ve luon duoc regenerate theo state moi nhat truoc khi download.
175
- - Sua toan bo runtime path tren Windows native theo project dir nguoi dung nhap: `.env`, `.openclaw` va `.9router` khong con roi ve home/AppData.
176
- - Them `OPENCLAW_STATE_DIR` vao native runtime env de OpenClaw doc dung config duoc sinh trong thu muc project.
177
- - Chong format config legacy `gateway.bind: "0.0.0.0"` va chuyen sang `bind: "custom"` + `customBindHost: "0.0.0.0"`.
178
- - Sua luong single-bot tren Windows native de provider, model, API key va Telegram bot token tu wizard duoc sync dung vao `.env` va `openclaw.json`.
179
- - Sua native Windows 9Router path resolution va doi helper sync `smart-route` sang lay active providers tu API song cua `9Router`, khop voi logic Docker.
180
- - Bu native parity cho skill/runtime tren Windows: skill duoc cai tu dong, browser automation tu cai runtime can thiet, va `skills.entries` dung dung `slug`.
181
- - Cap nhat native script cho macOS, Linux Desktop va Ubuntu/VPS de chay tu `PROJECT_DIR` duoc chon va export `OPENCLAW_HOME`, `OPENCLAW_STATE_DIR`, `DATA_DIR` theo project-local.
182
- - Mo rong smoke test cho runtime path native, 9Router sync, provider/token sync, browser install va luong startup project-local tren Unix.
183
-
184
- ## [5.1.14] — 2026-04-08
185
-
186
- ### Sửa lỗi ổn định OpenClaw và Docker
187
-
188
- - Pin lại OpenClaw về `openclaw@2026.4.5` vì bản cập nhật ngày `08/04/2026` đang lỗi.
189
- - Sửa Dockerfile cho các case Docker trên Windows để tránh lỗi startup do escape command sai và lỗi `allowedOrigins`.
190
- - Thêm ghi chú khuyên dùng `Node.js 20` đến `24`, tạm tránh `Node.js 25` để ổn định hơn với OpenClaw.
191
-
192
- ## [5.1.13] — 2026-04-08
193
-
194
- ### 🐛 Sửa lỗi cài macOS & ổn định Wizard
195
-
196
- - **Sửa lỗi `mkdir: : No such file or directory` trên macOS**: `generateSetupScript` dùng `\${dir}` / `\${path}` (escaped) tạo ra biến bash rỗng — giờ dùng JS interpolation đú́ng nên đường dẫn thực tế được ghi vào script.
197
- - **Sửa script Docker macOS**: Thêm kiểm tra Docker daemon `docker info` trước khi chạy `docker compose up`; chế độ Docker giờ gọi đú́ng `docker compose up` thay vì `openclaw gateway run`.
198
- - **Sửa npm prefix macOS Native**: Bỏ `npm config set prefix` gây xung đột với Homebrew Node.js. Giờ dùng `export npm_config_prefix` (env var cho session hiện tại) và fallback `sudo npm install -g`.
199
- - **Sửa `window.__saveBotTabPersona is not a function`**: Thêm hàm `__saveBotTabPersona` bị thiếu — HTML gọi nhưng JS chưa định nghĩa.
200
- - **Sửa nút Tiếp theo Step 3 chế độ 1 bot**: `bindFormEvents` giờ sync `cfg-name` vào `state.config.botName` và `state.bots[0].name` ngay khi gõ, rồi gọi `updateNavButtons()` — nút Tiếp phản hồi ngay không cần chuyển bước.
201
- - **Sửa persona riêng từng bot**: `saveBotTabMeta` và `syncBotTabMeta` giờ save/restore field `cfg-bot-tab-persona` cho từng bot. Chuyển tab hiển thị đú́ng nội dung persona tương ứng; giá trị lưu vào `state.bots[i].persona` và được dùng chính xác khi tạo file `.md`.
202
- - **Sửa cli.js npm macOS**: `ensureUserWritableGlobalNpm` bỏ `npm config set prefix` trên darwin; `installGlobalPackage` thêm `sudo npm install -g` làm fallback.
203
-
204
- ## [5.1.12] — 2026-04-07
205
-
206
- ### 🧠 Thêm Skills & Tự động chọn Plugin Relay
207
-
208
- - **Grid Skills 3 cột**: Layout mới 3 card/hàng thay vì 4, card rộng rãi hơn, dễ đọc hơn.
209
- - **7 Skills mới từ ClawHub**: Bổ sung đầy đủ `Web Search`, `GitHub`, `Notion`, `Slack` — phủ khắp các tác vụ năng suất phổ biến nhất trên OpenClaw dashboard.
210
- - **Plugin Telegram Multi-Bot Relay tự động**: Khi chọn nhiều bot Telegram (botCount ≥ 2), plugin `telegram-multibot-relay` được tự động tick chọn và ghi vào `openclaw.json → plugins.entries`. Khi quay về 1 bot, plugin bị bỏ chọn.
211
- - **Plugin selections → openclaw.json**: Tất cả plugin được user chọn (Voice Call, Matrix, MS Teams, Nostr...) đều được inject vào `plugins.entries` để Dashboard OpenClaw nhận trạng thái `enabled` đúng. Không chọn = không bật.
212
- - **Fix Step 3 "Tiếp theo" bị disabled**: Bỏ yêu cầu bắt buộc `cfg-user-info` (optional), sửa multi-bot check dùng `cfg-bot-tab-name`.
213
- - **Fix Step 4 multi-bot token**: Validate `key-bot-token-0` thay vì `key-bot-token` khi multi-bot Telegram.
214
- - **Fix AGENTS.md native multi-bot thiếu quy tắc bảo mật**: Inject `securityRules` vào cuối AGENTS.md của từng bot trong native multi-bot deployment.
215
-
216
- ### 🌟 Đổi Chính Sách Bảo Mật Zalo Personal
217
-
218
- - **Thả Ga Inbox Zalo Cầm Tay**: Lược bỏ rào cản duyệt bảo mật của Zalo Personal. Thông số `dmPolicy` trên cài đặt Zalo cá nhân đã được chuyển mặc định từ `pairing` sang `open`. Bây giờ bất cứ ai trên mạng lưới Zalo nhắn tin vào tài khoản của Bot đều sẽ được AI tự động tiếp đón ngay lập tức thay vì bị chặn lại chờ bạn duyệt lệnh kết nối E2E!
219
-
220
- ## [5.1.10] — 2026-04-07
221
-
222
- ### 🌟 Tự động Auto-Approve Thiết Bị cho Native VPS
223
-
224
- - **Bỏ Nhập Lệnh Thủ Công Trải Nghiệm PM2**: Cảnh báo `pairing required` (chờ duyệt thiết bị ghép nối E2E) trên giao diện Web buộc người dùng phải gõ lệnh đồng ý dưới Terminal. Ở luồng Docker, tính năng này đã được vô hiệu hóa bằng một đoạn script chạy ngầm tự gật đầu. Nhưng ở Native thì chưa! Phiên bản này chính thức nhúng thêm 1 tiến trình PM2 `auto-approve` siêu nhẹ chạy kẹp với các lệnh chính, giúp tự động gật đầu phê duyệt kết nối web mỗi 5 giây. Đảm bảo trải nghiệm "Click là vào" trên Native VPS mượt mà y hệt Docker!
225
-
226
- ## [5.1.9] — 2026-04-07
227
-
228
- ### 🌟 Trả lại Schema Chuẩn & Cải thiện UX WebCrypto
229
-
230
- - **Sửa lỗi sập Gateway do sai lầm Config**: OpenClaw bản mới nhất dùng Zod để khóa chặt Schema cấu hình. Cờ `requireDeviceIdentity` chêm vào bản 5.1.8 đã bị Backend từ chối thẳng thừng (`Unrecognized key`), dẫn đến server không thể khởi động vòng lặp. Bản 5.1.9 đã gỡ sạch cờ này, trả lại môi trường sạch để PM2 hoạt động 100%.
231
- - **Trợ lý SSH Tunnel Tự Động**: Bù lại sự khắt khe của WebCrypto khi dùng VPS/IP ngoài, Console giờ đây sẽ tự động in sẵn thần chú lệnh bẻ khóa `ssh -L ...` y hệt IP và Username thật của bạn. Bạn chỉ cần copy-paste để thông luồng một cách ngầu lòi, bảo mật tuyệt đối mà không cần mua Tên miền HTTPS.
232
-
233
- ## [5.1.8] — 2026-04-07
234
-
235
- ### 🌟 Sửa lỗi Đăng nhập Token (1008) & Cải tiến IP hiển thị trên VPS
236
-
237
- - **Tắt `requireDeviceIdentity` để vượt tường WebCrypto**: Do cơ chế bảo mật mới của Control UI bắt buộc trình duyệt phải dùng môi trường HTTPS (hoặc localhost) thì mới cấp quyền khởi tạo key mã hóa thiết bị E2E. Nếu dùng IP thường (HTTP) thì Dashboard sẽ báo lỗi đỏ `code=1008`. Bản setup mới nhất đã tự động chích cờ `requireDeviceIdentity: false` để tắt cơ chế ép buộc này đi, giúp bạn vào thẳng Dashboard bằng IP của VPS.
238
- - **Hiển thị Link Public ở Terminal**: Cấu trúc báo cáo của PM2 đã được viết lại để tự động tìm và sinh ra các đường dẫn kèm IPv4 Public (thay vì chỉ in mỗi `localhost`). Giờ đây bạn chỉ việc soi console và bấm/copy thẳng link vào trình duyệt mà không cần phải tự chế nữa.
239
-
240
- ## [5.1.7] — 2026-04-07
241
-
242
- ### 🌟 Sửa lỗi CORS Control UI & Đường dẫn 9Router Native
243
-
244
- - **Sửa lỗi dội ngược CORS khi vào Control UI**: OpenClaw v2026.3.x siết chặt policy CORS khiến việc truy cập dashboard từ IP ngoài bị block. Các script tạo config và vá Docker giờ đã tự động quét toàn bộ IPv4 hiện có của server (`os.networkInterfaces()`) để nhúng vào mảng `gateway.controlUi.allowedOrigins`. Đảm bảo người dùng VPS vào được thẳng Control UI mà không bị lỗi mạng.
245
- - **Tối ưu đường dẫn PM2 Native**: Để tránh trường hợp tính năng PM2 không nhận diện đúng môi trường (lỗi `\$PATH` khi dùng `nvm`), bộ cài giờ bỏ qua file thực thi `9router` của HĐH. Thay vào đó, bộ cài tự tính toán đường dẫn tuyệt đối `\$(npm root -g)/9router/app/server.js` và truyền thẳng vào trình thông dịch Node, đảm bảo PM2 100% tìm thấy file khởi chạy 9Router.
246
-
247
- ## [5.1.6] — 2026-04-07
248
-
249
- ### 🐞 Khắc phục lỗi PM2 ngắt cài đặt (SIGKILL) trên VPS
250
-
251
- - **Sửa lỗi `PM2 SIGKILL`**: Loại bỏ cờ `-t` (chế độ giao diện terminal) khỏi tất cả các lệnh gọi `9router` chạy ngầm. Trên các VPS không giao diện (headless), cờ này có thể khiến PM2 bị treo và ném ra lỗi SIGKILL làm chết toàn bộ quá trình cài đặt.
252
- - **Tối ưu Sync Helper chạy ngầm**: Bổ sung cơ chế dự phòng 2 lớp cho script tự động đồng bộ (sync helper). Nếu PM2 bị giới hạn RAM hoặc quá tải gây lỗi SIGKILL, script sẽ không văng lỗi sập Setup nữa mà tự động fallback xuống chạy ẩn bằng `nohup node ... &`. Trong trường hợp xấu nhất, bộ cài chỉ báo cảnh báo vàng và rẽ nhánh cho phép tiến trình Setup tiếp tục tới bước cuối cùng thành công.
253
-
254
- ## [5.1.5] — 2026-04-06
255
-
256
- ### 🐞 Sửa lỗi PM2 khởi động 9Router trên Native
257
-
258
- - **Fix**: Chuyển từ việc chạy chuỗi bash (`execSync`) sang truyền mảng tham số rõ ràng (`execFileSync`) khi khởi động 9Router và script đồng bộ (sync) qua PM2. Đảm bảo PM2 luôn chạy được ứng dụng ổn định trên cả Linux (VPS) và Windows mà không bị vướng lỗi phân tích cú pháp dấu ngoặc kép hay khoảng trắng trong đường dẫn.
259
- - **Tối ưu**: PM2 giờ đây sẽ phân tách rạch ròi bằng cách gọi file thực thi `9router` với tham số `--interpreter none`, và luôn chạy sync script bằng đúng phiên bản NodeJS nội tại thông qua `--interpreter process.execPath`.
260
-
261
- ## [5.1.4] — 2026-04-06
262
-
263
- ### 🐞 Sửa lỗi BOM khởi động CLI & Tối ưu luồng vá Timeout trên Docker
264
-
265
- - **Sửa file CLI (BOM)**: Xóa tự động chèn BOM (`\uFEFF`) ở đầu file `cli.js`. Ký tự thừa này vốn làm hỏng shebang `#!/usr/bin/env node` và gây `SyntaxError: Unexpected token` trong nhiều môi trường khi chạy npx
266
- - **Cải thiện Docker Timeout Patch**: Quá trình can thiệp timeout (`300s`) trong lúc build Docker giờ chuyển sang scan quét toàn bộ các file `.js` trong thư mục `openclaw/dist` thay vì cố tìm file trùng hash `gateway-cli-*`. Giúp bản vá luôn áp dụng thành công trên các phiên bản backend khác biệt mà không in ra warning rác trên console
267
-
268
- ## [5.1.3] — 2026-04-06
269
-
270
- ### 🐜 Lỗi lọt biến nội suy vào giao diện Docker Compose
271
-
272
- Bản vá lỗi base64 trước đó đã gây ra lỗi mới (regression) do dùng ngoặc `${Buffer.from(...)}` bên trong chuỗi string sinh ra docker-compose. Điều này làm lọt nguyên đoạn text nội suy vào `docker-compose.yml` thay vì sinh ra chuỗi base64 thật.
273
-
274
- - **Fix**: Thực hiện tạo mã base64 hoàn chỉnh qua JavaScript (`const syncScriptBase64 = encodeBase64Utf8(syncScript)`) ngay từ ban đầu trước khi ghép chuỗi vào file compose
275
- - Đảm bảo file compose tạo thành nhận chính xác mã base64 thuần túy mà không bị lọt biến môi trường
276
- - Dọn dẹp lại script test tương ứng
277
-
278
- ## [5.1.2] — 2026-04-06
279
-
280
- ### 🐛 Fix Shell Injection: Sync Script Dùng Base64
281
-
282
- Approach node -e JSON.stringify gây lỗi /bin/sh: Syntax error "(" unexpected vì JSON.stringify sinh chuỗi double-quoted phá vỡ shell argument.
283
-
284
- - **Fix**: nội dung sync script nay được **base64-encode tại thời điểm gen compose** bằng Buffer.from(script).toString base64
285
- - Entrypoint sinh ra dạng: node -e writeFileSync Buffer.from b64 base64 toString
286
- - Base64 chỉ chứa [A-Za-z0-9+/=] — không có ký tự đặc biệt, hoạt động đúng trong YAML block
287
- - Áp dụng cho tất cả luồng gen compose: Docker web wizard (setup.js x2) và Docker CLI (cli.js x2)
288
-
289
- ## [5.1.1] — 2026-04-06
290
-
291
- ### 🔧 9Router Smart-Route Sync — Ổn định qua API
292
-
293
- Sửa lỗi nghiêm trọng khiến sync script không nhận ra provider đang active, làm tất cả request fallback về `openai` (lỗi `404 No active credentials`).
294
-
295
- - **Nguyên nhân**: script đọc `db.providerConnections` từ `db.json` nhưng field này không tồn tại trong 9Router v0.3.79+ — connections chỉ có qua REST API
296
- - **Fix**: script giờ gọi `fetch('http://localhost:20128/api/providers')` → `d.connections[]` để detect provider đang active
297
- - **Fix**: thay heredoc `cat << 'CLAWEOF'` (gây ra `const p=undefined`) bằng `node -e require('fs').writeFileSync(...)` — không còn lỗi escaping trong YAML+shell
298
- - **Fix**: `build9RouterSmartRouteSyncScript()` trong CLI docker flow giờ truyền đúng `'/root/.9router/db.json'` làm db path
299
- - Áp dụng cho cả 3 vị trí: Docker web wizard (`setup.js`), Docker CLI (`cli.js`), và native (`cli.js`)
300
-
301
- ### 📱 Zalo Pairing — Tự Động Approve Khi Gateway Đang Chạy
302
-
303
- - Trước đây, auto-approve chỉ chạy trong login flow ban đầu; pairing request mới khi gateway đang chạy bị bỏ qua
304
- - **Fix**: `openclaw gateway run` với Zalo Personal giờ pipe stdout/stderr và tự gọi `openclaw pairing approve zalouser <code>` khi phát hiện pairing code mới
305
-
306
- ### 🧹 Output Docker CLI Gọn Hơn
307
-
308
- - Xóa các hướng dẫn thừa sau khi Docker build xong (`docker compose build`, `openclaw gateway`, PM2) — Docker mode tự chạy hoàn toàn, không cần thao tác thủ công thêm
309
-
310
- ## [5.1.0] — 2026-04-07
311
-
312
- ### 🤖 Zalo Personal Login Improvements
313
-
314
- - Zalo Personal giờ sử dụng luồng đăng nhập `zalouser` trực tiếp trên cả native và Docker.
315
- - Setup in ra đường dẫn QR cùng các lệnh login/copy chính xác, giúp người dùng đăng nhập nhanh mà không cần `openclaw onboard`.
316
- - QR login Docker giờ nhắm vào service compose `ai-bot` đã sinh ra thay vì các tên container cũ dễ hỏng.
317
-
318
- ## [5.0.9] — 2026-04-06
319
-
320
- ### 🚀 Chế độ Native Install — Không cần Docker
321
-
322
- OpenClaw giờ hỗ trợ **cài đặt native (không dùng Docker)** trên Windows, Linux, macOS, VPS và shared hosting.
323
-
324
- - **CLI native mode** — thêm chọn chế độ: `docker` (mặc định) hoặc `native`
325
- - **Script khởi động sinh tự động theo OS:**
326
- - 🪟 **Windows** → `setup-openclaw-win.bat` (double-click cài ngay)
327
- - 🐧 **Linux / macOS** → `setup-openclaw-linux.sh`
328
- - 🖥️ **VPS / Ubuntu** → `setup-openclaw-vps.sh` (PM2 chạy nền)
329
- - 🏠 **Shared Hosting / cPanel** → `setup-openclaw-hosting.sh` + `ecosystem.config.cjs`
330
- - **Web Wizard cập nhật** — Thêm toggle Deploy Mode (Docker / Native) + chọn OS
331
- - **URL host động** — Ollama và 9Router URL tự chuyển:
332
- - Docker: `http://ollama:11434` / `http://9router:20128/v1`
333
- - Native: `http://localhost:11434` / `http://localhost:20128/v1`
334
- - **Kiểm tra Node.js 18+** — Native mode yêu cầu Node.js 18+ trước khi chạy
335
- - **Test scripts** — `test-native-install.bat` (Windows) và `test-native-install.sh` (Linux/macOS)
336
-
337
- ### 🤖 Cập nhật Gemma 4
338
-
339
- - **4 biến thể Gemma 4** qua Ollama: `gemma4:e2b` (~4-6 GB), `gemma4:e4b` (~8-10 GB), `gemma4:26b` (~18-24 GB), `gemma4:31b` (~24+ GB)
340
- - Tự pull model Gemma 4 khi `docker compose up` lần đầu (timeout container tăng lên 15 phút)
341
- - Nâng timeout Ollama lên **300 giây** để xử lý model lớn
342
- - Thêm `OLLAMA_NUM_PARALLEL=1` và `OLLAMA_KEEP_ALIVE=24h` vào Docker sidecar
343
-
344
- ### 🤖 Multi-Bot Deployment (tối đa 5 bot Telegram trên mỗi workspace)
345
-
346
- OpenClaw giờ hỗ trợ triển khai **nhiều bot Telegram độc lập** từ một setup duy nhất — mỗi bot có identity, slash command, AI personality và thư mục workspace riêng biệt.
347
-
348
- - **Triển khai 1–5 bot cùng lúc** — Web Wizard và CLI đều hỗ trợ cấu hình multi-bot
349
- - **Workspace riêng biệt** — mỗi bot có thư mục `botN/` riêng với `.env` và cấu hình `.openclaw/` riêng, không gây xung đột token hay cấu hình
350
- - **Tự động gán cổng** — cổng bắt đầu từ `18791` và tăng dần cho mỗi bot (`18791`, `18792`, ...) để tránh xung đột binding host
351
- - **Docker Compose đa-service** — tự động sinh `docker-compose.yml` với một service cho mỗi bot, cộng thêm một container provider chung (9Router hoặc Ollama)
352
- - **Department Room Model** — khi các bot chia sẻ chung một nhóm Telegram, chúng hoạt động như một đội ngũ chuyên nghiệp:
353
- - 🤫 **Mặc định im lặng** — bot phản hồi bằng emoji (👍 ❤️) với tin nhắn thông thường nhưng không bao giờ spam reply
354
- - 📣 **Trigger bằng @mention hoặc /slash** — chỉ bot được nhắc tên hoặc được gọi lệnh mới phản hồi, giống như gọi tên đồng nghiệp trong phòng họp
355
- - 🗃️ **Workspace chung** — tất cả bot đọc từ một thư mục workspace chung và có thể cộng tác trên các tác vụ, tệp và báo cáo
356
- - **Cấu hình botGroup** được inject vào `openclaw.json` của mỗi bot để chúng biết tên và lệnh slash của nhau khi runtime
357
-
358
- ### 🔗 Trợ giúp lấy Telegram Group ID
359
-
360
- Lấy Group ID giờ trở nên cực kỳ đơn giản:
361
-
362
- - **Web Wizard**: card "Đã có group" giờ hiển thị nút inline `Lấy Group ID` mở thẳng **@userinfobot**, kèm hướng dẫn từng bước (forward tin nhắn nhóm → bot trả về Chat ID)
363
- - **CLI**: chọn "existing group" sẽ in ra hướng dẫn tương tác với các bước đánh số và link trực tiếp đến `https://t.me/userinfobot`
364
-
365
- ### 🎨 Tinh chỉnh UI
366
-
367
- - **Bộ chọn tùy chọn nhóm** được thiết kế dạng **hai thẻ tương tác** với icon, mô tả, hiệu ứng hover glow và dấu tick chọn động
368
- - Trạng thái active của thẻ: màu xanh lá + viền cho "tạo sau", màu xanh chàm + viền cho "nhóm đã có"
369
- - Hàng nhập Group ID bao gồm nút trợ giúp inline — không cần tìm kiếm tài liệu nữa
370
-
371
- ## [5.0.0] — 2026-04-04
372
-
373
- ### 🚀 Hỗ trợ Gemma 4 — Model mới nhất của Google
374
-
375
- OpenClaw v5.0.0 cập nhật **Gemma 4** — dòng model open-weights mới của Google DeepMind, ra mắt 02/04/2026.
376
-
377
- - **Gemma 4 có sẵn 3 size qua Ollama** — `gemma4:4b` (~6 GB RAM), `gemma4` mặc định (~10 GB), `gemma4:27b` (~18 GB)
378
- - **Không cần cài Ollama thủ công** — Khi chọn Local Ollama + Gemma 4, setup tự động sinh **service `ollama` sát cạnh trong `docker-compose.yml`**. Docker tự pull model khi `docker compose up`. Không cần cài Ollama trước.
379
- - **OLLAMA_HOST tự cấu hình** — Trỏ thẳng vào sidecar container (`http://ollama:11434`).
380
- - **Cập nhật danh sách model** — Thêm `gemma4`, `gemma4:27b`, `gemma4:4b` vào Ollama provider trên cả CLI và Web Wizard.
381
-
382
- ### 💻 Yêu cầu phần cứng cho Gemma 4
383
-
384
- | Model | RAM/VRAM tối thiểu (4-bit) | Phù hợp |
385
- | ------------------- | -------------------------- | ------------------------------ |
386
- | `gemma4:4b` | ~6 GB | Laptop thông thường, Mac M1/M2 |
387
- | `gemma4` (mặc định) | ~10 GB | PC 16 GB RAM |
388
- | `gemma4:27b` | ~18 GB | Workstation 32 GB / GPU 24 GB |
389
-
390
- > Gemma 4 **miễn phí, open-weights, giấy phép Apache 2.0**. Không cần API key — chạy 100% local qua Docker.
391
-
392
- ## [4.1.4] — 2026-04-03
393
-
394
- ### ✨ Cải tiến
395
-
396
- - CLI/Wizard đồng bộ đầy đủ skills (Browser Automation, Memory, RAG, Code Interpreter, v.v.)
397
- - Browser Automation: chọn chế độ Desktop (Host Chrome) hoặc Server (Headless Chromium) cho Linux/Ubuntu
398
- - Sửa lỗi Dockerfile WORKDIR gây lỗi build trên Linux
399
- - Skills install tại **runtime** container (không phải lúc build) để tránh lỗi ClawHub auth
400
- - TOOLS.md động: tự sinh theo danh sách skills đã chọn
401
- - Tự tạo `browser-tool.js` (Desktop mode) và `BROWSER.md`
402
- - Tự đăng ký skills vào `openclaw.json → skills.entries`
403
- - Bổ sung prompt cấu hình Email SMTP và inject vào `.env`
404
- - Single-source version qua `bump-version.mjs` — 1 lệnh cập nhật tất cả file
405
-
406
- ## [4.1.3] — 2026-04-02
407
-
408
- ### ✨ Cải tiến
409
-
410
- - CLI/Wizard đồng bộ đầy đủ skills (Browser Automation, Memory, RAG, Code Interpreter, v.v.)
411
- - Browser Automation: chọn chế độ Desktop (Host Chrome) hoặc Server (Headless Chromium)
412
- - Sửa lỗi Dockerfile WORKDIR trên Linux
413
- - TOOLS.md động: tự sinh theo skills đã chọn
414
- - Tự tạo browser-tool.js (Desktop mode) và BROWSER.md
415
- - Tự đăng ký skills vào `openclaw.json → skills.entries`
416
- - Bổ sung prompt cấu hình Email SMTP
417
-
418
- Tất cả những thay đổi nổi bật của dự án sẽ được ghi chép trong file này.
419
-
420
- ## [4.1.2] — 2026-04-01
421
-
422
- ### Khắc phục
423
-
424
- - **CLI setup**: Khắc phục lỗi sinh file `docker-compose.yml` định dạng sai khi dùng 9Router (lỗi báo `yaml: while scanning a simple key`) bằng cách đổi cách escape string `syncComboScript` sang kiểu heredoc block scalars của bash để tránh xung đột nháy kép/nháy đơn trong YAML.
425
-
426
- ## [4.1.0] — 2026-04-01
427
-
428
- ### 🚀 Stable 9Router Smart Routing
429
-
430
- - **Khởi tạo Database tinh gọn**: Combo mặc định của 9Router hiện tại sạch 100% (chỉ lưu `smart-route`). Đã loại bỏ việc tự động tiêm GPT-4o/Claude/Gemini như các rác hệ thống để ưu tiên 100% sức mạnh định tuyến động.
431
- - **Tối giản Giao diện Toggling**: Cả web Setup Wizard và CLI đều được tinh giản, không còn liệt kê mảng models dư thừa khi chọn 9Router. Hệ thống mặc định chốt cứng Auto Route (`smart-route`) và giao hoàn toàn phán quyết chuyển đổi cho thuật toán `PREF`.
432
-
433
- ## [4.0.9] — 2026-04-01
434
-
435
- ### 🔄 Dynamic Smart Route (Đồng bộ Provider Realtime)
436
-
437
- - **Routing Thông Minh**: Combo `smart-route` không còn là danh sách cứng 100+ model. Script đồng bộ chạy ngầm mỗi 30 giây sẽ tự động quét `/api/providers` của 9Router và chỉ đưa vào combo **những provider đã kết nối VÀ đang bật**. Triệt tiêu hoàn toàn lỗi `404 No active credentials`.
438
- - **Bật/Tắt Tức Thì**: Bật hoặc tắt provider trên Dashboard 9Router — combo tự cập nhật trong vòng 30 giây, không cần restart container.
439
- - **Mapping Đầy Đủ**: Hỗ trợ 25+ provider (Codex, Claude Code, GitHub Copilot, Cursor, Kilo, Cline, Gemini CLI, iFlow, Qwen, Kiro, Ollama, GLM, MiniMax, DeepSeek, xAI, Mistral, Groq...).
440
-
441
- ### 🐳 Tự Động Cài Docker
442
-
443
- - **Zero-Prerequisite**: `npx create-openclaw-bot` tự phát hiện Docker chưa cài → tự tải + cài qua `winget` (Windows), `brew` (macOS), hoặc script chính thức Docker (Linux).
444
- - **Hướng Dẫn Rõ Ràng**: Nếu cài tự động thất bại, hiển thị link tải trực tiếp kèm hướng dẫn chi tiết.
445
-
446
- ## [4.0.8] — 2026-03-31
447
-
448
- ### ✨ Tối ưu 9Router & Mở rộng Ollama Cloud
449
-
450
- - **Tích hợp 9Router cực kỳ Ổn định (Zero Config)**: Proxy 9Router hiện được tự động kích hoạt bảo mật bên trong mạng Docker network qua cổng `sk-no-key`. Toàn bộ thiết đặt API keys thủ công và định tuyến models được gỡ bỏ khỏi `.env` để nhường chỗ cho hệ thống quản lý tập trung và thông minh hơn qua [9Router Dashboard](http://localhost:20128/dashboard).
451
- - **Mở Rộng Kết Nối Models**: Đưa vào danh sách hỗ trợ trọn bộ hệ sinh thái Ollama Cloud (_Qwen 3.5, GLM-5, MiniMax, GPT-OSS_), Kiro Haiku, Qwen Flash, cùng toàn bộ iFlow models hoàn toàn miễn phí.
452
- - **Tự động Inject Smart Routing**: Cấu hình tự động gài sẵn combo luân chuyển linh hoạt `smart-route` giúp cân bằng tải công việc qua lại mượt mà giữa Codex, Claude Code, Gemini, và iFlow.
453
-
454
- ### 🧹 Clean Workspace & Auto-Setup Đa Nền Tảng
455
-
456
- - **Zero-Clutter Generation**: Dọn sạch hoàn toàn các template làm mẫu như `.env.example` hay các file cấu hình `docker-compose` tĩnh dư thừa. Script setup sẽ tự khởi tạo linh động các file thực thụ ngay lúc chạy cho một workspace gọn gàng nhất.
457
- - **Auto Browser Đa Nền Tảng**: Bổ sung `start-chrome-debug.sh` mới đét cho macOS/Linux đồng bộ hoàn hảo với file `.bat` thiết lập chạy Automation trên Windows, mở ra kỷ nguyên Auto-Browser tiện lợi.
458
- - **Auto Prompt CLI**: `npx create-openclaw-bot` hiện đã hoàn chỉnh về feature-parity với Web UI, hỗ trợ tra vấn thông tin thiết lập User Identity và Persona của Bot trực tiếp ở bảng console.
459
-
460
- ## [4.0.1] — 2026-03-31
461
-
462
- ### ✨ Tự Động Hoá (Tự tạo thư mục cài đặt gốc) & NPM CLI
463
-
464
- - **One-Command Install (npx)**: Gói CLI `create-openclaw-bot` được tải lên NPM. Người dùng Windows, Linux, Mac chỉ cần mở Terminal gõ lệnh `npx create-openclaw-bot` để setup tự động từ A-Z qua giao diện tương tác.
465
- - **Tự động Setup & Khởi động Docker**: Quy trình tạo `.bat`/CLI được viết lại, thiết lập xong sẽ mở Docker compose tự động tải và kích hoạt Bot ngay.
466
- - **Improved UI Setup**: Gọn gàng hoá file preview, đổi layout UI cho Zalo Bot API để dùng official vector SVG, nổi màu xanh chủ đạo Zalo thay vì logo trong suốt.
467
- - **Safety First**: Lược bỏ tuỳ chọn mô hình Antigravity (AG) khỏi 9router Proxy Models và thêm cảnh báo đỏ trên UI để tránh rủi ro người dùng bị khoá account Google AI Ultra do lạm dụng quá mức. Cập nhật icon credit cho thesvg.org.
468
-
469
- ## [4.0.0] — 2026-03-30
470
-
471
- ### ✨ New Features & Updates
472
-
473
- - **Full English Localization** — Đã hoàn thiện toàn bộ bản dịch tiếng Anh cho Setup Wizard (Button, Label, Step 4 Output).
474
- - **Language Toggle Relocation** — Di chuyển công tắc ngôn ngữ (VI/EN) sang vị trí dễ nhìn và thao tác hơn.
475
- - **Setup UI/UX fixes** — Cải thiện giao diện Setup Wizard cho Browser Automation và sửa các lỗi hiển thị (như undefined model badge).
476
- - **Reference Error Fixes** — Khắc phục một số lỗi Reference Error trong quá trình chạy setup.
477
-
478
- ## [3.0.2] — 2026-03-29
479
-
480
- ### ✨ 9Router Smart Proxy Expansion
481
-
482
- - **9Router db.json Stability** — Cập nhật logic inject db.json của 9router qua entrypoint để tránh lỗi báo mất file "No such file or directory, lstat db.json".
483
- - **Flagship Fallback Proxy** — Cấu hình "Smart Proxy" để có danh sách luân chuyển các LLMs Flagship mạnh mẽ nhất hiện tại của Codex, Antigravity, Claude Code, và Github Copilot.
484
- - **Tùy chỉnh Setup Wizard** — Khi cài đặt hiện tại sẽ thấy danh sách provider/model hoàn chỉnh, và Smart Proxy được đặt làm chuẩn ưu tiên để tự fix lỗi "404 No Active Credentials".
485
-
486
- ## [3.0.1] — 2026-03-29
487
-
488
- ### ✨ New Features
489
-
490
- - **Wizard UI Redesign (Step 2)** — AI Provider/Model lên đầu, sau đó Identity, Personality, Security Rules, Extensions
491
- - **User Info textarea** — User tự nhập thông tin về mình → sinh vào `USER.md` để bot cá nhân hóa
492
- - **Editable Security Rules** — Hiển thị quy tắc bảo mật mặc định, user có thể sửa → inject vào `AGENTS.md`
493
- - **Section dividers** — Icon dividers giữa các nhóm config (🤖 🔐 🧩)
494
-
495
- ### 🐛 Bug Fixes
496
-
497
- - **Skills auto-enable** — Khi chọn skill, giờ tự động khai báo trong `openclaw.json` → `skills.entries` (enabled: true). Trước đây chỉ cài Dockerfile nhưng không register → bot không nhận skill
498
- - **Skills env injection** — Skills cần API key (Tavily, SMTP…) tự động inject env vars vào `skills.entries`
499
-
500
- ### 🎨 UI/UX
501
-
502
- - Identity grid 3 cột (Tên, Vai trò, Emoji) — bỏ Vibe (gộp vào System Prompt)
503
- - Emoji input fix: `form-input--emoji` class, cùng height với input khác
504
- - Label System Prompt → "Tính cách, Vibe & Quy tắc trả lời"
505
- - Responsive mobile: Name full width, Role + Emoji side-by-side
506
- - Security textarea readonly mặc định, nút "✏️ Sửa" / "🔒 Khóa" toggle
507
-
508
- ### 🔧 Technical
509
-
510
- - `state.config.userInfo` — new field, saved from `cfg-user-info` textarea
511
- - `state.config.securityRules` — editable, defaults per language (vi/en)
512
- - `DEFAULT_SECURITY_RULES` constant with vi/en templates
513
- - `clawConfig.skills.entries` generated from selected skills
514
- - Language toggle updates both prompt and security rules
515
-
516
- ---
517
-
518
- ## [3.0.0] — 2026-03-28
519
-
520
- ### ✨ New Features
521
-
522
- - **9Router Integration** — AI proxy, không cần API key, multi-container Docker (`docker-compose.yml` 2 service)
523
- - **Skills System (ClawHub)** — 8 agent capabilities: Web Search, Browser Automation, Memory, RAG, Image Gen, Bot Scheduler, Code Interpreter, Email Assistant
524
- - **Plugins System (npm)** — 4 runtime extensions: Voice Call, Matrix, MS Teams, Nostr
525
- - **Browser Automation** — Full Chrome Debug Mode support (socat proxy, agent-browser, Playwright engine)
526
- - **Task Scheduler** — Windows Scheduled Task auto-starts Chrome Debug khi logon (delay 10s)
527
- - **Skill-aware .env** — `.env` template tự động thêm env vars cho skills cần API key (Tavily, SMTP, Flux...)
528
- - **Post-setup Management** — Hướng dẫn thêm/bỏ skills/plugins sau khi setup qua `docker exec`
529
-
530
- ### 🎨 UI/UX
531
-
532
- - Tách Skills (4-column grid) và Plugins (riêng biệt) — rõ ràng hơn
533
- - Skill cards hiện notes (⚙️) cho skills cần setup thêm
534
- - Browser Automation notice card ở Step 4 với `.bat` + `.ps1` scripts
535
- - Management guide card (🔧) với `docker exec` commands
536
-
537
- ### 📚 Documentation
538
-
539
- - `docs/browser-automation-guide.md` — Hướng dẫn sử dụng Browser Automation cho user
540
- - `docs/skills-plugins-guide.md` — Tổng hợp toàn bộ skills/plugins + setup + env vars
541
- - README.md / README.vi.md — Thêm 9Router, Skills/Plugins, FAQs mới
542
-
543
- ### 🔧 Technical
544
-
545
- - `state.config.skills[]` + `state.config.plugins[]` quản lý độc lập
546
- - `openclaw.json` inject `browser` config khi Browser skill selected
547
- - Dockerfile conditional: socat, agent-browser chỉ khi cần
548
- - docker-compose: `extra_hosts` cho cả 9Router lẫn non-9Router
549
-
550
- ---
551
-
552
- ## [2.0.0] — 2026-03-27
553
-
554
- ### ✨ New Features
555
-
556
- - **Setup Wizard UI** — Interactive web wizard (`index.html`) to configure OpenClaw bots visually
557
- - **Multi-Channel Support** — Telegram, Zalo Bot API, Zalo Personal channel selection
558
- - **Multi-Provider AI** — Google Gemini, Anthropic Claude, OpenAI/Codex, OpenRouter, Ollama (local)
559
- - **Plugin System** — Modular plugin grid: Browser Automation, Scheduler, Memory, Web Search, RAG, Image Gen
560
- - **Config Generation** — Auto-generates `openclaw.json`, `agent.yaml`, `Dockerfile`, `docker-compose.yml`
561
- - **Language Toggle** — VI/EN toggle switch with SVG flag icons
562
- - **Brand Logos** — Real SVG logos from [thesvg.org](https://thesvg.org) for all providers and channels
563
-
564
- ### 🎨 Design
565
-
566
- - Dark-themed glassmorphism UI with animated multi-layer gradients
567
- - Provider cards with unique colored icon backgrounds (Gemini purple, Claude orange, OpenAI green, OpenRouter violet, Ollama cyan)
568
- - Auto-expanding System Prompt textarea (no internal scroll)
569
- - Shimmer animation on title, glow effects on selected cards
570
-
571
- ### 📚 Documentation
572
-
573
- - `README.md` / `README.vi.md` — Full bilingual docs with multi-provider table
574
- - `SETUP.md` / `SETUP.vi.md` — Technical setup guide for AI agents
575
- - Security notice: System Prompt = personality only, framework enforces security rules
576
-
577
- ---
578
-
579
- ## [1.0.0] — 2026-03-26
580
-
581
- ### Initial Release
582
-
583
- - Basic OpenClaw setup guide
584
- - Telegram-only configuration
585
- - Google Gemini single provider support
586
- - Manual config file instructions
587
-
588
-