# v1.2.0-alpha.0 — Desktop GUI (Phase A + B preview) First **prerelease** of the v1.2 desktop line. It exercises the new desktop build pipeline end-to-end and ships an early read-only dashboard. The CLI is unchanged in behavior; all desktop surfaces are thin shells over it. > ⚠️ Prerelease. Desktop installers are **unsigned (Windows) / ad-hoc-signed > (macOS)** — expect a SmartScreen / Gatekeeper prompt. The GUI is read-only; > it cannot launch agents yet (that's Phase C). ## Added - **Desktop release pipeline** — `release.yml` gains a `build-desktop` matrix job (after the SEA binaries): it stages the CLI as a Tauri sidecar, generates icons, runs `tauri build`, and attaches `.dmg` / `.msi` / `.AppImage` to the Release. This tag is its first real run. - **Deterministic desktop icons** — `npm run gen-icon-source` writes a committed `icon-source.png` with no image library; `npm run icon` derives the per-OS set in CI. - **Sidecar staging** — `npm run stage-sidecar` maps a Release artifact / local SEA binary to the Tauri target-triple name under `desktop/src-tauri/binaries/`. - **Read-only dashboard** (`desktop/ui/index.html`) — project switcher, status panel, budget panel with a usage bar, diet selector (display state only), and a read-only handoff preview. Every value flows through the CLI sidecar. - **CLI surface for display tools** — `project list --json`, `project current --json`, and `handoff show [--file ] [--json]` (read-only; `--file` only accepts names from `handoff history`, so no path traversal). ## Notes - `desktop/package.json` pins `@tauri-apps/cli` so `npm run dev/build` works without a global `cargo tauri`. Building still needs the Rust toolchain. - Hard constraints unchanged: the webview holds no business logic, never touches `.ai-session/` directly, and performs no auto commit/push/PR.