- Install @tauri-apps/plugin-updater + plugin-process (npm + cargo) - Configure tauri.conf.json: updater endpoint pointing to GitHub Releases, signing pubkey, createUpdaterArtifacts enabled - Register updater + process plugins in Rust (desktop-only, #[cfg(desktop)]) - Add updater:default + process:default capabilities - Add useUpdater hook: checks for updates 3s after startup, shows native confirm dialog, downloads+installs+relaunches on accept - Silently catches errors so update failures never block the app - Add comprehensive tests for the useUpdater hook (5 test cases) Product decision: Using window.confirm() for the update dialog rather than a custom React modal. This keeps the implementation simple and the native dialog is appropriate for a system-level action like app restart. Can be upgraded to a custom UI later if desired. Private key generated at ~/.tauri/laputa.key — NOT committed. For CI: set TAURI_SIGNING_PRIVATE_KEY + TAURI_SIGNING_PRIVATE_KEY_PASSWORD as GitHub Secrets. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
54 lines
1.3 KiB
JSON
54 lines
1.3 KiB
JSON
{
|
|
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
|
|
"productName": "laputa",
|
|
"version": "0.1.0",
|
|
"identifier": "com.tauri.dev",
|
|
"build": {
|
|
"frontendDist": "../dist",
|
|
"devUrl": "http://localhost:5201",
|
|
"beforeDevCommand": "pnpm dev",
|
|
"beforeBuildCommand": "pnpm build"
|
|
},
|
|
"app": {
|
|
"withGlobalTauri": true,
|
|
"windows": [
|
|
{
|
|
"title": "Laputa",
|
|
"width": 1400,
|
|
"height": 900,
|
|
"resizable": true,
|
|
"fullscreen": false,
|
|
"titleBarStyle": "Transparent",
|
|
"backgroundColor": "#F7F6F3"
|
|
}
|
|
],
|
|
"security": {
|
|
"csp": null,
|
|
"assetProtocol": {
|
|
"enable": true,
|
|
"scope": ["**"]
|
|
}
|
|
}
|
|
},
|
|
"bundle": {
|
|
"active": true,
|
|
"targets": "all",
|
|
"createUpdaterArtifacts": true,
|
|
"icon": [
|
|
"icons/32x32.png",
|
|
"icons/128x128.png",
|
|
"icons/128x128@2x.png",
|
|
"icons/icon.icns",
|
|
"icons/icon.ico"
|
|
]
|
|
},
|
|
"plugins": {
|
|
"updater": {
|
|
"endpoints": [
|
|
"https://github.com/refactoringhq/laputa-app/releases/latest/download/latest.json"
|
|
],
|
|
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IERFNzVEOTA0Q0U2QUE5ODIKUldTQ3FXck9CTmwxM2x2eUZyOFYwUno0ZzVXVStCeG9xcUcvK0pIWnRWS0xMbmEwVE84NUdXejAK"
|
|
}
|
|
}
|
|
}
|