diff --git a/.github/workflows/desktop-installers.yml b/.github/workflows/desktop-installers.yml index b60a2ae..9a80076 100644 --- a/.github/workflows/desktop-installers.yml +++ b/.github/workflows/desktop-installers.yml @@ -72,7 +72,7 @@ jobs: { "os_key": "windows", "platform": "windows-latest", - "args": "--target x86_64-pc-windows-msvc", + "args": "--target x86_64-pc-windows-msvc --bundles nsis", "rust_target": "x86_64-pc-windows-msvc", "artifact": "desktop-windows-x86_64" } diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a6f729d..ceef3ec 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -94,7 +94,7 @@ jobs: rust_target: aarch64-apple-darwin artifact: desktop-macos-aarch64 - platform: windows-latest - args: --target x86_64-pc-windows-msvc + args: --target x86_64-pc-windows-msvc --bundles nsis rust_target: x86_64-pc-windows-msvc artifact: desktop-windows-x86_64 runs-on: ${{ matrix.platform }} @@ -270,7 +270,7 @@ jobs: |----------|----------| | Linux x86_64 | `.deb` / `.AppImage` | | macOS Apple Silicon | `.dmg` | - | Windows x86_64 | `.msi` / NSIS `.exe` | + | Windows x86_64 | NSIS `.exe` | ### Notes diff --git a/CHANGELOG.md b/CHANGELOG.md index d7830b3..4e322f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ Versions follow [SemVer](https://semver.org/) (`0.1.0-alpha.x` while the public ### Fixed - Committed Tauri `gen/schemas/capabilities.json` aligned with source capabilities (no `shell:allow-open`) +- Windows packaging uses NSIS only — WiX `.msi` rejects semver pre-releases like `0.1.0-alpha.1` ## [0.1.0-alpha.1] - TBD diff --git a/apps/desktop/README.md b/apps/desktop/README.md index 4251cef..e551294 100644 --- a/apps/desktop/README.md +++ b/apps/desktop/README.md @@ -56,7 +56,7 @@ CI (`ci.yml`) runs unit tests + typecheck only. Desktop installers are built on |---------------|------------------| | `desktop-linux-x86_64` | `.deb` / `.AppImage` under `bundle/` | | `desktop-macos-aarch64` | `.dmg` / `.app` under `bundle/` | -| `desktop-windows-x86_64` | `.msi` / NSIS `.exe` under `bundle/` | +| `desktop-windows-x86_64` | NSIS `.exe` under `bundle/` | ```bash gh workflow run "Desktop Installers" -f platforms=windows-and-linux @@ -72,8 +72,9 @@ Use the **Release** workflow (Actions → **Release** → **Run workflow**) to b - Input `prerelease`: leave on for alphas - Or push a tag `v*` (hyphenated versions such as `v0.1.0-alpha.1` are treated as pre-releases) -Assets attached to the release are the platform installers (`.deb` / `.AppImage`, `.dmg`, `.msi` / `.exe`). +Assets attached to the release are the platform installers (`.deb` / `.AppImage`, `.dmg`, NSIS `.exe`). +Windows uses **NSIS only** (not WiX `.msi`). MSI requires a numeric-only pre-release (`0.1.0-1`); versions like `0.1.0-alpha.1` fail the WiX bundler. NSIS accepts full semver. ## Icons Source mark: `apps/desktop/app-icon.png` (1024²). Regenerate platform icons with: diff --git a/apps/desktop/src-tauri/tauri.conf.json b/apps/desktop/src-tauri/tauri.conf.json index bebf9e2..194362c 100644 --- a/apps/desktop/src-tauri/tauri.conf.json +++ b/apps/desktop/src-tauri/tauri.conf.json @@ -17,7 +17,7 @@ }, "bundle": { "active": true, - "targets": "all", + "targets": ["app", "dmg", "deb", "appimage", "nsis"], "icon": [ "icons/32x32.png", "icons/128x128.png", diff --git a/docs/architecture/LOCAL_STACK.md b/docs/architecture/LOCAL_STACK.md index 7468bff..6b3d5da 100644 --- a/docs/architecture/LOCAL_STACK.md +++ b/docs/architecture/LOCAL_STACK.md @@ -10,7 +10,7 @@ Primary target: installable app on **Linux, Windows, macOS**. No Docker/Postgres | Layer | Choice | Notes | |-------|--------|-------| -| Shell | **Tauri 2** | dmg / msi|NSIS / AppImage|deb (manual **Desktop Installers** `workflow_dispatch`) | +| Shell | **Tauri 2** | dmg / NSIS / AppImage|deb (manual **Desktop Installers** `workflow_dispatch`; no WiX MSI while versions use `alpha` pre-release) | | UI | **React + TypeScript + Vite** | | | Backend (shipped) | **Node Hono sidecar** on `127.0.0.1` + session token; desktop adds **per-launch capability token** | Prefer migrating privileged ops to Tauri IPC over time | | Backend (target) | Tauri IPC commands for DB/FS/HTTP without a long-lived TCP sidecar | Aspirational |