Fixes#57 — NEXT_PUBLIC_GATEWAY_URL is a build-time variable that gets
baked into the client bundle. Changing it in .env and restarting has no
effect without a rebuild.
- normalizeLocalGatewayDefaults now accepts the sanitized public form
({url, tokenConfigured}) from /api/studio
- When no saved gateway URL exists, prefer runtime localGatewayDefaults
(from openclaw.json or CLAW3D_GATEWAY_URL env var) over the
potentially stale build-time NEXT_PUBLIC_GATEWAY_URL
- loadLocalGatewayDefaults falls back to CLAW3D_GATEWAY_URL/TOKEN env
vars when openclaw.json is absent
- Added runtime env vars documentation to .env.example and README
Co-authored-by: robotica4us-collab <neo@openclaw.ai>
Made-with: Cursor
- Revert next.config.ts: remove hardcoded Cloudflare tunnel URL from
allowedDevOrigins (dev artifact, not part of the voice upload fix).
- Rewrite voice transcribe tests to use mock request objects instead of
real Request/FormData/Blob instances that cause formData() to hang
indefinitely in vitest's Node environment. All 9 tests now pass.
Made-with: Cursor
The test expected [] for same-cell targets, but the code correctly
returns [{ x: ex, y: ey }] so the movement layer can make the final
fine-grained adjustment to the exact pixel.
Made-with: Cursor