feat(update): 检查更新优先静态 latest.json,避免用户撞 GitHub API 限流

- 客户端优先下载 releases/latest/download/latest.json,再回退 REST API
- 成功结果写入磁盘缓存,限流/断网时可 stale 回退
- 静默检查增加节流;限流文案改为用户无需配置 Token
- CI 与 build-release 发版时生成 latest.json 清单
- 补充静态清单/缓存/节流单测与生成脚本测试
This commit is contained in:
Syngnat
2026-07-09 12:35:12 +08:00
parent 566339f09f
commit 3beab030f4
14 changed files with 873 additions and 11 deletions

View File

@@ -2938,7 +2938,7 @@
"app.update.backend.error.channel_invalid": "Ungültiger Update-Kanal: {{channel}}",
"app.update.backend.error.check_failed": "Updateprüfung fehlgeschlagen: {{detail}}",
"app.update.backend.error.check_http_forbidden": "Update-Prüfung fehlgeschlagen: GitHub meldete 403 Forbidden. Prüfen Sie den Zugriff auf api.github.com über Netzwerk/Proxy oder setzen Sie GONAVI_GITHUB_TOKEN. {{detail}}",
"app.update.backend.error.check_http_rate_limited": "Update-Prüfung fehlgeschlagen: GitHub-API-Ratenlimit erreicht (ohne Auth ca. 60 Anfragen/Stunde; gemeinsame Proxy-IPs sind schneller erschöpft). Später erneut versuchen oder GONAVI_GITHUB_TOKEN setzen. {{detail}}",
"app.update.backend.error.check_http_rate_limited": "Update-Prüfung fehlgeschlagen: Der Update-Dienst ist ausgelastet oder Ihr Netzausgang ist begrenzt. Bitte später erneut versuchen. Endnutzer müssen kein Token konfigurieren. {{detail}}",
"app.update.backend.error.check_http_status": "Updateprüfung fehlgeschlagen: HTTP {{status}}",
"app.update.backend.error.download_failed": "Updatedownload fehlgeschlagen: {{detail}}",
"app.update.backend.error.install_target_not_writable": "Das aktuelle Installationsverzeichnis ist nicht beschreibbar: {{path}} ({{detail}})",

View File

@@ -2938,7 +2938,7 @@
"app.update.backend.error.channel_invalid": "Invalid update channel: {{channel}}",
"app.update.backend.error.check_failed": "Check for updates failed: {{detail}}",
"app.update.backend.error.check_http_forbidden": "Update check failed: GitHub returned 403 Forbidden. Ensure api.github.com is reachable via your network/proxy, or set GONAVI_GITHUB_TOKEN. {{detail}}",
"app.update.backend.error.check_http_rate_limited": "Update check failed: GitHub API rate limit exceeded (about 60 requests/hour unauthenticated; shared proxy IPs hit the limit faster). Retry later, or set GONAVI_GITHUB_TOKEN to raise the quota. {{detail}}",
"app.update.backend.error.check_http_rate_limited": "Update check failed: the update service is busy or your network egress is rate-limited. Please try again later. End users do not need to configure any token. {{detail}}",
"app.update.backend.error.check_http_status": "Check for updates failed: HTTP {{status}}",
"app.update.backend.error.download_failed": "Update download failed: {{detail}}",
"app.update.backend.error.install_target_not_writable": "The current install directory is not writable: {{path}} ({{detail}})",

View File

@@ -2938,7 +2938,7 @@
"app.update.backend.error.channel_invalid": "無効な更新チャネルです: {{channel}}",
"app.update.backend.error.check_failed": "更新確認に失敗しました: {{detail}}",
"app.update.backend.error.check_http_forbidden": "更新確認に失敗しました: GitHub が 403 を返しました。api.github.com への通信/プロキシを確認するか、GONAVI_GITHUB_TOKEN を設定してください。{{detail}}",
"app.update.backend.error.check_http_rate_limited": "更新確認に失敗しました: GitHub API のレート制限に達しました(未認証は約 60 回/時。共有プロキシ IP では更に早く制限されます。しばらくして再試行するか、GONAVI_GITHUB_TOKEN を設定してください。{{detail}}",
"app.update.backend.error.check_http_rate_limited": "更新確認に失敗しました: 更新サーバーが混雑しているか、ネットワーク出口が制限されています。しばらくしてから再試行してください。一般ユーザーは Token の設定は不要です。{{detail}}",
"app.update.backend.error.check_http_status": "更新確認に失敗しました: HTTP {{status}}",
"app.update.backend.error.download_failed": "更新のダウンロードに失敗しました: {{detail}}",
"app.update.backend.error.install_target_not_writable": "現在のインストール先ディレクトリに書き込めません: {{path}} ({{detail}})",

