Repository navigation
Deploy openXYOS at install time into LocalAppData and verify livez - #29
Merged
Merged
Conversation
The elevated installer now extracts the prebuilt runtime with tar.exe directly into %LOCALAPPDATA%\FreeOS\openxyos (the writable live root), keeps Program Files trees as backups, and probes http://127.0.0.1:3780/api/health/livez before Setup finishes. First FreeOS start skips copy/unpack when that tree is already complete. Co-authored-by: XYAI Labs <haoboy8@gmail.com>
XYAIStudio
marked this pull request as ready for review
September 16, 2026 06:31
A backtick immediately after '(' closed the FileWrite string and left
$\r$\n as a third argument. Use cmd goto instead of parentheses, drop
commas from the livez probe script, and assert every FileWrite has
exactly two parameters.
Co-authored-by: XYAI Labs <haoboy8@gmail.com>
7 of 15 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why this PR
用户明确拒绝「安装只解到 Program Files → 首次打开 FreeOS 再拷到本机 → 再启 FE/BE」。组织页打开应该是 embed/connect,不是再做一次部署。
默认安装目录是
C:\Program Files\FreeOS。未提权的FreeOS.exe写不进去,所以真正的可写本机根必须是%LOCALAPPDATA%\FreeOS\openxyos。这次把 写入这个目录的工作提前到 elevated Setup,用安装用户的LOCALAPPDATA环境变量(不能用SetShellVarContext all之后的 NSIS$LOCALAPPDATA,那是 ProgramData)。截图里的
Expand-Archive -LiteralPath缺参是旧安装包;本 PR 仍只用tar.exe+ 安装期展开的.cmd(路径在写入时已展开,带空格的 Program Files 安全)。不要合并 Release / 不要替换 GitHub Release 资产。 协调员打包装船。
CI follow-up
makensis曾报FileWrite expects 2 parameters, got 3:`...(`$\r$\n`里(后的反引号提前结束字符串。已改为goto、去掉 probe 脚本里的逗号,并加了 FileWrite 参数个数契约测试。安装期行为
openxyos-runtime.zip(node/node.exe+openxyos/dist/index.html+openxyos/backend/server.ts)。用户机器不跑 npm。tar.exe解到:%LOCALAPPDATA%\FreeOS\openxyos$INSTDIR\openxyos与$INSTDIR\openxyos-runtimenode.exe/dist/index.html→ Abort 67,不会留下只有 README 的树。http://127.0.0.1:3780/api/health/livez(最多约 60s)。探测用$PLUGINSDIR临时 sqlite,不写~/.freeos(避免 High integrity)。通过后结束探测进程。失败 → Abort 68。.install-ready。icacls给当前用户对本机FreeOS目录的修改权,方便未提权进程冷启动。首次打开 FreeOS
http://127.0.0.1:3780,不必再点「启动边车」。Windows 验证(装完后)
用 本 PR 打出来的新 NSIS,不要用仍带
Expand-Archive的旧包。%LOCALAPPDATA%\FreeOS\openxyos、node.exe/dist\\index.html就绪、livez 通过。不应再出现Expand-Archive/LiteralPath。%LOCALAPPDATA%\\FreeOS\\openxyos\\node\\node.exe%LOCALAPPDATA%\\FreeOS\\openxyos\\openxyos\\dist\\index.html%LOCALAPPDATA%\\FreeOS\\openxyos\\.install-readyhttp://127.0.0.1:3780/api/health/livez为 200。