LoVisual/launcher/TODO.md
loki5512344 52d87368c9 chore(history): squash 10 commit(s) from 2026-07-31
- feat: Фаза 1 ребрендинг combatant → lovisual + восстановление config
- refactor: Фаза 2 — выкинуть Runtime/JarReplacement, заменить на Lifecycle
- refactor: Фаза 3.5 — удалить читерские модули, ESP под легит
- refactor: Фаза 3 — разбить Renderer2D (3379→2150 фасад + 14 хелперов ≤200)
- refactor: Фаза 3 — разбить BetterChatRenderer (2870→210 фасад + 21 хелпер ≤200)
- refactor: Фаза 3 — разбить UnifiedSettingRenderer (2798→208 фасад + 24 хелпера ≤200)
- refactor: Фаза 3 — разбить ClickGuiRenderer (1887→542 фасад + 15 хелперов ≤200)
- refactor: Фаза 3 — разбить NameTags (1791→438 фасад + 11 хелперов ≤200)
- refactor: Фаза 3 — разбить TargetHud (1655→340 фасад + 11 хелперов ≤200)
- refactor: Фаза 3 — разбить ESP (1538→269 фасад + 11 хелперов ≤200)
2026-07-31 23:14:14 +02:00

37 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# LoVisual Launcher (Rust + Slint)
## Правила (ОБЯЗАТЕЛЬНЫЕ, нарушение = откат)
- **KISS / DRY / SOLID** — простая структура, без оверинжиниринга
- **Макс. 200 строк на файл** — превышение = разбить на модули
- **Макс. 3 файла на папку** — больше = новая подпапка по смыслу
- **Обязательное прохождение:** `cargo fmt` + `cargo clippy --all-targets` (ноль ошибок) + `cargo test`
- **Запрещено `#[allow(dead_code)]`** — мёртвый код удаляется, не прячется
- **unsafe запрещён в нашем коде** (сгенерированный Slint-код — исключение, его не трогаем)
- **Без пустышек** — модуль создаётся только с рабочей реализацией
- **Каждый этап компилируется** — перед переходом к следующему
---
## Сделано
- [x] Каркас: main.rs + api/ (health check в фоне)
- [x] Окно логина (Slint): логин/пароль/статус
- [x] Rust 2024 edition, актуальные версии пакетов
- [x] Фоновая проверка `/health` бэкенда, статус в UI
---
## Фаза 1: API клиент (`src/api/`)
- [ ] `auth.rs` — login/register (reqwest, таймауты, rename_all)
- [ ] `profile.rs` — get/update/playtime/version check
- [ ] Версия лаунчера читается из Cargo.toml (не хардкод)
## Фаза 2: Экраны (Slint)
- [ ] login — реальный логин/регистрация через backend
- [ ] dashboard — профиль, playtime, version check
- [ ] settings — кастомная команда запуска (ЧИТАЕТСЯ на Play, не stale)
## Фаза 3: Launch
- [ ] `src/launch/mod.rs` — запуск Minecraft (команда из настроек, защита от пустой строки)
- [ ] `src/session/mod.rs` — save_session только при логине, удалять при logout
### Проверка после каждой фазы: `cargo fmt && cargo clippy --all-targets && cargo test`