From 233693da17d9d74e89824defb9fdb9ace9b7817e Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 10 Aug 2026 12:19:52 +0000 Subject: [PATCH 1/3] Fix Windows desktop build: ship NSIS, skip WiX MSI WiX rejects non-numeric semver pre-releases like 0.1.0-alpha.1. Bundle NSIS only on Windows so alpha versions package successfully. Co-authored-by: Damon --- .github/workflows/desktop-installers.yml | 2 +- .github/workflows/release.yml | 2 +- apps/desktop/README.md | 5 +++-- apps/desktop/src-tauri/tauri.conf.json | 2 +- docs/architecture/LOCAL_STACK.md | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) 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..c2b568f 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 }} 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 | From f999ead9f42b89c5144611d0c00020c8bfb7ea43 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 10 Aug 2026 12:20:05 +0000 Subject: [PATCH 2/3] Docs: note Windows ships NSIS only for alpha versions Co-authored-by: Damon --- .github/workflows/release.yml | 2 +- CHANGELOG.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c2b568f..ceef3ec 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -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..9c0e1aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,7 +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 First tagged alpha intended for GitHub Releases via Actions → **Release**. From b33ddcdcea3a1c0b9065b492a85ffa28a39d66dc Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 10 Aug 2026 12:20:15 +0000 Subject: [PATCH 3/3] Changelog: restore blank line before version heading Co-authored-by: Damon --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c0e1aa..4e322f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ Versions follow [SemVer](https://semver.org/) (`0.1.0-alpha.x` while the public - 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 First tagged alpha intended for GitHub Releases via Actions → **Release**.