Rename scripts with -Windows/-Mac/-Linux suffix so users can easily
identify which file to double-click on the USB drive.
Add tests/test-scripts.sh with 93 checks covering:
- File existence, bash syntax, portable mode, gateway run, security
- Cross-platform consistency between .bat and .command versions
Old approach wrote .env which OpenClaw ignores. Now writes directly
to portable-home agent config files and sets default model via
openclaw config set.
Gateway run doesn't open browser by itself. Now scripts wait for
port 18789 to be ready, read auth token from config, and open the
dashboard URL in the default browser automatically.
- Config/state/memory now saved to USB drive (portable-home/)
- Remove pnpm dependency, use npm directly
- Add spinner animation for long copy operations
- Use tar instead of cp -R to avoid macOS resource fork issues
- Add dashboard menu option [17]
- Add safety warnings for shared/temporary computers
- Simplify docs: remove Linux support, outdated pricing info
- Add ~/.local/bin symlinks (no sudo needed)
1. Windows: change "node npm.cmd" to "call npm.cmd" (npm.cmd is a
batch wrapper, not a JS file — can't run with node.exe)
2. Build: use pnpm instead of npm (upstream build script calls pnpm
subcommands that fail without it); add set -eo pipefail
3. Build: fail explicitly when dist/ not generated instead of || true
4. Run scripts: separate first-time onboard from normal startup
(was running onboard every time, blocking normal launch)
5. Windows .bat: fix findstr patterns for .env dedup with /r flag
Critical:
- build script now copies launcher menu + china guide (was missing!)
- Windows PATH: handle fresh accounts + warn on 1024 char limit
- Windows .bat: remove old .env keys before adding new (no duplicates)
Important:
- Menu error message: fix range 0-14 → 0-16
- API key input: use read -s to hide plaintext
- macOS install: default to .zshrc (not .bash_profile)
- Website table: fix column mismatch (td → span inside td)