Skip to content

Add Windows installer home selection - #1062

Draft
ken-jo wants to merge 2 commits into
mainfrom
feat/windows-installer-home-selection
Draft

Add Windows installer home selection#1062
ken-jo wants to merge 2 commits into
mainfrom
feat/windows-installer-home-selection

Conversation

@ken-jo

@ken-jo ken-jo commented May 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Switch Windows NSIS packaging to assisted installer mode with install-directory and LVIS data-home selection
  • Generate branded NSIS sidebar/header/progress BMP assets from the LVIS loading/tray line character source
  • Keep LVIS-managed plugin, MCP config, packaged uv, and host-managed Python runtime paths under the current LVIS_HOME while preserving OS HOME/USERPROFILE for MCP stdio/uvx subprocesses
  • Harden uninstall cleanup so upgrades and silent keep-data flows preserve LVIS_HOME, and broad/non-LVIS paths are not recursively removed

Verification

  • 3-agent review plus installer follow-up review: PASS after one CRITICAL uninstall-update finding was fixed
  • bun run test -- src/main/tests/desktop-packaging.test.ts src/plugins/tests/plugin-paths.test.ts src/mcp/tests/mcp-manager-config.test.ts src/mcp/tests/mcp-client.test.ts src/main/tests/python-runtime.test.ts src/shared/tests/lvis-home.test.ts src/ipc/domains/tests/permissions.test.ts
  • bun run typecheck
  • bun run build
  • git diff --check

Not tested

  • Windows NSIS installer execution on a Windows host from this local macOS worktree

@github-actions

Copy link
Copy Markdown

🚨 Cross-Cutting Review Gate 위반

이 PR은 민감 영역 클러스터 조건을 충족합니다.

감지 사유: 최근 14일 이내에 민감 영역을 건드리는 PR이 3개 이상 머지되었습니다 (rolling-window cluster).

