FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

enhancement(core): implement AppUpdaterService to check GitHub Releases and validate SHA256 checksums · Issue #280 · QueryaHub/Querya-Desktop · GitHub

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

Description

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 и логики сравнения версий.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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


    Back | FazBrowse Home | New Git URL