feat(desktop): add offline cache and verified app updates
ci / module boundaries / boundaries (push) Successful in 7s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m2s
ci / ts / ts (packages + web) (push) Successful in 3m8s
ci / desktop / rust (desktop proxy) (push) Successful in 4m21s
release / release (версия и заметки) (push) Successful in 6s
release / android (APK в релиз) (push) Successful in 4m0s
release / desktop (Linux и Windows в релиз) (push) Successful in 11m49s
release / prune (старые файлы и прогоны) (push) Successful in 5s
ci / module boundaries / boundaries (push) Successful in 7s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m2s
ci / ts / ts (packages + web) (push) Successful in 3m8s
ci / desktop / rust (desktop proxy) (push) Successful in 4m21s
release / release (версия и заметки) (push) Successful in 6s
release / android (APK в релиз) (push) Successful in 4m0s
release / desktop (Linux и Windows в релиз) (push) Successful in 11m49s
release / prune (старые файлы и прогоны) (push) Successful in 5s
Clean release notes in Android and desktop update dialogs. Persist downloaded audio and offline playback events per server and user; add desktop update checks, checksum verification and installer launch.
This commit is contained in:
1 parent
75ae2092ad
commit
ab49e22357
27 files changed
+785
-39
No files matched your search
@@ -15,3 +15,32 @@ pnpm --filter @pipu/desktop bundle
|
||||
На Windows получается NSIS-установщик (~3 МБ). На Linux в релиз идёт только `.deb` (~4 МБ): AppImage тащит WebKitGTK и раздувается до ~80 МБ. Зависимости пакета: WebKitGTK 4.1, AppIndicator, libsecret, GStreamer.
|
||||
|
||||
Релиз по тегу собирает Linux `.deb` и Windows NSIS через `cargo-xwin` (`pipu-music-<версия>-windows-setup.exe`). Подпись Windows-установщика на Linux нет. Страница `/download` на сервере отдаёт те файлы, что есть в последнем релизе Gitea.
|
||||
|
||||
## Офлайн и кеш
|
||||
|
||||
Коллекция → **Скачанное и кеш** доступна без сервера, в том числе после перезапуска.
|
||||
Полностью загруженные прослушанные треки автоматически сохраняются в IndexedDB WebView;
|
||||
кеш недавних ограничен 500 МБ, при заполнении удаляются самые старые записи.
|
||||
Кнопка «Скачать» закрепляет трек: такие загрузки не вытесняются кешем и удаляются вручную.
|
||||
Обложки сохраняются рядом с аудио; подписанные ссылки не сохраняются.
|
||||
Хранилище и локальная очередь воспроизведения разделены по адресу сервера и пользователю.
|
||||
|
||||
Настройки показывают размер хранилища и позволяют очистить недавние треки, сохранив ручные загрузки.
|
||||
Плеер предпочитает локальное аудио (включая crossfade); при запуске без сети восстанавливает
|
||||
сессию и сохранённую очередь без автозапуска. Если сервер волны недоступен, можно запустить
|
||||
перемешанные локальные треки без дизлайков. События прослушивания сохраняются локально
|
||||
и досылаются с исходными идентификаторами при восстановлении связи.
|
||||
|
||||
## Обновления
|
||||
|
||||
При запуске и возврате в окно (не чаще раза в 6 часов), а также вручную в настройках,
|
||||
нативный клиент читает `/api/v1/app/clients` через настроенный сервер Pipu.
|
||||
Выбирается сборка текущей ОС, версия сравнивается с установленной с учётом `-rc.N`.
|
||||
Диалог показывает пользовательские заметки без служебных блоков CI.
|
||||
|
||||
«Скачать и установить» загружает сборку в каталог кеша приложения, показывает прогресс,
|
||||
проверяет размер и SHA-256 и только затем открывает установщик. Без контрольной суммы
|
||||
обновление не предлагается. Windows запускает EXE/MSI; Linux открывает DEB/RPM через
|
||||
системный обработчик пакетов; macOS открывает DMG. Установку подтверждает пользователь
|
||||
в системном интерфейсе, после неё требуется перезапуск приложения. На Linux необходим
|
||||
установленный обработчик пакетов для `xdg-open`; AppImage и `.app.tar` этим потоком не поддерживаются.
|
||||
Reference in new issue
Block a user