Обновления: кнопка «Обновить» показывает настоящий результат, устаревшие данные не предлагаются

Жалоба со стенда: в «Обновлениях» висит ЛК 0.2.0, нажимаешь «Обновить» —
ничего не происходит. На деле обновление уходило в фон и падало («манифест
HTTP 404: релизов в канале нет» — стенд на канале stable, релизы выкладываются
в beta), а отказ оседал в незаметной строке «Последняя проверка».

- Модули обновляются на месте и во flash показывается фактический результат;
  в фон уходит только обновление ядра, где ответа установщика всё равно не
  дождаться (bj-server перезапускается раньше).
- Строка результата при отказе показывается предупреждением, а не серым текстом.
- Если последняя проверка не удалась, кнопки установки скрыты, у версии —
  пояснение «нажмите „Проверить обновления“»: предлагать установку по данным
  неудачной проверки нельзя.
- Версии запоминаются вместе с каналом (components_channel); при смене канала
  прошлые данные забываются — они относились к другому каналу.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
This commit is contained in:
zuevav
2026-09-18 19:39:09 +03:00
parent 55f523e1ed
commit 560c39da18
5 changed files with 150 additions and 11 deletions
+4
View File
@@ -96,6 +96,10 @@ type UpdateSettings struct {
Notes string `json:"notes,omitempty"` // заметки доступного релиза
// Components — версии компонентов в последнем проверенном релизе (имя → версия).
Components map[string]string `json:"components,omitempty"`
// ComponentsChannel — канал, в котором эти версии были найдены. Если канал
// сменили, данные прошлой проверки к новому каналу не относятся: предлагать
// по ним обновление нельзя (кнопка «Обновить» уходила бы в пустоту).
ComponentsChannel string `json:"components_channel,omitempty"`
}
// NewsSettings — лента новостей (события системы, окна техработ, обновления