Skip to content

feat(tauri): scaffold tray-only Tauri shell with self-update#24

Merged
statik merged 2 commits into
claude/tauri-migration-self-update-74d57gfrom
claude/step-12-tauri-shell
Jun 21, 2026
Merged

feat(tauri): scaffold tray-only Tauri shell with self-update#24
statik merged 2 commits into
claude/tauri-migration-self-update-74d57gfrom
claude/step-12-tauri-shell

Conversation

@statik

@statik statik commented Jun 21, 2026

Copy link
Copy Markdown
Member

Step 12 of the Tauri/Rust migration

Scaffolds the tray-only Tauri v2 shell with self-update — the first piece that can't be built in this Linux sandbox, so it's verified by a new macOS/Windows CI job.

What's here

  • src-tauri/ — its own Cargo workspace (excluded from the library workspace via exclude, so the Linux CI matrix never needs webkit).
    • tauri.conf.json: tray-only (windows: []), bundle targets dmg/app/nsis/msi, createUpdaterArtifacts: true, updater plugin → releases/latest/download/latest.json. pubkey is intentionally empty (TODO: maintainer fills their minisign public key per Maintainer setup: signing keys & secrets for Tauri self-update (do NOT auto-generate) #12).
    • main.rs (minimal): registers updater/process/dialog plugins, sets the macOS Accessory activation policy (menu-bar agent, no Dock icon), and builds a tray menu — Check for Updates… (check → download+install → relaunch) and Quit.
    • Generated desktop icon set, frontend stub (ui/), capabilities, committed Cargo.lock.
  • CI: new tauri job builds + clippies + fmt-checks the app on macOS and Windows (webview prereqs ship with those runners). Linux Tauri builds happen via tauri-action at release time.

Scope / verification

This is the minimal shell to get the Tauri toolchain + CI green; the core wiring (HyperDeck server, profile lock/reconcile, status + profile submenu + re-home) and the release workflow land in follow-ups. I can't compile Tauri locally (no webkit), so the macOS/Windows tauri CI job is the gate — I'll iterate on it if it flags anything.

Part of: #10, #11, #12.


Generated by Claude Code

claude added 2 commits June 21, 2026 14:44
Add the src-tauri Tauri v2 application (its own workspace, excluded from
the library workspace so the Linux CI never needs webkit):

- tauri.conf.json: tray-only (no windows), bundle targets dmg/app/nsis/msi,
  createUpdaterArtifacts, and the updater plugin pointed at the GitHub
  releases latest.json endpoint. pubkey is intentionally empty (TODO: the
  maintainer fills in their minisign public key per issue #12).
- minimal main.rs: registers the updater/process/dialog plugins, sets the
  macOS Accessory activation policy (menu-bar agent, no Dock icon), and
  builds a tray menu with "Check for Updates…" (download+install+relaunch)
  and Quit. Core wiring (server/lock/reconcile/profile menu) lands next.
- generated desktop icon set, a minimal frontend stub (ui/), capabilities,
  and a committed Cargo.lock.
- CI: new `tauri` job builds + clippies + fmt-checks the app on macOS and
  Windows (where the webview prerequisites ship with the runner).

The Tauri app cannot be built in the Linux dev sandbox (no webkit); it is
verified by the macOS/Windows CI job and, at release time, tauri-action.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R8X1NxFiaLGJzwUD5wgRTv
tauri::generate_context! expands to code referencing serde_json in the
app crate root, so it must be a direct dependency. Also remove the unused
tauri::Manager import (clippy -D warnings).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R8X1NxFiaLGJzwUD5wgRTv
@statik
statik merged commit 33bcf95 into claude/tauri-migration-self-update-74d57g Jun 21, 2026
7 checks passed
@statik
statik deleted the claude/step-12-tauri-shell branch June 21, 2026 14:52
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.

2 participants