Commit Graph

34 Commits

Author SHA1 Message Date
b076815171 feat: 海外化改造(新加坡市场)—— 阶段 0-3
Some checks failed
Tests / test (push) Has been cancelled
按 U-Claw-海外化改造方案.md 与 范围决策记录.md 实施。这是 fork,不回上游:
海外版删掉的正是上游的中国市场默认值。

阶段 0 地基
- 下载源全部改国际:脚本/CI 61 处 + lockfile 880 条 npmmirror URL 归零
  (lockfile 那 880 条是 npm 的 resolved 字段,脚本层参数化根本绕不过它)
- 移除 install.ps1 里三个第三方 GitHub 加速代理,bundle 改直连 + SHA256 校验
  (原来只检查"文件大于 1MB"就解压运行)
- 技能内容与分发分离:skills/manifest.json 单一来源,install.sh 1170→658 行、
  install.ps1 721→546 行,两者技能内容归零
  实测原来是三份不一致:skills-cn 完整、install.sh 约 40%、install.ps1 约 17%,
  且 7 个通用技能只有 U 盘版有 —— 一键安装的用户一个能用的技能都没有
- Node 版本三种(v22.14/16/22.1)统一,新建 NODE_VERSION 单一来源
- Config 页三份合一。portable/Config.html 用根相对路径调 API 却只从 file:// 打开,
  保存功能已静默失效两个月;现缩为 120 行重定向壳
- 测试接入 CI(此前 node --test 无人运行,所有断言形同虚设)

