49 lines
4.3 KiB
Markdown
49 lines
4.3 KiB
Markdown
# План ShaCraft Launcher
|
||
|
||
## Сделано: рефакторинг 2026-09-09
|
||
|
||
- [x] React components/hooks/typed IPC/state reducers вместо единого main.tsx.
|
||
- [x] Строгий TypeScript, тесты async lifecycle и последовательных сохранений.
|
||
- [x] Rust commands по ответственности; signed-only синхронизация профиля.
|
||
- [x] Общие atomic files, process-local operation guards, portable path checks.
|
||
- [x] Проверка подписи, размера envelope и profile ID; bounded provider redirects.
|
||
- [x] Push/PR проверки и ручная матрица сборки с артефактами.
|
||
|
||
## Следующие задачи
|
||
|
||
- [x] Сохранены изменения 0.1.1 из GitHub: обязательный ShaCraft-аккаунт,
|
||
подтверждённый ник, реальный онлайн и исправления Windows-install pipeline.
|
||
- [ ] Microsoft (отдельное будущее решение): собственный client ID + API
|
||
approval и живой OAuth-тест. Текущий запуск использует ShaCraft identity.
|
||
- [ ] Cold install / repair / update / game exit на чистых Windows/Linux/macOS.
|
||
Unit tests и web preview не заменяют эти прогоны.
|
||
- [x] Native самообновление, русский UX, pinned updater key и защищённый release pipeline.
|
||
- [x] Локальные AppImage/deb собраны на Ubuntu 26.04 с CI test key; подписи и
|
||
форматы проверены. Настоящий AppImage прошёл изолированный startup/lock/marker
|
||
smoke. Это не проверка установки, самообновления или совместимости Ubuntu 22.04.
|
||
- [ ] Настроить защищённое GitHub environment/production secrets, опубликовать первый
|
||
updater-релиз и проверить реальную замену приложения на каждой ОС. Подпись ОС и
|
||
Apple notarization — отдельные настройки; CI test keys не предназначены игрокам.
|
||
- [ ] Реальная отмена загрузок, журнал с редактированием токенов и retry UX.
|
||
- [ ] Выбор каталога профиля и безопасный reset только managed-файлов.
|
||
- [ ] Keychain-хранилище сессии ShaCraft; OS-lock и lease игры уже реализованы.
|
||
- [ ] Динамический каталог и новости; реальный Aeronautics онлайн уже
|
||
загружается через фиксированный display-only API. Не имитировать данные.
|
||
|
||
## Исправления по handoff (исходники, до выкладки)
|
||
|
||
- [x] Один signed snapshot и общий межпроцессный lock на Play/Repair.
|
||
- [x] Inventory, journal/recovery, retirement старых неизменённых managed-файлов.
|
||
- [x] Явный перенос выбранных legacy-модов в резервную копию.
|
||
- [x] NeoForge clean rebuild + provenance receipt; непустая порча обнаруживается.
|
||
- [x] Отдельный первый вход с серверным grant и одноразовым proof.
|
||
- [x] RAM retry сохраняет намерение; неверный JAVA_HOME не скрывает подходящий PATH.
|
||
- [x] Версии в интерфейсе берутся из проверенного manifest.
|
||
- [ ] Совместная выкладка backend/Game Bridge/подписанного payload и нового лаунчера.
|
||
- [ ] Изолированная игровая проверка LoginSystem + hold + proof, затем beta по ОС.
|
||
|
||
Сопутствующий серверный код содержит read-only status, nonce proof с legacy
|
||
migration и durable grant/revoke outbox. Оплата и доставка whitelist — разные
|
||
состояния. Реферальные правила остаются отдельной задачей серверного PLAN;
|
||
это исправление не меняет условия покупки. Продакшен не изменён.
|