stswangzhiping
|
d91a309419
|
docs: clarify url vs code fields in qrcode event
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-15 18:02:51 +08:00 |
|
stswangzhiping
|
6da91c7d26
|
fix: correct binded_redirect error message - suggest alternate WeChat account
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-15 17:40:39 +08:00 |
|
stswangzhiping
|
f52ad363a2
|
fix: correct binded_redirect error message for personal WeChat unbind guide
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-15 17:30:05 +08:00 |
|
stswangzhiping
|
796c8d3431
|
fix: handle binded_redirect state inconsistency in WeChat login
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-15 17:27:57 +08:00 |
|
stswangzhiping
|
06036c6c73
|
feat: emit raw qrcode code field for client-side QR rendering
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-15 15:08:56 +08:00 |
|
stswangzhiping
|
eeb984ebfe
|
refactor: remove verify-code/reply support (not needed)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-14 22:20:10 +08:00 |
|
stswangzhiping
|
80e1c97000
|
feat: weixin login impl + sys-call reply support (v1.4.0)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-14 22:13:58 +08:00 |
|
stswangzhiping
|
3dba9fde32
|
feat: sys-call framework + channel.weixin stub (v1.4.0)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-14 21:47:27 +08:00 |
|
stswangzhiping
|
cdf2a5f5ac
|
feat: skip VFD on RK3588 devices (v1.3.8)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-08 22:38:18 +08:00 |
|
stswangzhiping
|
000dc4a46c
|
revert: remove ineffective showTime at startup, back to v1.3.7
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-08 10:49:15 +08:00 |
|
stswangzhiping
|
be49f32b50
|
feat: show time on VFD immediately at startup (v1.3.8)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-08 08:50:53 +08:00 |
|
stswangzhiping
|
6c1c0cf955
|
feat: restart openclaw-gateway after openclaw.json write (v1.3.7)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-05 22:11:46 +08:00 |
|
stswangzhiping
|
d89c2340da
|
fix: apply web search config on provider-unchanged early return; bump to 1.3.6
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-05 21:47:49 +08:00 |
|
stswangzhiping
|
7e44744c31
|
fix: apply web search config even when no provider configured; bump to 1.3.5
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-05 21:40:15 +08:00 |
|
stswangzhiping
|
684e9728dd
|
feat: write searxng config via .env + openclaw.json on activation/reconnect; bump to 1.3.4
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-05 20:49:04 +08:00 |
|
stswangzhiping
|
f61a0a4305
|
feat: ensure searxng config on reconnect if missing/changed; bump to 1.3.3
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-05 18:46:17 +08:00 |
|
stswangzhiping
|
4d13fdec8c
|
feat: write searxng web search config on activation, remove on unbind; bump to 1.3.2
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-05 18:26:39 +08:00 |
|
stswangzhiping
|
c3dd87f635
|
fix: rewrite _setHostname using fs to avoid sed -i temp file issue; bump to 1.3.0
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-04 20:00:59 +08:00 |
|
stswangzhiping
|
f363836712
|
fix: git pull in Node.js before calling update-clawd.sh --no-pull; startup service fix; bump to 1.2.9
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-04 19:25:18 +08:00 |
|
stswangzhiping
|
9e67969fd1
|
fix: hostname - remove sudo (clawd runs as root), use semicolon to run all 3 commands independently; bump v1.2.4
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-04 17:45:35 +08:00 |
|
stswangzhiping
|
f71d448047
|
fix: persist hostname to /etc/hostname and /etc/hosts; bump v1.2.1
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-04 17:29:09 +08:00 |
|
stswangzhiping
|
f8789876f5
|
feat: add share_key for Samba password, sync smbpasswd on startup
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-04 14:17:28 +08:00 |
|
stswangzhiping
|
4be305d0e2
|
chore: remove /etc/clawd/tailscale path, bump version to 1.1.9
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-04 11:27:18 +08:00 |
|
stswangzhiping
|
b4164689a6
|
fix: add /etc/clawd/tailscale/tailscale to bin candidates
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-04 09:46:05 +08:00 |
|
stswangzhiping
|
29c158f837
|
feat: headscale mesh integration - auto-join on bind, logout on unbind
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-03 19:39:16 +08:00 |
|
stswangzhiping
|
1a7e0a9738
|
feat: SSH STCP key generation and frp tunnel registration
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-02 18:07:33 +08:00 |
|
stswangzhiping
|
b4e0388c71
|
feat: report version, handle remote upgrade via update-clawd.sh
Made-with: Cursor
|
2026-04-30 18:18:30 +08:00 |
|
OpenClaw Bot
|
03dc7c2527
|
feat: split VFD backends by hardware
|
2026-04-26 23:12:12 +08:00 |
|
stswangzhiping
|
c9ce87c93a
|
fix: keep WiFi LED on after STA detection
|
2026-04-26 18:38:22 +08:00 |
|
stswangzhiping
|
a1c9cc9657
|
feat: report local network types
|
2026-04-26 17:29:58 +08:00 |
|
stswangzhiping
|
f6aad310a8
|
fix: improve WiFi AP recovery and scan
|
2026-04-26 10:57:54 +08:00 |
|
stswangzhiping
|
18bea4ae38
|
fix: applyFullProviderFromVps 无变化时跳过写盘
apiKey + 模型列表 MD5 均未变化时不写 openclaw.json,
避免 BOX 每次重连都触发不必要的 gateway 重启。
Made-with: Cursor
|
2026-04-23 08:22:32 +08:00 |
|
stswangzhiping
|
4cf0e4e948
|
feat: 重连时 MD5 校验模型列表,有变化才更新 openclaw.json
- 新增 computeModelsMd5():对模型 id 列表排序后取 MD5
- 新增 refreshModelsIfChanged():读现有 provider 配置拉新模型,MD5 不同才写盘
- client.js: 重连(active + 无完整 provider)时调用 refreshModelsIfChanged,而非直接跳过
Made-with: Cursor
|
2026-04-23 07:53:49 +08:00 |
|
stswangzhiping
|
c64aeab3b2
|
feat: model 列表增加 input 字段
Made-with: Cursor
|
2026-04-14 09:04:58 +08:00 |
|
stswangzhiping
|
8f6e7c55e9
|
feat: frpc use frp.claw.cutos.ai:443 with TLS for new devices
Made-with: Cursor
|
2026-04-09 18:21:03 +08:00 |
|
stswangzhiping
|
3d2e5d477a
|
revert: restore TCP 7000 frpc config (WebSocket via Nginx not working)
Made-with: Cursor
|
2026-04-09 17:40:14 +08:00 |
|
stswangzhiping
|
d9f826f978
|
feat: frpc uses WebSocket over port 443 for firewall compatibility
Made-with: Cursor
|
2026-04-09 17:15:44 +08:00 |
|
stswangzhiping
|
c1c51843c4
|
fix: remove redundant subtitle, update wifi label on setup page
Made-with: Cursor
|
2026-04-07 18:07:09 +08:00 |
|
stswangzhiping
|
43deb9afa0
|
fix: ttyd 改用 apt install,不再从 GitHub 下载
- install.sh: 改为 apt install -y ttyd,删除 GitHub 下载逻辑
- frpc.js: TTYD_BIN 改为 findTtydBin() 动态查找系统路径,删除 downloadTtyd()
Made-with: Cursor
|
2026-04-06 15:17:27 +08:00 |
|
stswangzhiping
|
f6afcd5cc2
|
refactor: 移除 restartGateway,openclaw.json 单次写入
gateway 自动检测文件变更并重启,clawd 无需主动 kill。
同时去掉 applyFullProviderFromVps 的预清理写盘,
改为拉完模型后一次性写入,避免 gateway 读到中间状态。
Made-with: Cursor
|
2026-04-05 09:12:57 +08:00 |
|
stswangzhiping
|
4852ded7e5
|
fix: clawd 不再写 agents/main/agent/auth-profiles.json
clawd 以 root 身份运行,写该目录会导致 gateway(sts 用户)的 agents 目录被 root 创建。
clawd 只需修改 openclaw.json,gateway 重启后会自行读取,无需操作 gateway 内部目录。
Made-with: Cursor
|
2026-04-04 21:33:35 +08:00 |
|
stswangzhiping
|
3fe5586613
|
feat: install.sh 预装 ttyd,frpc.js 去掉运行时下载
install.sh:
- 移除系统自带 ttyd 包(避免与 clawd 托管的 ttyd 端口冲突)
- 安装阶段下载 ttyd 1.7.7 到 /etc/clawd/ttyd,自动检测 arch
- 下载失败时给出提示和手动下载地址
frpc.js:
- startTtyd() 不再尝试运行时下载,binary 不存在时报错提示重跑 install.sh
- pkill 改为杀所有 ttyd 进程(pkill -x ttyd),不限路径,
避免系统自带 ttyd 占用 7681 端口导致 clawd 的 ttyd 启动失败
Made-with: Cursor
|
2026-04-04 18:16:07 +08:00 |
|
stswangzhiping
|
46dae37079
|
feat: 启动和连接时设置 hostname 为 claw-<claw_id>
- start(): 有 claw_id 时立即设置(重启恢复)
- _onConnected(): 每次连上 VPS 后设置(首次注册或重连确认)
- 用 exec 异步执行,不阻塞启动流程
Made-with: Cursor
|
2026-04-03 22:58:14 +08:00 |
|
stswangzhiping
|
fb8a408f93
|
fix(led): VFD 管道用 O_NONBLOCK 防止事件循环阻塞
FIFO 写入改为 O_WRONLY | O_NONBLOCK:
- 无读端(vfdservice 关闭读端后)openSync 立即抛 ENXIO 而非永久阻塞
- showPin blink timer 每 500-1000ms 自动重试,vfdservice 恢复读后
即可成功显示 PIN,彻底解决"长时间激活后解绑 PIN 不闪"问题
同时移除 66b94d8 加的 showTime keepalive:
- keepalive 用的也是阻塞 openSync,vfdservice 关闭读端时反而会
在 setTimeout 回调里阻塞整个事件循环,比不加更危险
Made-with: Cursor
|
2026-04-03 19:01:14 +08:00 |
|
stswangzhiping
|
66b94d828f
|
fix: 还原 inactive 路径 restartGateway + showTime keepalive
1. 还原 7737e08:removeProviderByName 重新调用 restartGateway(),
inactive/active 状态变化均重启 gateway 使 openclaw.json 生效
2. led.js showTime() 加 30s keepalive 定时器:持续向 vfdservice
管道写入,防止长时间无写入后管道"冷却",导致随后 showPin()
调用 openSync(FIFO, 'w') 因无读端而阻塞、blink timer 无法触发
Made-with: Cursor
|
2026-04-03 18:40:08 +08:00 |
|
stswangzhiping
|
7737e08464
|
fix: inactive 路径不重启 gateway,修复 PIN 不闪问题
removeProviderByName 中移除 restartGateway() 调用。
原因:inactive 时 kill openclaw-gateway 会破坏 vfdservice
(gateway 的子进程或共享 VFD 管道的进程),导致后续 showPin
写管道失败或被 gateway 重启后的时钟命令覆盖,数码管无法显示
PIN 闪烁。
inactive 期间设备 frp 隧道已断开,无人访问 gateway,无需立即
重启。下次 active 时 applyFullProviderFromVps 会写完整 provider
config 并重启 gateway。
Made-with: Cursor
|
2026-04-03 18:20:09 +08:00 |
|
stswangzhiping
|
c28bf53217
|
fix: WS 多次失败时统一显示 AP,移除 Err0 分支
WS 失败 ≥ 3 次无论是否有网络均显示 showAP,
不再区分"有网但 VPS 不可达"时显示 showErr0。
Made-with: Cursor
|
2026-04-03 16:06:34 +08:00 |
|
stswangzhiping
|
f4efb13612
|
fix: restartGateway 改异步,修复 inactive 时 PIN 不闪问题
原来 removeProviderByName 内用 execSync 调 pkill,在 showPin 前
阻塞事件循环约 100ms+;若 vfdservice 是 gateway 子进程则管道无
读端,导致 showPin 写入失败或 blink setTimeout 无法触发。
改为 exec(异步):pkill 在后台执行,不阻塞事件循环,LED/VFD
操作(showPin blink)可正常调度。
Made-with: Cursor
|
2026-04-03 11:41:59 +08:00 |
|
stswangzhiping
|
7c9a6e913e
|
fix: 确保 origin 更新后再重启 gateway
active+full provider 路径:
addProviderSync → onDone(写 origin) → restartGateway 一次
之前顺序错误导致 gateway 用旧 origin 重启后再重启一次。
_updateOpenClawOrigin 只负责写盘,不再调 pkill。
移除 client.js 中已无用的 execSync 引入。
Made-with: Cursor
|
2026-04-03 10:53:05 +08:00 |
|
stswangzhiping
|
701251f19b
|
fix: 写盘 openclaw.json 后自动重启 gateway
- openclaw-provider.js: 新增 restartGateway(),在 removeProviderByName
和 applyFullProviderFromVps 写盘成功后均调用,确保 inactive/active
两路都能触发重启
- client.js: _updateOpenClawOrigin 去掉 CLAWD_OPENCLAW_GATEWAY_PKILL
env var 门控,origin 变更后默认重启
Made-with: Cursor
|
2026-04-03 10:50:29 +08:00 |
|