# ShaCraft Launcher Кроссплатформенный Tauri 2 лаунчер для [ShaCraft](https://shacraft.ru/): React/TypeScript интерфейс, Rust — файлы, сеть и запуск процессов. Реализованы подписанная синхронизация Aeronautics, проверка/восстановление модов и конфигурации, Java discovery/provisioning, bootstrap Minecraft и NeoForge, настройки памяти и ника, обработка установки/запуска/выхода. Вход выполняется через аккаунт ShaCraft — тот же, что на сайте. Игровой ник берётся только из подтверждённой привязки Aeronautics, а не из редактируемых локальных настроек. Пароли не сохраняются; сессию можно отозвать. Microsoft OAuth-модуль сохранён отдельно, но не используется текущим сценарием запуска; для его активации потребуются client ID и API approval. ## Разработка ```bash npm ci npm run dev ``` Это браузерный preview — он не устанавливает и не запускает игру. Для приложения нужен Rust и системные зависимости Tauri: ```bash npm run tauri:dev ``` ## Проверка ```bash npm test npm run build cargo test --locked --manifest-path src-tauri/Cargo.toml ``` Build включает строгий TypeScript. GitHub Actions проверяет UI и Rust на push/PR; workflow на main-push/ручном запуске собирает Windows x64, Linux x64, macOS Intel и Apple Silicon и сохраняет неподписанные артефакты. Релизный оператор подписывает проверенные пакеты и metadata локальным ключом; CI его не получает. Используемые macOS runners соответствуют [списку GitHub](https://docs.github.com/en/actions/reference/runners/github-hosted-runners). ## Обновление лаунчера С версии 0.1.3 настройки содержат проверку обновлений, установку с прогрессом и перезапуск. Лаунчер также проверяет новые версии при старте, но устанавливает их только по кнопке. Подписи пакета и сведений о версии обязательны. Закройте запущенный Minecraft перед установкой обновления. В Linux обновляются AppImage и установленный deb (с версии 0.1.4). Для deb система запрашивает права администратора; пароль не передаётся лаунчеру. Deb 0.1.3 и ниже нужно один раз обновить вручную до 0.1.4. Dev-бинарник обновляется вручную. С версии 0.1.2 нужен ручной переход на новый AppImage. Пакеты Windows/macOS с этим механизмом ещё требуют публикации и проверки установки. ## Навигация - [Архитектура](docs/launcher-architecture.md) — компоненты, данные, IPC. - [Trust boundaries](docs/game-trust-boundary.md) — доверенные источники игры. - [Manifest](docs/manifest-v1.md) — подписанный контракт модпака. - [Обновления](docs/launcher-updates.md) — подпись, публикация и восстановление. - [PLAN.md](PLAN.md) — ограничения и следующие шаги. - [AGENTS.md](AGENTS.md) — инструкции для следующего разработчика/агента. Не хранить в Git токены, ключи, пользовательские данные или пакеты игры.