create-openclaw-bot 5.13.5 → 5.13.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/README.vi.md +2 -2
- package/dist/server/local-server.js +7 -11
- package/dist/setup/shared/common-gen.js +5 -3
- package/dist/setup/shared/docker-gen.js +5 -5
- package/dist/web/app.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*Run one command → open the dashboard → your bot is live. Windows · macOS · Linux · VPS — Docker-powered, auto-installed for you.*
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
|
-
<a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.13.
|
|
10
|
+
<a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.13.6-0EA5E9?style=for-the-badge" alt="Version 5.13.6" /></a>
|
|
11
11
|
<a href="https://github.com/tuanminhhole/openclaw-setup?tab=MIT-1-ov-file"><img src="https://img.shields.io/badge/LICENSE-MIT-success?style=for-the-badge" alt="MIT License" /></a>
|
|
12
12
|
<a href="https://www.npmjs.com/package/create-openclaw-bot"><img src="https://img.shields.io/npm/v/create-openclaw-bot?style=for-the-badge&label=CLI&color=2563EB&logo=npm&logoColor=white" alt="NPM Version" /></a>
|
|
13
13
|
<a href="https://github.com/tuanminhhole/openclaw-setup/stargazers"><img src="https://img.shields.io/github/stars/tuanminhhole/openclaw-setup?style=for-the-badge&color=eab308&logo=github&logoColor=white" alt="GitHub Stars" /></a>
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
|
40
|
-
## 🆕 What's New in v5.13.
|
|
40
|
+
## 🆕 What's New in v5.13.6
|
|
41
41
|
|
|
42
42
|
- ⚙️ **New Settings page**: pick your theme (light/dark toggle), language (VI/EN) and timezone right from the dashboard — available in both the sidebar and the mobile nav bar.
|
|
43
43
|
- 🕒 **Schedules & cron run in the correct local time**: newly created bots carry an explicit timezone, so reminders/cron no longer drift a day off around midnight (a UTC-vs-local bug that could schedule into the past). Scheduling guidance was hardened end-to-end (local time + timezone, explicit delivery target, raw group id).
|
package/README.vi.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*Chạy một lệnh → mở dashboard → bot lên sóng. Windows · macOS · Linux · VPS — chạy trên Docker, tự cài giúp bạn.*
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
|
-
<a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.13.
|
|
10
|
+
<a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.13.6-0EA5E9?style=for-the-badge" alt="Version 5.13.6" /></a>
|
|
11
11
|
<a href="https://github.com/tuanminhhole/openclaw-setup?tab=MIT-1-ov-file"><img src="https://img.shields.io/badge/LICENSE-MIT-success?style=for-the-badge" alt="MIT License" /></a>
|
|
12
12
|
<a href="https://www.npmjs.com/package/create-openclaw-bot"><img src="https://img.shields.io/npm/v/create-openclaw-bot?style=for-the-badge&label=CLI&color=2563EB&logo=npm&logoColor=white" alt="NPM Version" /></a>
|
|
13
13
|
<a href="https://github.com/tuanminhhole/openclaw-setup/stargazers"><img src="https://img.shields.io/github/stars/tuanminhhole/openclaw-setup?style=for-the-badge&color=eab308&logo=github&logoColor=white" alt="GitHub Stars" /></a>
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
|
40
|
-
## 🆕 Có gì mới trong v5.13.
|
|
40
|
+
## 🆕 Có gì mới trong v5.13.6
|
|
41
41
|
|
|
42
42
|
- ⚙️ **Trang Cài đặt mới**: chọn giao diện (nút gạt Sáng/Tối), ngôn ngữ (VI/EN) và múi giờ ngay trong dashboard — có ở cả sidebar lẫn thanh điều hướng mobile.
|
|
43
43
|
- 🕒 **Lịch & cron chạy đúng giờ địa phương**: bot tạo mới nhận múi giờ rõ ràng, nên nhắc hẹn/cron không còn lệch 1 ngày quanh nửa đêm (lỗi UTC-vs-local có thể đặt lịch vào quá khứ). Đã siết hướng dẫn lập lịch toàn diện (giờ local + múi giờ, nơi gửi rõ ràng, ID nhóm dạng thô).
|
|
@@ -1754,10 +1754,8 @@ async function startZaloConnectLogin(projectDir, accountId = 'default') {
|
|
|
1754
1754
|
if (!gatewayReady) {
|
|
1755
1755
|
const check = await runCapture('docker', ['exec', botContainer, 'sh', '-lc', '[ -d "${OPENCLAW_HOME:-/home/node/project/.openclaw}/extensions/zalo-connect" ] && echo OK || echo MISSING'], { cwd: projectDir, shell: false }).catch(() => ({ stdout: 'ERR' }));
|
|
1756
1756
|
if (String(check.stdout || '').trim() === 'MISSING') {
|
|
1757
|
-
sendLog(`[zalo-connect] Plugin missing — installing
|
|
1758
|
-
const
|
|
1759
|
-
const ref = String(ZALO_CONNECT_PLUGIN_SPEC).split('#')[1] || ZALO_CONNECT_VERSION;
|
|
1760
|
-
const installCmd = `tmp=/tmp/openclaw-plugin-zalo-connect-${ref}; rm -rf "$tmp"; git clone --depth 1 --branch "${ref}" "${repo}" "$tmp" && rm -rf "$tmp/.git" && cd /home/node/project && openclaw plugins install "$tmp" 2>&1`;
|
|
1757
|
+
sendLog(`[zalo-connect] Plugin missing — installing ${ZALO_CONNECT_PLUGIN_SPEC}...`);
|
|
1758
|
+
const installCmd = `cd /home/node/project && openclaw plugins install ${ZALO_CONNECT_PLUGIN_SPEC} --force --acknowledge-clawhub-risk 2>&1`;
|
|
1761
1759
|
const inst = await runCapture('docker', ['exec', botContainer, 'sh', '-lc', installCmd], { cwd: projectDir, shell: false });
|
|
1762
1760
|
const instOut = `${inst.stdout}\n${inst.stderr}`;
|
|
1763
1761
|
for (const line of instOut.split(/\r?\n/).filter(Boolean)) sendLog(`[zalo-connect] ${line}`);
|
|
@@ -3343,19 +3341,17 @@ async function installFeature(projectDir, agentId, kind, id) {
|
|
|
3343
3341
|
}
|
|
3344
3342
|
|
|
3345
3343
|
if (kind === 'plugin') {
|
|
3346
|
-
// zalo-connect
|
|
3347
|
-
//
|
|
3348
|
-
//
|
|
3344
|
+
// zalo-connect ships on ClawHub (package `openclaw-zalo-connect`) — install/update via
|
|
3345
|
+
// clawhub:latest like other plugins, so the dashboard "Update" button always fetches the newest
|
|
3346
|
+
// published version (no tag pin to bump each release).
|
|
3349
3347
|
if (id === 'zalo-connect' || id === 'openclaw-zalo-connect') {
|
|
3350
3348
|
let composeDir = null;
|
|
3351
3349
|
if (existsSync(join(projectDir, 'docker-compose.yml'))) composeDir = projectDir;
|
|
3352
3350
|
else if (existsSync(join(projectDir, 'docker', 'openclaw', 'docker-compose.yml'))) composeDir = join(projectDir, 'docker', 'openclaw');
|
|
3353
|
-
const repo = String(ZALO_CONNECT_PLUGIN_SPEC).split('#')[0];
|
|
3354
|
-
const ref = String(ZALO_CONNECT_PLUGIN_SPEC).split('#')[1] || ZALO_CONNECT_VERSION;
|
|
3355
3351
|
if (composeDir) {
|
|
3356
3352
|
const botContainer = getBotContainerName(projectDir);
|
|
3357
|
-
sendLog(`[zalo-connect] Installing/updating
|
|
3358
|
-
const cmd = `
|
|
3353
|
+
sendLog(`[zalo-connect] Installing/updating ${ZALO_CONNECT_PLUGIN_SPEC} inside ${botContainer}...`);
|
|
3354
|
+
const cmd = `cd /home/node/project && openclaw plugins install ${ZALO_CONNECT_PLUGIN_SPEC} --force --acknowledge-clawhub-risk 2>&1`;
|
|
3359
3355
|
const out = await runCapture('docker', ['exec', botContainer, 'sh', '-lc', cmd], { cwd: projectDir, shell: false });
|
|
3360
3356
|
if (out) for (const line of `${out.stdout}\n${out.stderr}`.split(/\r?\n/).filter(Boolean)) sendLog(`[zalo-connect] ${line}`);
|
|
3361
3357
|
const okDir = existsSync(join(projectDir, '.openclaw', 'extensions', 'zalo-connect'));
|
|
@@ -41,11 +41,13 @@
|
|
|
41
41
|
const TELEGRAM_SETUP_GUIDE_FILENAME = 'TELEGRAM-GROUP-SETUP.md';
|
|
42
42
|
|
|
43
43
|
// ── OpenClaw Zalo Connect — single source of truth ──────────────────────────
|
|
44
|
-
//
|
|
44
|
+
// Installed from ClawHub (owned package `openclaw-zalo-connect`) at LATEST, like zalo-mod, so the
|
|
45
|
+
// dashboard "Update" button + first-boot always fetch the newest published version — no tag pin to
|
|
46
|
+
// bump each release. (Was a pinned git tag; switched once the fork was published to ClawHub.)
|
|
45
47
|
const ZALO_CHANNEL_ID = 'zalo-connect';
|
|
46
48
|
const ZALO_PLUGIN_ID = 'zalo-connect';
|
|
47
|
-
const ZALO_CONNECT_VERSION = '
|
|
48
|
-
const ZALO_CONNECT_PLUGIN_SPEC = '
|
|
49
|
+
const ZALO_CONNECT_VERSION = 'latest';
|
|
50
|
+
const ZALO_CONNECT_PLUGIN_SPEC = 'clawhub:openclaw-zalo-connect';
|
|
49
51
|
|
|
50
52
|
function buildRelayPluginInstallCommand(prefix = 'openclaw') {
|
|
51
53
|
return `if [ ! -d "$OPENCLAW_STATE_DIR/extensions/${TELEGRAM_RELAY_PLUGIN_ID}" ]; then ${prefix} plugins install ${TELEGRAM_RELAY_PLUGIN_SPEC} 2>/dev/null || true; fi`;
|
|
@@ -316,11 +316,11 @@ if(touched){console.log('[patch-9router] Applied Codex compatibility patch.');}e
|
|
|
316
316
|
runtimeParts.push(`node - <<'NODE'\n${restoreConfigScript}\nNODE`);
|
|
317
317
|
runtimeParts.push(`node - <<'NODE'\n${securityCompatScript}\nNODE`);
|
|
318
318
|
if (zaloBackend === 'zalo-connect') {
|
|
319
|
-
//
|
|
320
|
-
//
|
|
321
|
-
//
|
|
322
|
-
//
|
|
323
|
-
const zaloConnectSpec = common.ZALO_CONNECT_PLUGIN_SPEC || '
|
|
319
|
+
// ZaloConnect install from ClawHub (latest). ensure_plugin skips when extensions/zalo-connect
|
|
320
|
+
// already exists, so restarts never re-download; the "Update" button in the dashboard fetches
|
|
321
|
+
// newer versions. No dist patching, no mentions.js, no watchdog: sticker/mention/reaction are
|
|
322
|
+
// native ZaloConnect actions.
|
|
323
|
+
const zaloConnectSpec = common.ZALO_CONNECT_PLUGIN_SPEC || 'clawhub:openclaw-zalo-connect';
|
|
324
324
|
runtimeParts.push(`ensure_plugin zalo-connect "${zaloConnectSpec}"`);
|
|
325
325
|
}
|
|
326
326
|
runtimeParts.push('openclaw gateway run');
|
package/dist/web/app.js
CHANGED
|
@@ -1096,7 +1096,7 @@ function botSkillsPanel() {
|
|
|
1096
1096
|
let toggleHtml = '';
|
|
1097
1097
|
const secs = [];
|
|
1098
1098
|
if (isInstalled) {
|
|
1099
|
-
toggleHtml = `<label class="feature-switch" title="${locked ? t('Bắt buộc cho bot Zalo — không thể tắt','Required for Zalo bots — cannot be disabled') : ''}"><input type="checkbox" data-feature-toggle="${key}" ${(flags[key] || locked) ? 'checked' : ''} ${(loading || locked) ? 'disabled' : ''}/><span></span></label
|
|
1099
|
+
toggleHtml = `<label class="feature-switch" title="${locked ? t('Bắt buộc cho bot Zalo — không thể tắt','Required for Zalo bots — cannot be disabled') : ''}"${locked ? ' style="opacity:.4;pointer-events:none;cursor:not-allowed;"' : ''}><input type="checkbox" data-feature-toggle="${key}" ${(flags[key] || locked) ? 'checked' : ''} ${(loading || locked) ? 'disabled' : ''}/><span></span></label>`;
|
|
1100
1100
|
if (item.openWebPort) {
|
|
1101
1101
|
secs.push(`<a class="secondary icon-btn2" href="${sameHostUrl('', item.openWebPort)}${item.openWebPath || ''}" target="_blank" rel="noopener" title="${t('Mở dashboard của plugin','Open the plugin dashboard')}" style="padding: 4px 8px; font-size: 11px; height: 28px; border-width: 1px;">${actionIcon('link')}<span>${t('Mở web','Open')}</span></a>`);
|
|
1102
1102
|
}
|