Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.21 to 6.4.3. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v6.4.3/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.4.3/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 6.4.3 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sure Desktop (macOS)
Native macOS shell (Tauri 2 + WKWebView) that renders the full Sure web app and wraps it in real Mac chrome. It always talks to a Sure server you already run (self-hosted or managed) — same trust model as a browser.
Requirements
- Rust (stable), Node 18+, Xcode command line tools, macOS 12+.
Run in development
cd desktop
npm install
npm run build # builds the injected bridge.js + onboarding assets
npm run tauri dev
On first launch, enter your Sure server URL (e.g. http://localhost:3000 when
running bin/dev). The app health-checks {server}/up, then loads the real
/sessions/new where you sign in with password or SSO (MFA supported).
Build a release .dmg (unsigned)
cd desktop
# Single-arch (host only):
npm run tauri build
# Universal (Apple Silicon + Intel) — what releases ship:
rustup target add aarch64-apple-darwin x86_64-apple-darwin
npm run tauri build -- --target universal-apple-darwin
# Output: src-tauri/target/universal-apple-darwin/release/bundle/dmg/Sure_<ver>_universal.dmg
Publishing a release
The desktop build runs automatically as part of the normal Sure v* release.
The version comes from .sure-version and must match the release tag; it is
stamped into desktop/package.json and desktop/src-tauri/tauri.conf.json
only while building. The universal .dmg is attached to that same GitHub
Release—there is no separate desktop action, tag, or version.
Installing an unsigned build (end users)
The published .dmg is not code-signed, so macOS Gatekeeper blocks the first
launch. To open it:
- Drag Sure to Applications and try to open it; dismiss the warning.
- System Settings → Privacy & Security, scroll down, click Open Anyway, and confirm. (On macOS 15 Sequoia the old right-click→Open shortcut is gone; this Settings path is the way.)
If macOS instead says the app is "damaged", the download was quarantined — strip it once in Terminal:
xattr -cr /Applications/Sure.app
Signing + notarization (below) removes this friction entirely.
Rust tests
cd desktop/src-tauri
cargo test
Deep links
Registered scheme: sure://{host}[:port]/{path} → opens the app to that
server/page. Example: open "sure://localhost:3000/accounts". (Works from the
bundled .app, not tauri dev.)
Code signing & notarization (required for distribution — NOT wired up)
No Apple Developer credentials are needed to build/run locally. To ship a
distributable, signed, notarized .dmg, add:
- An Apple Developer ID Application certificate in your login keychain.
- Tauri signing config in
src-tauri/tauri.conf.jsonunderbundle.macOS:"signingIdentity": "Developer ID Application: <NAME> (<TEAMID>)","hardenedRuntime": true, and anentitlementsplist if needed. - Notarization after build:
VERSION="<release-version>" xcrun notarytool submit "src-tauri/target/universal-apple-darwin/release/bundle/dmg/Sure_${VERSION}_universal.dmg" \ --apple-id "<APPLE_ID>" --team-id "<TEAMID>" --password "<APP_SPECIFIC_PW>" --wait xcrun stapler staple "src-tauri/target/universal-apple-darwin/release/bundle/dmg/Sure_${VERSION}_universal.dmg"
These steps require an Apple Developer account and are intentionally left as a documented follow-up.
Not built yet (see spec §9)
- Balance-with-sparkline glance widget (Tauri floating panel and/or a WidgetKit
Notification Center widget with App Group data sharing), fed by an
auto-provisioned read-only API key polling
/api/v1. Deferred by design.