阶段 1 双语可用
- 浏览器侧 i18n:JSON 为源、生成经典 script(file:// 下 fetch 本地 JSON 被拦)
  语言跟盘走不跟机器走:启动器写 data/.openclaw/locale.js
- 8 处硬编码 lang="zh-CN" 归零,data-i18n 覆盖 213 处,词条 en/zh 各 279 条
- B3 单框 Key:12 张模型卡 → 一个输入框,前缀识别 provider,
  服务端 /api/test-key 发 1-token 请求实测,错误映射成人话
  Key 填错到得知:从"直到对话失败"降到 ≤1 秒
- 区域格式 SG:DD/MM/YYYY、12 小时、S$、Asia/Singapore
  (ICU 在 en-SG 下把 SGD 渲染成裸 $,与美元无法区分,故自行拼 S$)
- README 内容分叉而非翻译,§1.3 证据清单逐条清零

阶段 2 降门槛
- 启动逻辑上移 lib/start.mjs:Windows-Start.bat 220→28 行、
  Mac-Start.command 235→33 行
  修掉 Mac 侧两个 bug:控制台端口硬编码 18788(回落时打开死页)、
  微信插件从未在 Mac 上安装
- U 盘根目录 23 → 3 个可点文件,其余进 advanced/
- 首启向导:语言 → 用途(7 角色,manifest 驱动)→ 密钥,答过不再问
- 三档界面,Simple 档隐藏一切技术名词
- 自动自愈:启动失败先自查自修,修不好导出脱敏诊断包
  (Doctor 从"用户要知道去点的工具"变成后台机制)

阶段 3 技能库
- 19 个英文技能,planned 归零。sg-weather / sg-transport 的端点均实测过
- SkillHub 从 56 张手写第三方卡片改为 manifest 生成:703→125 行,中文归零

其他
- origin.json 收拢所有运行时地址,tests/origin.test.mjs 保证迁移不会漏
- portable/ 下用户可见中文归零(由断言保证)
- 82 项测试

未验证(本机无 Windows / 无 pwsh):
- install.ps1、setup.ps1 约 210 行改动从未经 PowerShell 解析器
- 完整启动路径仅在假 node + 假 openclaw 上冒烟
- 8 个 .bat 的盘根推导仅静态断言
详见 U盘实测清单.md

受阻:
- 隐藏黑窗口 —— 需代码签名证书(.vbs 已被 Windows 弃用,替代方案都要签名)
- 场景卡 —— OpenClaw 上游 Dashboard 无预填 prompt 接口
- 官网 36 条 —— 上游 2026-04-14 拆到私有仓库,无权限
2026-08-17 18:37:49 +08:00
hfshfg
77a3546459 chore(release): 发布 v2.1.17 — 修复 DeepSeek 已下线模型名
api.deepseek.com 停用 deepseek-chat,配置页和安装脚本仍写死旧名,导致选
DeepSeek 的客户每条消息都 400 失败且界面无报错。详见 0be55b9。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 22:46:11 +08:00
hfshfg
0be55b9064 fix(models): DeepSeek 写死已下线的 deepseek-chat,客户配完必坏
api.deepseek.com 已停用 deepseek-chat / deepseek-coder / deepseek-reasoner,
现在只接受 deepseek-v4-flash 和 deepseek-v4-pro,用旧名调用直接返回:

  400 The supported API model names are deepseek-v4-pro or
      deepseek-v4-flash, but you passed deepseek-chat.

Config.html 把 card.dataset.model 直接写进 openclaw.json 的 models[].id 和
agents.defaults.model.primary,所以客户只要在配置页点「DeepSeek」卡片,配出来
的就是必然失败的配置——网关照常 listening、webchat 照常连上,只在日志里刷
embedded_run_agent_end/isError=True,界面上表现为「发消息没反应」,极难自诊。

客户机 pc-5376 实测:连续 2 小时、20+ 次对话全部 400 失败。

改动(deepseek-chat -> deepseek-v4-flash):
- portable/Config.html                     data-model,落盘值
- portable/config-server/public/index.html data-model,落盘值(同一清单第 2 份拷贝)
- install/install.ps1                      交互式选项 1
- install/install.sh                       交互式选项 1 + 未知选项兜底
- u-claw-app/resources/Config.html         已废弃的 Electron 归档,一并改防止复活
- portable/Mac-Menu.command                提示文字
- portable/skills-cn/deepseek-helper/      技能文档模型表(会被 AI 读取并转述给用户)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 20:48:35 +08:00
u-claw-bot
735e4de854 chore(upstream): 跟随 OpenClaw 2026.7.1-2,发布 v2.1.16
自动跟踪上游:OpenClaw npm latest 升到 2026.7.1-2,
自动 bump 壳版本到 2.1.16 并打 tag 触发发版。
2026-07-19 04:17:40 +00:00
u-claw-bot
50a4e45ea4 chore(upstream): 跟随 OpenClaw 2026.7.1-1,发布 v2.1.15
自动跟踪上游:OpenClaw npm latest 升到 2026.7.1-1,
自动 bump 壳版本到 2.1.15 并打 tag 触发发版。
2026-07-18 03:49:16 +00:00
u-claw-bot
7c23358142 chore(upstream): 跟随 OpenClaw 2026.7.1,发布 v2.1.14
自动跟踪上游:OpenClaw npm latest 升到 2026.7.1,
自动 bump 壳版本到 2.1.14 并打 tag 触发发版。
2026-07-14 03:52:03 +00:00
u-claw-bot
b3fc827b60 chore(upstream): 跟随 OpenClaw 2026.6.11,发布 v2.1.13
自动跟踪上游:OpenClaw npm latest 升到 2026.6.11,
自动 bump 壳版本到 2.1.13 并打 tag 触发发版。
2026-07-01 05:15:56 +00:00
u-claw-bot
06113d8429 chore(upstream): 跟随 OpenClaw 2026.6.10,发布 v2.1.12
自动跟踪上游:OpenClaw npm latest 升到 2026.6.10,
自动 bump 壳版本到 2.1.12 并打 tag 触发发版。
2026-06-24 04:58:30 +00:00
hfshfg
6ab87c6b67 fix(portable): 微信扫码重定向/Telegram botToken/Windows 启动端口 (v2.1.11)
- 微信扫码卡死: config-server 跟随 IDC scaned_but_redirect 把后续轮询切到
  redirect_host,刷新二维码时重置 pollBaseUrl(扫码后不再卡住等不到 confirmed)。新增测试。
- Telegram 渠道改用 botToken(顶层 telegram 只认 botToken,旧 token 别名被静默忽略 → 连不上)。
- Windows-Start: 先起 config-server 再探测 gateway 端口,从 runtime.json 读实际
  configServerPort 并按该端口开 Config Center / 传给 wait-gateway(18788 被占也能开)。
- wait-gateway.bat: 用 ping 代替 timeout /t(避开 PATH 上 GNU coreutils timeout 冲突),接受 CONFIG_PORT 参数。
- Windows-Menu: IF 块内 echo 的 () 转义为 ^(^),修 v2.1.10 闪退回归。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 00:41:20 +08:00
hfshfg
3439db32ad feat(portable): 内网/局域网可用性工具包 + 启动绕代理 (v2.1.10)
便携版在内网/离线/受控浏览器环境下"配不上、用不了、查不清"的三个痛点工具化,
Win + Mac 双端,纯 Node 零依赖脚本,中文提示由 node 打印(.bat 保持纯 ASCII,
.command 保持 LF),三端真机验证(本机 Win / Mac mini / 客户机 pc-7512)。

新增工具:
- lib/intranet-check.mjs (+ Windows-IntranetFix.bat / Mac-IntranetFix.command)
  一键体检: 代理env + 直连可达 + 真发一条对话,分清"网络不通 vs 配置错"。
- lib/setup-local-model.mjs (+ Windows-LocalModel.bat / Mac-LocalModel.command)
  纯命令行配 Ollama / newapi 并当场实测,绕开打不开的 Control UI;写前自动备份+merge。
- lib/resolve-no-proxy.mjs 接入 Windows-Start.bat / Mac-Start.command:
  把配置里的模型 host 写进 NO_PROXY,避免系统代理劫持内网模型请求
  (OpenClaw 自身只 bypass loopback CDP,不管模型 host)。
- OpenClaw-Doctor.bat / Mac-OpenClaw-Doctor.command: 官方 doctor 的隔离进阶入口
  (只读、非交互;doctor 实跑慢且 TTY-only,故不进客户一键流程)。

测试: tests/windows-launchers.test.mjs 新增回归
- 客户面 .bat 必须纯 ASCII (UTF-8 中文会被 GBK cmd 读乱,报 usebackq 不是命令)
- macOS .command 必须 LF-only (CRLF 触发 bad interpreter: /bin/bash^M)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 18:53:21 +08:00
u-claw-bot
7805ee01f7 chore(upstream): 跟随 OpenClaw 2026.6.9,发布 v2.1.9
自动跟踪上游:OpenClaw npm latest 升到 2026.6.9,
自动 bump 壳版本到 2.1.9 并打 tag 触发发版。
2026-06-21 05:55:16 +00:00
hfshfg
d4fe3b6410 chore: bump version to 2.1.8
只发便携 U 盘版的首个补丁版:修 gateway.auth.scopes 致命 bug + 配置中心可见性。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 19:03:57 +08:00
hfshfg
8981c21262 fix(config): 移除 gateway.auth.scopes,修复保存后 gateway 起不来
Config.html 生成的 openclaw.json 里 gateway.auth 带 scopes:['operator.admin'],
被 OpenClaw 2026.6.x 的 strict schema 拒绝(gateway.auth: Invalid input),
导致用户选完模型保存后 gateway 启动失败。三个 Config 页统一为
{ mode:'local', auth:{ mode:'token', token:'uclaw' }, remote:{ token:'uclaw' } },
与服务页 public/index.html 及启动脚本默认配置对齐。

实测:虾盘云 Key + deepseek-v4-pro 直连 api.u-claw.org/v1 返回 200;
去 scopes 后 gateway 正常启动并加载 uclaw-cloud provider。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 15:51:26 +08:00
hfshfg
8cd5dbfea4 chore: 停发并归档 Electron 桌面版,产品只保留便携 U 盘版
桌面 Electron 版是商业版 ClawX 已做得更好的事的劣化版,且启动坑多
(冷启动建编译缓存 >30s 撞写死的 30s 硬超时,绿色版每次解压 837MB
永远冷启动)。U-Claw 的本质是「插上 U 盘解压即用」,故停发桌面版,
只发便携版。

- release.yml: 删除 desktop-windows / desktop-mac 两个 job;publish
  只依赖 portable-windows-full;发布说明去掉桌面安装版/dmg,只留便携版
- u-claw-app/DEPRECATED.md: 新增归档说明(停发原因、坑、如何捡回)
- u-claw-app/src/main.js: 顺带修 gateway 超时 30s→180s + spawn 加固定
  NODE_COMPILE_CACHE(让归档代码处于可用状态)
- 删除 usb-release/: portable/ 的老前身,2026-04 后无人维护、全仓库零
  引用,是「为什么有两个 U 盘版」的混乱源
- README.md / CLAUDE.md: 分发形态更新为便携版唯一主发

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 00:15:32 +08:00
hfshfg
2697b893d5 chore: bump version to 2.1.7
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 22:45:59 +08:00
hfshfg
086fd35b29 chore: bump version to 2.1.6 2026-06-17 19:33:25 +08:00
hfshfg
df96be9af9 fix(release): 桌面版版本号跟 git tag 自动联动
之前 electron-builder 从 package.json 取版本号(写死 2.1.4),
导致 dmg/exe 文件名与 git tag(v2.1.5)脱节。

- 两个 electron build job 在构建前用 tag 号同步 package.json
  (npm version --no-git-tag-version),文件名自动跟 tag 走
- bump package.json 到 2.1.5 保持本地一致

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 17:27:00 +08:00
hfshfg
0d88c9b0cc chore(portable): 回归纯开源 — 移除指纹/自动开户/崩溃上报
去掉不适合开源的商业逻辑,保持一个纯粹的开源 U 盘工具:

- 删除设备指纹 (fingerprint.mjs)、虾盘云自动开户 (bootstrap-xiapan.mjs /
  xiapan-client.mjs)、自动崩溃上报 (report-bug.mjs),portable 和 Electron 两份都删
- 启动脚本去掉绑定指纹调用 + 全部 --auto 自动上报;保留 bonjour 禁用与括号转义
- config-server 删掉 /api/xiapan/* 和 /api/report-bug 端点
- Config.html:虾盘云改为普通「首选」卡片,强调中转站 / 国内外全部大模型,
  和其它 provider 一样需用户自填 Key(去 u-claw.org/cloud.html 注册),不再自动开户
- 报 Bug 表单改为指向 GitHub Issue,不再上传日志
- README / release notes / CLAUDE.md 文案改为「选模型填 Key,不绑定设备、不打指纹、不上传数据」
- OPENCLAW_VERSION 跟进最新龙虾版本 2026.6.6 → 2026.6.8

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 11:47:19 +08:00
8000cabbage
3ff3661825 fix: stabilize Windows launchers for v2.1.4
Fix Windows portable, installer, and desktop launcher startup paths; bump desktop metadata to 2.1.4.
2026-05-19 14:30:34 +08:00
hfshfg
cc2984234b feat(v2.1.2): align with ClawX schema + config-server port fallback
Three changes for v2.1.2:

1. bootstrap-xiapan now writes "agents.defaults.model.primary/fallbacks"
   (uclaw-cloud/deepseek-v4-flash + 3 fallbacks) and an empty models[],
   matching the ClawX commercial schema. Lets OpenClaw runtime auto-discover
   models from /v1/models instead of hard-coding a list that drifts.

2. config-server tries ports 18788..18798 with EADDRINUSE fallback and
   persists the live port to data/.openclaw/runtime.json so future tooling
   can discover it. Fixes silent failure when a second portable instance
   started while 18788 was occupied.

3. u-claw-app/package.json version 2.0.0 -> 2.1.2 so .exe/.dmg filenames
   align with the release tag.
2026-05-03 00:07:09 +08:00
hfshfg
1f8224561b fix(bootstrap): use "name" instead of "label" for model schema
OpenClaw 2026.4.29 renamed the per-model field from "label" to "name". The
old field is now an Unrecognized key, which fails schema validation at
gateway startup and exits OpenClaw before any HTTP listener binds.

Symptom (v2.1.0 first-launch):
  - models.providers.uclaw-cloud.models.0.name: Invalid input: expected string, received undefined
  - models.providers.uclaw-cloud.models.0: Unrecognized key: "label"
  - throwInvalidConfig() at io-DaEsZ_NY.js:2901 -> process exit

Found via end-to-end H: drive test of v2.1.0 portable zip.
2026-05-02 18:58:05 +08:00
hfshfg
9ecbbd445c feat: 内置虾盘云 + 设备指纹绑定 + Release 流水线
- 新增 portable/lib/{fingerprint,xiapan-client,bootstrap-xiapan}.mjs:
  跨平台设备指纹(Win USB/disk + Mac UUID + Linux machine-id + seed 兜底)
  生成 sk-uc-{fingerprint} 形式的虾盘云 apiKey,启动时 merge 到 openclaw.json
- Config.html 顶部新增「已绑定虾盘云」横幅:指纹来源 + Key + 余额 + 充值/解绑
- config-server 增加 /api/xiapan/{status,bind,unbind} 三个端点
- Electron app 在 whenReady 调 bootstrap,新增 sync-lib.js 让 build 前自动同步
- 锁 OpenClaw 版本到 2026.4.29(OPENCLAW_VERSION 单一来源)
- 删除死代码 portable/充值.html
- 新增 .github/workflows/release.yml:tag 触发,出 portable zip + Electron exe/dmg
- README 增加内置虾盘云说明 + 直接下载发行版指引
2026-05-02 17:07:42 +08:00
hfshfg
690d1b7060 fix: 修复 QQ Bot 配置后 Gateway 无法启动的问题
1. 清除旧版 "agent" 废弃键 — 保存 channel 配置时自动删除旧的 agent 键,
   防止 OpenClaw 报 "agent.* was moved" 错误(前端 + 服务端双重防御)
2. Dashboard URL 动态端口探测 — 将硬编码 18789 改为扫描 18789-18799,
   解决端口被占用时打不开 Dashboard 的问题
3. 安装脚本配置格式升级 — install.sh / install.ps1 / install-silent.ps1
   生成的 openclaw.json 从旧的 "agent" 格式迁移到 "agents.defaults.model.primary"
4. 文档示例同步更新 — CLAUDE.md / cloud.html / guide.html 中的配置示例

影响文件: 14 个(portable/, install/, website/, u-claw-app/, usb-release/)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 22:05:09 +08:00
hfshfg
4dac1ae4ab fix: code review 修复两处 bug 并优化启动提示
- fix(setup.bat): 修复 Node.js 解压路径错误
  xcopy 来源从 %TEMP%\node-v22-win-x64\* 改为
  %TEMP%\node-extract\node-v22-win-x64\*,
  否则解压后 xcopy 找不到文件,Node.js 安装必然失败
- fix(Config.html): 点击「启动 OpenClaw」后 toast 改为
  「配置已保存!请关闭此页面,回到启动窗口使用 U-Claw」,
  避免用户误以为点击后会自动启动而一直等待
  (portable / usb-release / u-claw-app 三个版本同步)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 09:48:44 +08:00
hfshfg
3f6f960ffc fix: 修复 bat 编码乱码、Config.html 打不开、missing scope 问题
- fix(bat): 所有 Windows .bat 文件加 UTF-8 BOM,修复中文乱码
  (portable 和 usb-release 共 7 个文件,close #3)
- fix(usb-release/Windows-Start.bat): 首次启动打开 Config.html
  时补加 file:/// 前缀,修复浏览器无法打开本地文件的问题
  (close #12)
- fix(Config.html): gateway.auth 加入 scopes: ['operator.admin'],
  修复配置模型时报 missing scope: operator.admin 错误
  (portable / usb-release / u-claw-app 三个版本同步,close #11)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 09:31:16 +08:00
hfshfg
4647a49cea fix: 修复 Telegram 401 错误并新增 Windows setup.bat
- fix(Config.html): telegram channel 配置字段 botToken → token,
  修复接入 Telegram 时所有请求返回 401 Unauthorized 的问题
  (影响 portable / usb-release / u-claw-app 三个版本)
- feat(portable): 新增 setup.bat,Windows 用户可一键下载
  Node.js v22 + 安装 OpenClaw + 安装中文技能包,
  对应 setup.sh 的 Windows 版本(解决 issue #10 #17)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 09:28:27 +08:00
dongsheng123132
c0d047496b fix(app): 首次启动自动跳配置页 + config-server 支持 API 读写
- 启动时检测 hasModelConfigured(),未配置则跳 Config.html
- config-server 新增 GET/POST /api/config 和 POST /api/done
- Config.html 保存配置后自动跳转 Dashboard
2026-03-19 15:50:02 +08:00
dongsheng123132
5564c1460e fix(brand): 作者改为 U-Claw,去掉个人名字 2026-03-19 15:46:31 +08:00
dongsheng123132
f8db448652 feat(brand): 更新开发者为贺方升,完善品牌信息 2026-03-19 15:43:27 +08:00
dongsheng123132
d1c293cd5c feat(brand): 替换 app 图标为虾钳 U logo 2026-03-19 15:42:53 +08:00
dongsheng123132
889fc2a685 feat(config): Config.html Pro 版 + 渠道卡片展开填写 + Portable 模式
- Config.html 全新 Pro 版:3步式配置(选模型→填Key→启动)
- Step 3 渠道卡片可展开填写:Telegram / QQ Bot / 飞书 / 企业微信
- 渠道配置启动时自动写入 openclaw.json
- main.js 支持 Portable 模式(.app 旁有 portable/ 目录时使用)
- hasModelConfigured() 兼容新配置格式
- Node 升级到 v22.16.0
2026-03-19 15:25:42 +08:00
dongsheng123132
c2084094e9 fix: setup.sh skip interactive prompt in non-TTY mode 2026-03-12 13:30:49 +08:00
dongsheng123132
71e4f5b357 feat: add one-click setup scripts for desktop app (Mac + Windows)
- setup.sh: auto-downloads Node.js + npm deps + runtime from China mirrors
- setup.bat: same for Windows, guides to install Node.js if missing
- Both set Electron mirror to npmmirror.com for China users
- Updated README with new setup instructions
2026-03-12 13:25:18 +08:00
dongsheng123132
be734cb111 feat: restructure repo for collaboration + add desktop app source
- Reorganize project: clean structure (portable/ u-claw-app/ usb-scripts/ website/)
- Move docs into website/, rename uclaw-scripts to usb-scripts
- Add u-claw-app/ Electron desktop source code
- Add portable/setup.sh: one-command dev environment setup
- Add portable/SkillHub.html: skill marketplace page
- Update README: dev guide, contribution workflow, project structure
- Update .gitignore: exclude runtime binaries and build artifacts
- Expand China install guide: npm mirrors, detailed onboard wizard
2026-03-12 10:59:26 +08:00