Skip to content

Добавить восстановление архивов сборок и миров в Windows-клиенте - #22

Merged
Liis17 merged 7 commits into
mainfrom
feat/windows-backup-open
Oct 24, 2026
Merged

Liis17 merged 7 commits into
mainfrom
feat/windows-backup-open

Conversation

@Liis17

@Liis17 Liis17 commented Oct 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • Реализовано восстановление архивов сборок .hakobackup и миров .hakoworld в Windows-клиенте, соответствующее функциональности macOS-клиента
  • Поддерживается как файловая активация (двойной клик в Проводнике), так и встроенная кнопка "Восстановить из файла..." в разделе сборок
  • Выполняется комплексная проверка архива: безопасные пути, резервные имена Windows, неиспользуемые имена, дубли, символические ссылки, зашифрование, CRC, свободное место, соответствие файлов Minecraft, Fabric и Fabric API
  • Поддерживаются две операции восстановления: создание новой сборки/мира или замена существующей сборки (с сохранением ID, имени, папки, даты и времени игры при замене)
  • Реализовано создание сборки с отсутствующей Java, которая ставится в очередь установки, а сборка с подходящей Java готова к игре сразу
  • Исправлены гонки процессов: защита живой staging-папки от уборки при загрузке, предотвращение ложного сообщения "сборка не попала в очередь" при сбое диалога восстановления, корректное управление _gate при удалении замененных папок
  • Добавлены механизмы защиты резервных имен и atomic замены сборок с откатом при ошибке
  • Установлены ассоциации файлов .hakobackup/.hakoworld в Windows (FileTypeAssociation) с последовательной обработкой позиционных аргументов и file-activation

Testing

  • dotnet test, полный набор: 559 пройдено, 3 пропущено
  • Тесты восстановления архивов, 25 прогонов подряд: все прошли
  • Сборка Hako.Core и WinUI (x64 Debug): прошла
  • Сборка MSIX-пакета (исполнитель): прошла, обе ассоциации файлов в манифесте есть
  • Двойной клик из установленного MSIX и встроенный диалог: не проверено (из-за проблемы Windows App SDK в окружении)
  • Повторное ревью кода и исправлений: не найдено
  • Структура архива и совместимость: соответствует macOS-варианту, форматы данных клиентов не менялись

@Liis17
Liis17 merged commit 2643881 into main Oct 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant