- Commands now run in goroutines, message loop never blocked
- WebSocket writes protected with mutex for concurrency safety
- Max 5 concurrent commands with semaphore limiting
- Long-running commands (npm install, large downloads) no longer freeze agent
- agent.ps1: ID format changed from hostname-random to pc-XXXX (pure digits)
- agent.ps1: Device ID display reformatted for easier copy
- agent.exe: rebuilt with dev-XXXX numeric ID generation
- Remote support section: Agent mode first (recommended), SSH as advanced option
- FAQ: update remote help command to agent.ps1 with link to agent.html
- Security section: reflect dual-token auth model
- FAQ security answer: explain split token architecture
- Split auth into agent-token (public) and controller-token (secret)
- Agent token in scripts can't be used to control devices
- Add agent.html: step-by-step guide for customers (Win/Mac/Linux)
- Update agent binaries with new token defaults
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.
- 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
- New "远程维护服务" page with pricing, one-line commands, WeChat QR
- Replace "社区资源" nav item (redirected traffic to own services)
- Add remote support CTA in "联系我们" page
- Security explanation and FAQ for remote assistance
- Split install steps into Mac/Linux (npm) and Windows (pre-bundle zip)
- Add Windows troubleshooting FAQ (Node version, download speed, remote help)
- Mention pre-bundle mode in quickstart section
- Add remote-help.ps1 as support option
- 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
- 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
--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.
- remote-help.ps1: auto-install SSH + bore tunnel for Windows
- remote-help.sh: auto-enable SSH + bore tunnel for Mac/Linux
- Users run one command, get connection info to send to support
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.
- 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