feat: add auto-update system with release checking, notification UI, and install-type-aware apply

- Abstract ReleaseProvider interface (Gitea impl, swappable for GitHub/GitLab)
- Background UpdateService with periodic checks, debounce, dismissed version persistence
- Install type detection (installer/portable/docker/dev) with platform-aware asset matching
- Download with progress events, silent NSIS reinstall, portable ZIP/tarball swap scripts
- Version badge pulse animation, dismissible banner with icon buttons, Settings > Updates tab
- Single source of truth: pyproject.toml version via importlib.metadata, CI stamps tag with sed
- API: GET/POST status, check, dismiss, apply, GET/PUT settings
- i18n: en, ru, zh (27+ keys each)
This commit is contained in:
2026-03-25 13:16:18 +03:00
parent d2b3fdf786
commit 382a42755d
30 changed files with 1750 additions and 44 deletions
@@ -1844,6 +1844,43 @@
"appearance.bg.scanlines": "扫描线",
"appearance.bg.applied": "背景效果已应用",
"settings.tab.updates": "更新",
"update.status_label": "更新状态",
"update.current_version": "当前版本:",
"update.badge_tooltip": "有新版本可用 — 点击查看详情",
"update.available": "版本 {version} 可用",
"update.up_to_date": "已是最新版本",
"update.prerelease": "预发布",
"update.view_release": "查看发布",
"update.dismiss": "忽略",
"update.check_now": "检查更新",
"update.check_error": "检查更新失败",
"update.last_check": "上次检查",
"update.never": "从未",
"update.release_notes": "发布说明",
"update.auto_check_label": "自动检查设置",
"update.auto_check_hint": "在后台定期检查新版本。",
"update.enable": "启用自动检查",
"update.interval_label": "检查间隔",
"update.channel_label": "频道",
"update.channel.stable": "稳定版",
"update.channel.stable_desc": "仅稳定版本",
"update.channel.prerelease": "预发布",
"update.channel.prerelease_desc": "包括 alpha、beta 和 RC 版本",
"update.save_settings": "保存设置",
"update.settings_saved": "更新设置已保存",
"update.settings_save_error": "保存更新设置失败",
"update.apply_now": "立即更新",
"update.apply_confirm": "下载并安装版本 {version}?服务器将自动重启。",
"update.apply_error": "更新失败",
"update.applying": "正在应用更新…",
"update.downloading": "正在下载…",
"update.install_type_label": "安装类型:",
"update.install_type.installer": "Windows 安装程序",
"update.install_type.portable": "便携版",
"update.install_type.docker": "Docker",
"update.install_type.dev": "开发环境",
"color_strip": {
"notification": {
"search_apps": "搜索通知应用…"