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 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.5-0EA5E9?style=for-the-badge" alt="Version 5.13.5" /></a>
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.5
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.5-0EA5E9?style=for-the-badge" alt="Version 5.13.5" /></a>
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.5
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 pinned ${ZALO_CONNECT_PLUGIN_SPEC}...`);
1758
- const repo = String(ZALO_CONNECT_PLUGIN_SPEC).split('#')[0];
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 is a GIT-pinned fork (not a ClawHub package) — install/update it by cloning the
3347
- // pinned tag inside the container (same as first-boot/login). Powers the dashboard "Update"
3348
- // button so existing Zalo bots can upgrade to the pinned version (bump the pin in common-gen.js).
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 pinned ${ref} inside ${botContainer}...`);
3358
- const cmd = `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" --force 2>&1`;
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
- // Pin the maintained fork tag so setup never falls back to upstream/ClawHub.
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 = '3.0.2';
48
- const ZALO_CONNECT_PLUGIN_SPEC = 'https://github.com/tuanminhhole/openclaw-zalo-connect.git#v3.0.2';
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
- // Pinned ZaloConnect install (never `latest` — plan §4.1). ensure_plugin skips the
320
- // install when extensions/zalo-connect already exists, so restarts never re-download
321
- // and a reconnect never reinstalls. No dist patching, no mentions.js, no watchdog
322
- // hacks: sticker/mention/reaction are native ZaloConnect actions.
323
- const zaloConnectSpec = common.ZALO_CONNECT_PLUGIN_SPEC || 'https://github.com/tuanminhhole/openclaw-zalo-connect.git#v3.0.1';
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>${locked ? `<span title="${t('Đã khoá','Locked')}" style="margin-left:6px;opacity:.55;font-size:12px;">🔒</span>` : ''}`;
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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-openclaw-bot",
3
- "version": "5.13.5",
3
+ "version": "5.13.6",
4
4
  "description": "Interactive CLI installer for OpenClaw Bot",
5
5
  "main": "dist/cli.js",
6
6
  "bin": {