Commit Graph

19 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
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
hfshfg
2d0f33d5a0 chore: 加 .gitattributes 锁定换行符(修跨平台脚本隐患)
core.autocrlf 在不同机器上会把 .command/.sh 转成 CRLF,导致 Mac 用户
双击 .command 报 bad interpreter。明确锁定:
- .bat/.cmd/.ps1 → CRLF(Windows 批处理需要)
- .command/.sh/.mjs/.js/.json → LF(Mac/Linux 需要)

附带把 install/README.md、Windows-Menu.bat 的换行一次性规范化(纯换行,
无内容改动)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 12:29:45 +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
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
1bf5402d34 fix(bootable+install): harden persistence script, setup-openclaw, install.sh + add SECURITY.md
- 3-create-persistence.ps1: chain dd && mkfs.ext4 with && (was ;, so dd
  failures still ran mkfs and produced bogus images); fix \wsl$\$wslDistro
  variable expansion ambiguity using \${wslDistro}; mirror docker-desktop
  branch with the same && chaining
- setup-openclaw.sh: guard mktemp failure; ensure partial node tarballs are
  cleaned via EXIT trap; tolerate hosts with no non-loopback NIC under
  pipefail; don't let test-installation.sh failure exit the post-install
- install.sh: add `set -o pipefail`; surface npm install failures (was
  hidden by `| tail -5`); JSON-escape user-provided API_KEY before writing
  to openclaw.json so keys with backslashes/quotes don't break the config
- Add SECURITY.md: private disclosure channel + scope
2026-05-01 15:45:32 +08:00
hfshfg
b0a9cb3f58 fix(install): npm-cli.js path + CONTRIBUTING/PR template
install.sh: bundled Node 的 INSTALL_NPM 之前指向 bin/npm shell wrapper,
通过 \"node npm\" 调用会失败。改为 lib/node_modules/npm/bin/npm-cli.js,
并加 run_npm() 帮助函数区分系统 Node(用 npm 可执行)和 bundled Node。

install.ps1: 系统 Node 场景下 npm-cli.js 路径推导脆弱。改为按候选路径
依次试探,找不到则直接退到 npm.cmd。

新增 CONTRIBUTING.md + .github/PULL_REQUEST_TEMPLATE.md,规范 PR 流程,
减少空白/无说明 PR(对应 issue PR #36)。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 15:41: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
c5b9b77c9b docs(install): 更新 README 安装流程,区分 Mac/Linux(7步) 和 Windows(6步)
补充 Windows bundle 下载所用的国内镜像列表说明。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 20:04:43 +08:00
hfshfg
1c459edb24 fix(install): 修复 Windows 安装时下载卡住的 bug
- install.ps1: 修复镜像 URL 拼接错误($BUNDLE_URL 已含完整域名导致双重 https://)
- install.ps1: 替换失效镜像(gh-proxy.com/mirror.ghproxy.com),改用实测可用的 ghproxy.net 和 gh.idayer.com
- install.ps1: curl fallback 同步修正 URL,加 --retry 2
- install.ps1: 下载失败时打印手动下载地址,便于用户自助
- install.ps1: 修正步骤编号跳号问题 [1/7]~[7/7] → [1/6]~[6/6](实际共 6 步)
- install.sh: 同步 Node.js 版本 v22.14.0 → v22.16.0,与 Windows 版保持一致

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 19:59:56 +08:00
dongsheng123132
6c512fc8c7 fix(install): fix garbled Chinese on Windows by switching to English-primary UI
Windows CMD/PowerShell default encoding (CP936) breaks UTF-8 Chinese output
when running via `irm | iex`. Changed all user-facing messages to English
with ASCII-safe characters. Skills content also converted to English.
Encoding setup strengthened with cmd /c chcp 65001 + Console encoding.
2026-03-19 22:08:21 +08:00
dongsheng123132
cb8f369907 feat: pre-install remote-help.bat and uninstall.bat in .uclaw/
- remote-help.bat: one-click remote support (downloads remote.ps1 on demand)
- uninstall.bat: one-click uninstall with confirmation prompt
- Both included in install summary output
2026-03-18 20:02:50 +08:00
dongsheng123132
e9f8a01fc3 fix: upgrade Node to v22.16.0 (OpenClaw requires >=22.16.0) and fix config format
- Node v22.14.0 → v22.16.0 in all install scripts
- Config: remove deprecated agent.* format, use minimal gateway-only config
- OpenClaw auto-migrates agent config on first run
2026-03-18 19:03:15 +08:00
dongsheng123132
faad0d7efa feat: replace npm install with pre-bundled zip download
- Bundle openclaw + qqbot as zip on GitHub Releases
- Download via China GitHub mirrors (ghfast, gh-proxy, ghproxy)
- No more npm install = no git dependency, no ENOENT, no pipe issues
- Falls back through multiple mirrors before giving up
2026-03-18 17:56:38 +08:00
dongsheng123132
5f5f802328 fix: use Set-Location instead of --prefix for npm install
--prefix flag is ignored by npm on Windows, causing it to look for
package.json in user home dir instead of core dir. Switch to explicit
Set-Location (cd) to change CWD before running npm install.
2026-03-18 17:45:56 +08:00
dongsheng123132
6ec0559010 fix: disable ErrorActionPreference Stop around npm calls
PowerShell $ErrorActionPreference="Stop" treats any npm stderr output
(warnings, progress) as a terminating NativeCommandError. Temporarily
switch to "Continue" during npm install and check $LASTEXITCODE instead.
2026-03-18 16:26:16 +08:00
dongsheng123132
18565950ea fix: bypass npm.cmd entirely, use node.exe npm-cli.js for Windows pipe mode
- Replace $INSTALL_NPM (npm.cmd) with $NPM_CLI (npm-cli.js) + $INSTALL_NODE
- Use --prefix instead of Push-Location to avoid CWD issues in irm|iex pipe
- Restore PATH for downloaded Node (npm-cli.js internally needs node in PATH)
- Use [IO.File]::WriteAllText with BOM-free UTF8 for package.json/config/skills
- Add debug output before npm install for easier troubleshooting
2026-03-18 16:21:53 +08:00
dongsheng123132
71d76a4055 fix: Windows npm.cmd cannot be executed by node.exe directly
On Windows, npm.cmd is a batch wrapper, not a JS file. Calling
`node.exe npm.cmd install` causes loader errors. Fix:
- Add downloaded Node dir to PATH so npm.cmd can find node.exe
- Call `npm.cmd install` directly instead of `node.exe npm.cmd install`
- Add error handling for OpenClaw install failure
2026-03-18 16:06:15 +08:00
dongsheng123132
bb537f3ce2 feat: add one-line install module (curl | bash / irm | iex)
New install/ module for network-based installation without USB:
- install.sh: Mac/Linux 7-step installer (Node.js + OpenClaw + QQ plugin + 10 CN skills + interactive model config + launcher)
- install.ps1: Windows PowerShell equivalent
- All downloads via npmmirror.com China mirrors
- 10 AI model choices with Chinese interactive menu (default DeepSeek)
- Scripts copied to website/ for Vercel hosting at u-claw.org/install.sh

Updated guide.html with dedicated "一键在线安装" page section and quickstart integration.
2026-03-18 15:39:33 +08:00