feat(app-update): add in-app update flow with auto-check and manual trigger#103
Merged
feat(app-update): add in-app update flow with auto-check and manual trigger#103
Conversation
- Add update state machine (useReducer) with 8 states and 9 actions - Implement UpdateDialog with 7 views: checking, available, downloading, installing, restarting, up-to-date, and error - Add startup auto-check that silently skips if up-to-date or on error - Add manual check-for-updates button in Settings - Display Markdown-rendered release notes via react-markdown - Show current and available version comparison - Add skip-version functionality with persistent storage - Add 10-second timeout for update checks (offline resilience) - Coordinate auto-check dialog with splash screen completion - Add 'View past releases' external link in dialog and Settings - Enable text selection for release notes content - Generate release notes via GitHub API in CI workflow - Add tauri-plugin-updater and tauri-plugin-process - Set window focus on startup for foreground display Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add a complete in-app update flow for Scripta, including automatic update checks on startup and a manual "Check for Updates" option in Settings. The update dialog shows release notes rendered as Markdown, version comparison, download progress, and supports skip-version functionality.
Related Issue
N/A — No existing issue for this feature.
Type of Change
Key Changes
Update State Machine
useReducerwith 8 states (idle,checking,available,downloading,installing,restarting,upToDate,error) and 9 actionsUI (UpdateDialog)
react-markdownAuto-Check on Startup
tauri-plugin-store)Manual Check (Settings)
CI/CD
generate-notesjob inrelease.ymlusing GitHub APIgenerateReleaseNotes()releaseBodyto tauri-actionInfrastructure
tauri-plugin-updaterandtauri-plugin-processprocess:allow-restartcapabilitywindow.set_focus())Breaking Changes
None.
Test
npm run devand verify the app starts without errorscargo build→ verify no compilation errorsChecklist