Skip to content

enhancement(core): implement AppUpdaterService to check GitHub Releases and validate SHA256 checksums #280

Description

@ZhuchkaTriplesix

Summary / Описание задачи

В соответствии с Фазой 1 Технического Задания на систему автообновления (см. Obsidian 06 — Планирование/Система автообновления десктопа.md), необходимо разработать ядро службы проверки обновлений — AppUpdaterService.

Сервис должен:

  1. Выполнять периодический фоновый опрос GitHub Releases API (https://api.github.com/repos/QueryaHub/Querya-Desktop/releases/latest) и/или бэкенда сайта при старте приложения (если включено в настройках).
  2. Получать текущую версию приложения через PackageInfo.fromPlatform() и сравнивать по стандарту SemVer с тегом последнего релиза.
  3. Поддерживать переключение каналов в Preferences (Stable vs Dev).
  4. Загружать манифест артефактов (sha256sum.txt) и проверять контрольную сумму SHA256 перед передачей загруженного бинарного файла на установку.

Scope & Component

  • Scope: desktop
  • Component: Core / Updater Service
  • Kind: enhancement
  • Severity: high
  • Detected in version: dev / 0.5.0

Местоположение в коде (Планируемое)

  • Файл: lib/core/updater/app_updater_service.dart и lib/core/updater/update_manifest.dart

Acceptance Criteria / Критерии приемки

  • Реализован класс AppUpdaterService с методами checkForUpdates({bool background = false}) и downloadAsset(UpdateAsset asset, {ProgressCallback onProgress}).
  • Сервис корректно сравнивает версии по SemVer и игнорирует pre-release сборки, если выбран канал Stable.
  • Скачанные файлы в обязательном порядке проверяются по алгоритму SHA256; при несовпадении хэша выбрасывается исключение безопасности и загрузка прерывается.
  • Написаны unit-тесты для парсера ответов GitHub API и логики сравнения версий.

Metadata

Metadata

Labels

coreCore library logic and servicesenhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions