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.
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.