feat: add prerequisites, offline prerequisite setup and version tabs

- EXE versions: prerequisite list with the built-in catalog, custom
  installers, download link checks and install file analysis; entries
  are added by the user (no automatic adding), one "추가" dialog with
  기본 목록 / 직접 추가 tabs
- offline prerequisite setup: single exe made from PrerequisiteSetup.exe
  (Windows task dialog, no prerequisites) plus every installer, hash
  checked before, while and after appending; optional WebView2 Runtime
  chosen in the save dialog; replaces an existing file only after the
  user agrees (CLI --replace)
- desktop: progress popup with 생성위치 열기, save dialog fix for
  verbatim paths, EXE 서명 and 설치파일 생성 as version tabs, start
  screen 도구 › 서명하기 placeholder
- CLAUDE.md: results are overwritten only with the user's consent
- test kit and scripts for Windows Sandbox and Hyper-V checks

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
jychoi4andClaude Opus 5.5 committed 2026-11-13 16:26:24 +09:00
1 parent 366c8fe173
commit 4964f2ced4
110 files changed
+13960 -295

No files matched your search

+13 -13
View File
@@ -9,29 +9,29 @@ description: Installer Studio 저장소의 전체 검사(fmt, clippy, Rust 테
## 사전 조건
1. 실행 중인 `vite`/`tauri dev`/`msix-studio.exe` 프로세스가 있으면 먼저 종료한다. `npm ci`가 esbuild 파일을 교체하지 못하고, debug 빌드가 실행 파일을 덮어쓰지 못한다.
1. 실행 중인 `vite`/`tauri dev`/`InstallerStudio.exe` 프로세스가 있으면 먼저 종료한다. `npm ci`가 esbuild 파일을 교체하지 못하고, debug 빌드가 실행 파일을 덮어쓰지 못한다.
2. 변경 범위를 보고 빠른 모드와 전체 모드를 정한다.
- Rust만 바뀜: 1~3단계 + 5단계.
- 프런트엔드만 바뀜: 4단계.
- `src-tauri`, 공용 DTO, IPC 계약이 바뀜: 전체.
- Rust만 바뀜: 1단계, 3~5단계.
- 프런트엔드만 바뀜: 2단계.
- `src-tauri`, `apps/prerequisite-setup`, 공용 DTO, IPC 계약이 바뀜: 전체.
## 단계
```powershell
# 1. 포맷
cargo fmt --all --check
# 2. 린트 (경고도 실패)
cargo clippy --locked --workspace --all-targets -- -D warnings
# 3. Rust 단위·통합 테스트 (SDK 통합 테스트는 ignored)
cargo test --locked --workspace
# 4. 프런트엔드
# 2. 프런트엔드 (데스크톱)
cd apps/desktop
npm.cmd ci --no-audit --no-fund
npm.cmd test
npm.cmd run build
cd ../..
# 5. 데스크톱 실행 파일
cargo build --locked -p msix-studio --features custom-protocol
# 3. 린트 (경고도 실패)
cargo clippy --locked --workspace --all-targets -- -D warnings
# 4. Rust 단위·통합 테스트 (SDK·네트워크·레지스트리 읽기 테스트는 ignored)
cargo test --locked --workspace
# 5. 데스크톱 실행 파일과 선행 설치기 원본
cargo build --locked -p msix-studio -p prerequisite-setup --features msix-studio/custom-protocol
```
MakeAppx 통합 시험까지 요청받았으면 `msix-integration-test` 스킬을 따른다.
@@ -50,7 +50,7 @@ MakeAppx 통합 시험까지 요청받았으면 `msix-integration-test` 스킬
| 단계 | 결과 |
| --- | --- |
| fmt | 통과 |
| npm test / build | 통과 (N개) |
| clippy | 통과 |
| cargo test | 통과 (N개) |
| npm test / build | 통과 (N개) |
| msix-studio build | 실행 안 함 (프런트엔드만 변경) |
| msix-studio · prerequisite-setup build | 실행 안 함 (프런트엔드만 변경) |
@@ -25,7 +25,7 @@ Get-ChildItem 'C:\Program Files (x86)\Windows Kits\10\bin\*\x64\makeappx.exe' |
## 2. 실행
`D:\networkSetup\src`에서. 실행 중인 `msix-studio.exe`/`tauri dev`는 종료한다.
`D:\networkSetup\src`에서. 실행 중인 `InstallerStudio.exe`/`tauri dev`는 종료한다.
```powershell
$env:MSIX_TEST_MAKEAPPX = '<makeappx.exe 절대 경로>'