View File

@@ -2938,7 +2938,7 @@
"app.update.backend.error.channel_invalid": "Недопустимый канал обновления: {{channel}}",
"app.update.backend.error.check_failed": "Не удалось проверить обновления: {{detail}}",
"app.update.backend.error.check_http_forbidden": "Не удалось проверить обновления: GitHub вернул 403. Проверьте доступ к api.github.com через сеть/прокси или задайте GONAVI_GITHUB_TOKEN. {{detail}}",
"app.update.backend.error.check_http_rate_limited": "Не удалось проверить обновления: превышен лимит GitHub API (без токена ~60 запросов/час; общий IP прокси исчерпывается быстрее). Повторите позже или задайте GONAVI_GITHUB_TOKEN. {{detail}}",
"app.update.backend.error.check_http_rate_limited": "Не удалось проверить обновления: служба обновлений занята или сетевой выход ограничен. Повторите позже. Конечным пользователям не нужно настраивать токен. {{detail}}",
"app.update.backend.error.check_http_status": "Не удалось проверить обновления: HTTP {{status}}",
"app.update.backend.error.download_failed": "Не удалось скачать обновление: {{detail}}",
"app.update.backend.error.install_target_not_writable": "Текущий каталог установки недоступен для записи: {{path}} ({{detail}})",

View File

@@ -2938,7 +2938,7 @@
"app.update.backend.error.channel_invalid": "无效的更新通道:{{channel}}",
"app.update.backend.error.check_failed": "检查更新失败:{{detail}}",
"app.update.backend.error.check_http_forbidden": "检查更新失败GitHub 返回 403访问被拒绝。请确认网络/代理可访问 api.github.com或配置 GONAVI_GITHUB_TOKEN。{{detail}}",
"app.update.backend.error.check_http_rate_limited": "检查更新失败:GitHub API 请求过于频繁(未认证约 60 次/小时;若走共享代理,出口 IP 会更快被限流)。可稍后再试,或设置环境变量 GONAVI_GITHUB_TOKEN 提高配额。{{detail}}",
"app.update.backend.error.check_http_rate_limited": "检查更新失败:更新服务暂时繁忙或网络出口被限流。请稍后再试;普通用户无需配置任何 Token。{{detail}}",
"app.update.backend.error.check_http_status": "检查更新失败HTTP {{status}}",
"app.update.backend.error.download_failed": "更新下载失败:{{detail}}",
"app.update.backend.error.install_target_not_writable": "当前安装目录不可写:{{path}}{{detail}}",

View File

@@ -2938,7 +2938,7 @@
"app.update.backend.error.channel_invalid": "無效的更新通道:{{channel}}",
"app.update.backend.error.check_failed": "檢查更新失敗:{{detail}}",
"app.update.backend.error.check_http_forbidden": "檢查更新失敗GitHub 回傳 403存取被拒絕。請確認網路/代理可存取 api.github.com或設定 GONAVI_GITHUB_TOKEN。{{detail}}",
"app.update.backend.error.check_http_rate_limited": "檢查更新失敗:GitHub API 請求過於頻繁(未認證約 60 次/小時;若走共用代理,出口 IP 會更快被限流)。可稍後再試,或設定環境變數 GONAVI_GITHUB_TOKEN 提高配額。{{detail}}",
"app.update.backend.error.check_http_rate_limited": "檢查更新失敗:更新服務暫時繁忙或網路出口被限流。請稍後再試;一般使用者無需設定任何 Token。{{detail}}",
"app.update.backend.error.check_http_status": "檢查更新失敗HTTP {{status}}",
"app.update.backend.error.download_failed": "更新下載失敗:{{detail}}",
"app.update.backend.error.install_target_not_writable": "目前安裝目錄不可寫:{{path}}{{detail}}",