2.1 KiB
2.1 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec | |||
|---|---|---|---|---|---|---|---|---|---|
| 04-updater-runtime-settings | Desktop updater runtime and settings adapter | done | 3 |
|
plan.md | ../../specs/desktop/requirements/desktop-tauri-app.md |
Task 04: Desktop Updater Runtime and Settings Adapter
Acceptance
- Rust exposes bounded check, download/install, and relaunch operations with one in-flight update.
- Checks run after ready and no more than every 24 hours; manual checks always run immediately.
- Valid newer signed updates enter
available; invalid signatures, wrong targets, current/older versions, and network failures do not stop the running app. - Download/install/relaunch starts only after explicit confirmation in the existing
/settings/system/updatespage. - Update restart cleanly stops the owned backend without replacing Tauri's updater exit code.
- The existing browser/service updater remains unchanged and the desktop page clearly represents desktop-app status, progress, current/latest versions, no-update state, and errors.
Files Likely Touched
apps/desktop/src-tauri/src/main.rs,lib.rs, and a new updater moduleapps/desktop/src-tauri/Cargo.tomlapps/desktop/src-tauri/tauri.conf.jsonapps/desktop/src-tauri/capabilities/default.jsonapps/desktop/src-tauri/src/backend.rsapps/web/components/settings/system/updates-card.tsxapps/web/components/settings/system/updates-card.test.tsx- New updater bridge/state modules under
apps/web/lib/desktop/
Verification
cd apps/desktop/src-tauri && rtk cargo fmt --check && rtk cargo test --features desktop-runtime
cd apps/web && rtk pnpm run typecheck
cd apps/web && rtk pnpm test updates-card
Use deterministic Rust tests for scheduling/state transitions and backend shutdown on restart. Frontend tests must cover desktop and service adapters, confirmation gating, progress/errors, and the unchanged narrow/mobile rendering path.
Output Contract
Update this task to done and check its plan item only after both native and web update state
machines are verified.