Without this, every secondary window (preview overlay, task float,
transcript viewer) opened at whatever spot Tauri / the compositor picked,
which was especially noticeable on Wayland where placement hints are
advisory. Main window's position was also lost on restart.
Registering tauri_plugin_window_state in the builder gives automatic
per-window-label save + restore. State lives in app-data/window-state.json;
fresh installs still fall back to the builder defaults (no changes to
inner_size on any of the four windows). Covers OpenWhispr issue #605 and
the broader UX pain.
No frontend changes — the plugin is purely backend. Regenerated ACL
manifests / desktop + linux schemas pick up the plugin registration.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
.github/workflows/check.yml: cargo check on Linux + Windows + macOS
plus Svelte/Vite build on every push to main and every PR. Fast
feedback without paying for the full release build.
.github/workflows/build.yml: cross-platform release build producing
.AppImage/.deb (Linux), .msi/.exe (Windows), .dmg (macOS). Triggers
on v* tag push (attaches to a draft GitHub Release) or manual
workflow_dispatch. Signing stubs commented out pending cert decisions.
run.sh: dev launcher that starts Vite, waits for port 1420, then runs
tauri dev with beforeDevCommand blanked to avoid a second Vite spawn.
Restores tauri.conf.json on exit via trap.
src-tauri/gen/schemas/linux-schema.json: Tauri-generated capability
schema for Linux; the other platform schemas (desktop, windows) were
already committed. Adds the missing sibling.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>