Skip to content

Keep install-time openXYOS running; fix source-download UTF-8 names - #32

Merged
XYAIStudio merged 4 commits into
mainfrom
cursor/org-sidecar-persist-utf8-adfd
Sep 16, 2026
Merged

XYAIStudio merged 4 commits into
mainfrom
cursor/org-sidecar-persist-utf8-adfd

Conversation

@XYAIStudio

@XYAIStudio XYAIStudio commented Sep 16, 2026 •

Copy link
Copy Markdown
Owner

Summary

#29 deployed openXYOS into %LOCALAPPDATA%\FreeOS\openxyos and probed livez, then killed the Node process. Organization still showed 启动边车, so the module felt like a 摆设.

This PR finishes install-time completion and removes that click for healthy installs. Rebased onto latest main (includes #30).

Install (admin)

  • Extract/deploy still writes the live tree and .install-ready (node\node.exe + dist\index.html).
  • Setup no longer starts Node as Administrator or taskkills it after the probe (that stamped High integrity and left port 3780 dead).
  • Writes start-sidecar.ps1 / start-sidecar.cmd in the live root.
  • Registers a user-level persist path: HKCU Run FreeOS-openXYOS + logon scheduled task.
  • Launches the helper via IShellDispatch2 (medium IL), waits for http://127.0.0.1:3780/api/health/livez, leaves it running.
  • Uninstall stops *\FreeOS\openxyos\* and removes the Run key / task.

Organization UX

  • If .install-ready and port healthy → embed immediately.
  • If install-ready / start-available but down → silent auto-start (loading copy only).
  • 「启动边车」 is no longer the primary CTA. Recover UI is 重试启动 + Chinese error, only after auto-start fails.

Source download UTF-8

  • Folder picker returns UTF-8 Base64 (PowerShell ACP/GBK was garbled as UTF-8), with CP1252/Latin-1 mojibake fallback.
  • Dest path is repaired before extract (repair_utf8_mojibake), same helper as the KB-mount path.
  • Zip extract decodes UTF-8-flagged names and GBK-without-flag names.

Do not merge or replace the GitHub Release. Overnight shipper merges.

Target branch

  • Base is main (user asked for latest main; do not merge/replace Release)
  • Base is develop (feature / fix — default)

Type of change

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

Test plan

  • uv run pytest on source-download (UTF-8/GBK zip + dest mojibake) and win_utf8
  • Dashboard vitest: folder picker repair, recover-phase (no primary 启动边车)
  • GitHub CI on this PR (in progress after rebase onto Fix Models local register 500 INTERNAL_ERROR on Windows #30)
  • Windows verify (needs a packaged installer): fresh uninstall+install of this build → open Organization → openXYOS embeds without 启动边车; source download folder names are Chinese-correct
  • Added/updated tests (NSIS persist contract, zip UTF-8/GBK names, dest-path repair, folder-picker encoding, recover-phase helper, install-ready marker)

Checklist

  • Updated CHANGELOG.md (if user-facing)
  • README / docs updated (desktop/README.md)
Open in Web Open in Cursor 

@XYAIStudio
XYAIStudio marked this pull request as ready for review September 16, 2026 08:08
Organization still asked users to 启动边车. Setup now writes a user-level
start-sidecar helper, registers HKCU Run / logon task, launches via
IShellDispatch2, and leaves the process up after livez. Organization
embeds immediately when healthy and auto-starts silently when
.install-ready; recover UI is only for failed auto-start.

Folder picker and zip extract now preserve Chinese paths end-to-end
(UTF-8 base64 from PowerShell, zip UTF-8/GBK name decode).
Repair CP1252/Latin-1 dest paths before extract, decode Windows picker
output as UTF-8 Base64 (with mojibake fallback), and share the same
repair helper as the KB-mount path so Chinese folder names survive
end-to-end.
@cursor
cursor Bot force-pushed the cursor/org-sidecar-persist-utf8-adfd branch from 87d19fd to eaf0d97 Compare September 16, 2026 08:13
@XYAIStudio
XYAIStudio merged commit c9d986a into main Sep 16, 2026
12 checks passed
@XYAIStudio
XYAIStudio deleted the cursor/org-sidecar-persist-utf8-adfd branch September 16, 2026 09:07
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.

3 participants