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

2.3 KiB
Raw Blame History

LoVisual Launcher (Rust + Slint)

Правила (ОБЯЗАТЕЛЬНЫЕ, нарушение = откат)

  • KISS / DRY / SOLID — простая структура, без оверинжиниринга
  • Макс. 200 строк на файл — превышение = разбить на модули
  • Макс. 3 файла на папку — больше = новая подпапка по смыслу
  • Обязательное прохождение: cargo fmt + cargo clippy --all-targets (ноль ошибок) + cargo test
  • Запрещено #[allow(dead_code)] — мёртвый код удаляется, не прячется
  • unsafe запрещён в нашем коде (сгенерированный Slint-код — исключение, его не трогаем)
  • Без пустышек — модуль создаётся только с рабочей реализацией
  • Каждый этап компилируется — перед переходом к следующему

Сделано

  • Каркас: main.rs + api/ (health check в фоне)
  • Окно логина (Slint): логин/пароль/статус
  • Rust 2024 edition, актуальные версии пакетов
  • Фоновая проверка /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