便携版从 U 盘启动慢,瓶颈在 U 盘随机小写 IO + 首屏无反馈 + 首轮冷启动。 移植 v2 u-clawx 4.0 的 4 个可在纯脚本层复刻的手段(均零依赖、静默失败): - portable-cache.mjs: 把浏览器 user-data(几百 MB 随机小写)+ V8 编译缓存 从 U 盘搬到本机 SSD(win junction / mac symlink 重定向 .openclaw/browser, NODE_COMPILE_CACHE 落本机)。UUID 隔离让换盘符仍命中同一份缓存。 业务数据(openclaw.json/memory/账号)仍留 U 盘,便携性不变。 - loading.html: 双击即弹的启动首屏,自轮询 /ready,gateway 真就绪后自动跳 Dashboard——天然规避"gateway 没起就开 Dashboard 拒连"(issue #46/#48)。 - prewarm.mjs: gateway 首轮预热,后台静默唤醒 config/model 子系统。 - Windows-Start.bat: 等 config-server 改写死 timeout 为动态轮询 18788。 - wait-gateway.bat 退居兜底(首屏页负责主跳转)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
33 lines
1.2 KiB
Batchfile
33 lines
1.2 KiB
Batchfile
@echo off
|
|
REM wait-gateway.bat - open Dashboard only after the Gateway is actually listening.
|
|
REM Fixes issue #46/#48: on slow USB drives the gateway needs tens of seconds to
|
|
REM stage bundled deps on first run; opening http://127.0.0.1:PORT before it is
|
|
REM LISTENING shows "connection refused" and users think it is broken.
|
|
REM
|
|
REM 角色变更:现在 Windows-Start.bat 会先开 lib\loading.html 启动首屏,由首屏
|
|
REM 自己轮询 /ready 并自动跳 Dashboard。本脚本退居"兜底"——万一首屏页的
|
|
REM file:// fetch 被浏览器拦住没跳成,这里仍轮询端口、就绪后开 Dashboard。
|
|
REM Usage (called in background by Windows-Start.bat): wait-gateway.bat PORT
|
|
REM Polls every 2s, up to 150 tries (~5 min). Opens the browser once ready.
|
|
|
|
set "PORT=%~1"
|
|
if "%PORT%"=="" set "PORT=18789"
|
|
|
|
set /a TRIES=0
|
|
:wait_loop
|
|
netstat -an | findstr ":%PORT% " | findstr "LISTENING" >nul 2>&1
|
|
if %errorlevel%==0 goto :ready
|
|
set /a TRIES+=1
|
|
if %TRIES% geq 150 goto :timeout
|
|
timeout /t 2 /nobreak >nul
|
|
goto :wait_loop
|
|
|
|
:ready
|
|
timeout /t 1 /nobreak >nul
|
|
start "" http://127.0.0.1:%PORT%/#token=uclaw
|
|
exit /b 0
|
|
|
|
:timeout
|
|
start "" http://127.0.0.1:18788/
|
|
exit /b 1
|