Skip to content

Fix Windows openXYOS install extract and native folder picker for source download - #26

Merged
XYAIStudio merged 1 commit into
mainfrom
cursor/fix-openxyos-nsis-extract-2aa0
Sep 16, 2026
Merged

XYAIStudio merged 1 commit into
mainfrom
cursor/fix-openxyos-nsis-extract-2aa0

Conversation

@XYAIStudio

@XYAIStudio XYAIStudio commented Sep 16, 2026 •

Copy link
Copy Markdown
Owner

Summary

P0: after installing to D:\Program Files\FreeOS, $INSTDIR\openxyos was left README-only while the zip landed beside it as openxyos-runtime\. NSIS called PowerShell to unzip with ''$INSTDIR'' quoting; spaces in Program Files split the command, extract failed silently, and first launch copied the stub.

Rebased onto latest main (includes #23 mutual-growth). Conflict in Organization/index.tsx resolved by keeping both #23 produce-colleague state and the native folder picker.

This PR:

  1. Install-time extract — write a .cmd with expanded paths and use Windows tar.exe to unpack the CI-prebuilt openxyos-runtime.zip into both $INSTDIR\openxyos and $INSTDIR\openxyos-runtime. Log the exit code. Abort setup (error 67) if node\node.exe or dist\index.html is missing. makensis fails at compile time if the zip was not staged.
  2. First launch heal — Go provision also searches $INSTDIR\openxyos-runtime, so a leftover staged tree is copied in full to %LOCALAPPDATA%\FreeOS\openxyos. README-only trees are never treated as ready. Sidecar still auto-starts when the tree is healthy (http://127.0.0.1:3780/api/health/livez).
  3. Packaging smoke — layout_ready / verify_runtime_zip reject README-only zips; NSIS tests require tar.exe, quoted $INSTDIR, and Abort on missing files.
  4. Organization source download — “Download latest openXYOS source” uses the same Wails native folder picker as project workdirs (any drive). No window.prompt / typed-path-only on desktop.

Does not require npm build on the user’s PC. No merge / no Release.

Target branch

  • Base is main (hotfix-style P0 from latest main)

Type of change

  • Bug fix

Test plan

  • Rebased onto 1dd99b1f (Harden Organization mutual growth between FreeOS and openXYOS #23); Organization conflict resolved
  • uv run pytest tests/unit/desktop/test_nsis_uninstall.py tests/unit/desktop/test_stage_openxyos_runtime.py tests/unit/test_sidecar_launch.py -q — 24 passed
  • vitest pickSourceDest
  • CI green on 4400ecd8: Python 3.12, Windows Python 3.12, Desktop Package windows-amd64 / windows-arm64 (Release attach skipped)

Checklist

  • Updated CHANGELOG.md
  • desktop/README.md updated
Open in Web Open in Cursor 

…e download.

NSIS no longer calls PowerShell to unzip into Program Files (spaces broke
quoting and left $INSTDIR\openxyos as README-only). Setup now expands the
prebuilt zip with tar.exe into both openxyos and openxyos-runtime, and
aborts if node.exe or dist/index.html is missing. First launch copies the
complete tree, including the staged runtime, to LocalAppData.

Organization "download latest openXYOS source" opens the same Wails folder
picker as project workdirs instead of a typed path or window.prompt.

Co-authored-by: XYAI Labs <haoboy8@gmail.com>
@cursor
cursor Bot force-pushed the cursor/fix-openxyos-nsis-extract-2aa0 branch from ce8d2ad to 4400ecd Compare September 16, 2026 05:12
@XYAIStudio
XYAIStudio merged commit 3ca7548 into main Sep 16, 2026
12 checks passed
@XYAIStudio
XYAIStudio deleted the cursor/fix-openxyos-nsis-extract-2aa0 branch September 16, 2026 05:52
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