민감 영역 (Sensitive Areas):

  • src/permissions/**
  • src/audit/**
  • src/sandbox/**
  • src/ipc/**
  • src/preload*
  • src/boot/**
  • src/core/permissions/**

요구 사항: 이 PR은 머지 전에 Cross-Cutting Review Gate를 통과해야 합니다.
자세한 기준은 CLAUDE.md §Cross-Cutting Review Gate 를 참조하십시오.

이 검사는 .github/workflows/cluster-detector.yml 이 자동으로 실행합니다.

@ken-jo
ken-jo force-pushed the feat/windows-installer-home-selection branch from 93b7465 to 46ff707 Compare May 20, 2026 10:51
@github-actions

Copy link
Copy Markdown

🚨 Cross-Cutting Review Gate 위반

이 PR은 민감 영역 클러스터 조건을 충족합니다.

감지 사유: 최근 14일 이내에 민감 영역을 건드리는 PR이 3개 이상 머지되었습니다 (rolling-window cluster).

민감 영역 (Sensitive Areas):

  • src/permissions/**
  • src/audit/**
  • src/sandbox/**
  • src/ipc/**
  • src/preload*
  • src/boot/**
  • src/core/permissions/**

요구 사항: 이 PR은 머지 전에 Cross-Cutting Review Gate를 통과해야 합니다.
자세한 기준은 CLAUDE.md §Cross-Cutting Review Gate 를 참조하십시오.

이 검사는 .github/workflows/cluster-detector.yml 이 자동으로 실행합니다.

@ken-jo

ken-jo commented May 20, 2026

Copy link
Copy Markdown
Contributor Author

Cross-Cutting Review Gate completed for the updated head.

Result: PASS after fixing the earlier MAJOR findings.

Evidence:

  • Architect follow-up: PASS; existing non-LVIS folders are not promotable, Browse rewrites parent to parent\LVIS, update/silent keep-data boundaries preserved.
  • Critic follow-up: PASS; fail-closed create/marker/registry/env persistence guards and uninstall deletion-failure pointer preservation are locked by desktop-packaging tests.
  • Security follow-up: PASS; destructive LVIS_HOME removal is gated by ownership marker/legacy path, update/silent policy, prompt default No, successful RMDir before env removal, and MCP/Python HOME/cache boundaries remain unchanged.

Local verification after the final fix:

  • bun run test -- src/main/tests/desktop-packaging.test.ts src/plugins/tests/plugin-paths.test.ts src/mcp/tests/mcp-manager-config.test.ts src/mcp/tests/mcp-client.test.ts src/main/tests/python-runtime.test.ts src/shared/tests/lvis-home.test.ts src/ipc/domains/tests/permissions.test.ts
  • bun run test -- src/main/tests/desktop-packaging.test.ts src/shared/tests/lvis-home-sweep.test.ts src/plugins/tests/plugin-paths.test.ts src/main/tests/ensure-workspace-cwd.test.ts src/shared/tests/lvis-home.test.ts --run
  • bun run typecheck
  • bun run build
  • git diff --check

Align Windows installation with the user-selected install drive and LVIS data-home contract while keeping plugin and MCP subprocess homes owned by the OS/toolchain. Runtime defaults now resolve LVIS_HOME at call time, and the assisted NSIS flow persists only LVIS_HOME plus a dedicated data-home marker so uninstall cleanup does not erase broad user paths or update-preserved data.

Constraint: Windows installer must support install path changes and LVIS_HOME selection without forcing MCP uvx HOME/USERPROFILE semantics.

Rejected: per-plugin HOME/uvx cache redirection | it would make MCP package caches and Python tool homes host-owned instead of tool-owned.

Rejected: unconditional LVIS_HOME deletion on uninstall | update and silent keep-data flows must preserve user data.

Confidence: high

Scope-risk: moderate

Directive: Keep LVIS-managed runtime roots under lvisHome(), but do not inject LVIS_HOME or UV_CACHE_DIR into MCP stdio subprocess environments.

Tested: bun run test -- src/main/__tests__/desktop-packaging.test.ts src/plugins/__tests__/plugin-paths.test.ts src/mcp/__tests__/mcp-manager-config.test.ts src/mcp/__tests__/mcp-client.test.ts src/main/__tests__/python-runtime.test.ts src/shared/__tests__/lvis-home.test.ts src/ipc/domains/__tests__/permissions.test.ts

Tested: bun run typecheck

Tested: bun run build

Tested: git diff --check

Not-tested: Windows NSIS installer was not executed on a Windows host in this local macOS worktree.

Co-authored-by: OmX <omx@oh-my-codex.dev>
@ken-jo
ken-jo force-pushed the feat/windows-installer-home-selection branch from 46ff707 to c2f6d6c Compare May 20, 2026 11:46
@github-actions

Copy link
Copy Markdown

🚨 Cross-Cutting Review Gate 위반

이 PR은 민감 영역 클러스터 조건을 충족합니다.

감지 사유: 최근 14일 이내에 민감 영역을 건드리는 PR이 3개 이상 머지되었습니다 (rolling-window cluster).

민감 영역 (Sensitive Areas):

  • src/permissions/**
  • src/audit/**
  • src/sandbox/**
  • src/ipc/**
  • src/preload*
  • src/boot/**
  • src/core/permissions/**

요구 사항: 이 PR은 머지 전에 Cross-Cutting Review Gate를 통과해야 합니다.
자세한 기준은 CLAUDE.md §Cross-Cutting Review Gate 를 참조하십시오.

이 검사는 .github/workflows/cluster-detector.yml 이 자동으로 실행합니다.

1 similar comment
@github-actions

Copy link
Copy Markdown

🚨 Cross-Cutting Review Gate 위반

이 PR은 민감 영역 클러스터 조건을 충족합니다.

감지 사유: 최근 14일 이내에 민감 영역을 건드리는 PR이 3개 이상 머지되었습니다 (rolling-window cluster).

민감 영역 (Sensitive Areas):

  • src/permissions/**
  • src/audit/**
  • src/sandbox/**
  • src/ipc/**
  • src/preload*
  • src/boot/**
  • src/core/permissions/**

요구 사항: 이 PR은 머지 전에 Cross-Cutting Review Gate를 통과해야 합니다.
자세한 기준은 CLAUDE.md §Cross-Cutting Review Gate 를 참조하십시오.

이 검사는 .github/workflows/cluster-detector.yml 이 자동으로 실행합니다.

@ken-jo
ken-jo force-pushed the feat/windows-installer-home-selection branch from 4761954 to 8135046 Compare May 20, 2026 11:58
@github-actions

Copy link
Copy Markdown

🚨 Cross-Cutting Review Gate 위반

이 PR은 민감 영역 클러스터 조건을 충족합니다.

감지 사유: 최근 14일 이내에 민감 영역을 건드리는 PR이 3개 이상 머지되었습니다 (rolling-window cluster).

민감 영역 (Sensitive Areas):

  • src/permissions/**
  • src/audit/**
  • src/sandbox/**
  • src/ipc/**
  • src/preload*
  • src/boot/**
  • src/core/permissions/**

요구 사항: 이 PR은 머지 전에 Cross-Cutting Review Gate를 통과해야 합니다.
자세한 기준은 CLAUDE.md §Cross-Cutting Review Gate 를 참조하십시오.

이 검사는 .github/workflows/cluster-detector.yml 이 자동으로 실행합니다.

@ken-jo
ken-jo force-pushed the feat/windows-installer-home-selection branch from 8135046 to 0cdbc07 Compare May 20, 2026 12:00
@github-actions

Copy link
Copy Markdown

🚨 Cross-Cutting Review Gate 위반

이 PR은 민감 영역 클러스터 조건을 충족합니다.

감지 사유: 최근 14일 이내에 민감 영역을 건드리는 PR이 3개 이상 머지되었습니다 (rolling-window cluster).

민감 영역 (Sensitive Areas):

  • src/permissions/**
  • src/audit/**
  • src/sandbox/**
  • src/ipc/**
  • src/preload*
  • src/boot/**
  • src/core/permissions/**

요구 사항: 이 PR은 머지 전에 Cross-Cutting Review Gate를 통과해야 합니다.
자세한 기준은 CLAUDE.md §Cross-Cutting Review Gate 를 참조하십시오.

이 검사는 .github/workflows/cluster-detector.yml 이 자동으로 실행합니다.

Constraint: electron-builder compiles installer and uninstaller NSIS passes separately with makensis warnings as errors.\nRejected: Disable NSIS warnings | warning-as-error is catching real release blockers before upload.\nConfidence: high\nScope-risk: narrow\nDirective: Keep custom NSIS includes, registry reads, page variables, and uninstaller functions scoped to the compile pass that uses them.\nTested: bun run test -- src/main/__tests__/desktop-packaging.test.ts\nNot-tested: Windows NSIS rebuild rerun after this amended commit pending on my-window
@ken-jo
ken-jo force-pushed the feat/windows-installer-home-selection branch from 0cdbc07 to 7216e11 Compare May 20, 2026 12:03
@github-actions

Copy link
Copy Markdown

🚨 Cross-Cutting Review Gate 위반

이 PR은 민감 영역 클러스터 조건을 충족합니다.

감지 사유: 최근 14일 이내에 민감 영역을 건드리는 PR이 3개 이상 머지되었습니다 (rolling-window cluster).

민감 영역 (Sensitive Areas):

  • src/permissions/**
  • src/audit/**
  • src/sandbox/**
  • src/ipc/**
  • src/preload*
  • src/boot/**
  • src/core/permissions/**

요구 사항: 이 PR은 머지 전에 Cross-Cutting Review Gate를 통과해야 합니다.
자세한 기준은 CLAUDE.md §Cross-Cutting Review Gate 를 참조하십시오.

이 검사는 .github/workflows/cluster-detector.yml 이 자동으로 실행합니다.

@ken-jo
ken-jo force-pushed the feat/windows-installer-home-selection branch from 7216e11 to 063b2df Compare May 20, 2026 15:05
@ken-jo
ken-jo force-pushed the feat/windows-installer-home-selection branch from 063b2df to c0d83ba Compare May 20, 2026 15:29
@github-actions

Copy link
Copy Markdown

🚨 Cross-Cutting Review Gate 위반

이 PR은 민감 영역 클러스터 조건을 충족합니다.

감지 사유: 최근 14일 이내에 민감 영역을 건드리는 PR이 3개 이상 머지되었습니다 (rolling-window cluster).

민감 영역 (Sensitive Areas):

  • src/permissions/**
  • src/audit/**
  • src/sandbox/**
  • src/ipc/**
  • src/preload*
  • src/boot/**
  • src/core/permissions/**

요구 사항: 이 PR은 머지 전에 Cross-Cutting Review Gate를 통과해야 합니다.
자세한 기준은 CLAUDE.md §Cross-Cutting Review Gate 를 참조하십시오.

이 검사는 .github/workflows/cluster-detector.yml 이 자동으로 실행합니다.

1 similar comment
@github-actions

Copy link
Copy Markdown

🚨 Cross-Cutting Review Gate 위반

이 PR은 민감 영역 클러스터 조건을 충족합니다.

감지 사유: 최근 14일 이내에 민감 영역을 건드리는 PR이 3개 이상 머지되었습니다 (rolling-window cluster).

민감 영역 (Sensitive Areas):

  • src/permissions/**
  • src/audit/**
  • src/sandbox/**
  • src/ipc/**
  • src/preload*
  • src/boot/**
  • src/core/permissions/**

요구 사항: 이 PR은 머지 전에 Cross-Cutting Review Gate를 통과해야 합니다.
자세한 기준은 CLAUDE.md §Cross-Cutting Review Gate 를 참조하십시오.

이 검사는 .github/workflows/cluster-detector.yml 이 자동으로 실행합니다.

@ken-jo
ken-jo marked this pull request as draft June 23, 2026 01:14
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.

1 participant