Skip to content

Fix Windows openXYOS install: extract once, real crash logs, no false ready - #54

Draft
XYAIStudio wants to merge 1 commit into
mainfrom
cursor/openxyos-extract-once-start-8afe
Draft

XYAIStudio wants to merge 1 commit into
mainfrom
cursor/openxyos-extract-once-start-8afe

Conversation

@XYAIStudio

Copy link
Copy Markdown
Owner

Summary

联想机上已确认:一次安装把 openxyos-runtime.zip 解压三次(Live + $INSTDIR\openxyos-runtime + $INSTDIR\openxyos),安装极慢;Node fail-fast 时 start.out.log / start.err.log 为空;.install-ready 会在后续启动已死时仍被写入。

本 PR 做根因修复:

  1. 只解压一次tar -xf 只进 %LOCALAPPDATA%\FreeOS\openxyos(同卷 staging → move)。$INSTDIR\openxyos / openxyos-runtime 只写 README 桩,不再整包解压。成功后仍删除 zip(保留 Remove leftover openxyos-runtime zip and folder after a successful Windows install #43)。
  2. 启动日志:优先 cmd /c "node … >start.out.log 2>start.err.log",PowerShell redirect 吞掉崩溃输出时再抓一次。fail-fast 必须在 start.log 留下非空原因。
  3. .install-ready 门闩:仅在 livez 通过 start.pid 仍存活(或等价的本机 Node)时写入。Shell.Application 声称成功但 start.log 已是 fail-fast / 空日志时改走直接启动,失败用中文说明,不写 ready。
  4. 拍平布局:heal 后删除残留的 openxyos\openxyos 载荷,避免错误 cwd。
  5. 保留 Fix FreeOS Windows installer Chinese mojibake and noisy openXYOS provision #52 的 JWT / CORS / top-level cwd。

Target branch

  • Base is develop (feature / fix — default)
  • Base is main(按需求针对 main;请勿合并)

Type of change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • Refactor / chore
  • Release / hotfix

Test plan

  • python3 -m pytest tests/unit/desktop/test_openxyos_provisioner.py tests/unit/desktop/test_nsis_uninstall.py tests/unit/desktop/test_stage_openxyos_runtime.py --noconftest48 passed, 1 skipped(Windows CrashSelfTest 在 Linux 上 skip)
  • Added/updated tests:extract-once、install-ready 门闩、flatten leftover、start fail-fast 非空原因;Windows 上 -CrashSelfTest 可跑强制崩溃探测
  • 完整 make all 未在本环境跑通(无 uv / 未装齐 octop 依赖)。请 CI 或本地补跑。

Checklist

  • Updated CHANGELOG.md
  • desktop/README.md / NSIS 注释已改为「一次解压 + stub,不是 sealed 全量副本」
Open in Web Open in Cursor 

…e ready.

Stop unpacking the 560MB runtime zip into Program Files copies; extract once
into LocalAppData (staging then move), flatten leftover nested openxyos\openxyos,
and write .install-ready only when livez is up and start.pid is still alive.
Launch Node via cmd /c file redirect so fail-fast stderr is not swallowed.

Co-authored-by: XYAI Labs <haoboy8@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants