Skip to content

v1.1.2 — Refactor + Security Review

Choose a tag to compare

@ALLANOSAN ALLANOSAN released this 07 Jun 02:31
· 22 commits to main since this release

✨ v1.1.2 — Refactor + Security Review (Milestone Release)

159/159 testes JUnit 5 verde | Java 21 | 159 testes | 22 suites

Esta release marca o fim do arc de cleanup + hardening do MineLauncher. O launcher passou por refactor estrutural, 2 rounds de code review, e 1 security review completo — todos os achados endereçados.

🏗️ Refactor arquitetural

  • GameLauncher (608 LOC) quebrado em 4 classes focadas:
    • ProcessSpawner — spawn do processo do Minecraft
    • LibraryVerifier — download + verificação SHA1
    • NativesExtractor — extração de .so/.dll/.dylib
    • GameLauncher (slim) — orquestração
  • SettingsManager NPE fix — ordem de campos estáticos (GSON → ACCOUNTS_TYPE → INSTANCE) eliminava NPE no primeiro launch
  • CSS inline extraído para classes nomeadas em dark-theme.css
  • Linux ARM64 detection corrigido

🔍 Code review (17 achados endereçados)

  • Round 1 (10 achados): CRIT + HIGH + MEDIUM + LOW
  • Round 2 (7 achados): observability, test quality, legacy profile

🛡️ Security review (15/15 itens)

  • CRIT-1..7: todos endereçados (fail-closed encrypt, 5-level fallback HWID, refresh token, opt-in error reporter, sidecar markers, parallel mod updates, Unicode-aware sanitizeName)
  • HIGH-8..15: todos endereçados (HttpUrl.Builder, symlink defense, User-Agent interceptor, etc.)
  • INFO-1: BackupService.createSnapshot(String, File, File) agora sanitiza worldName contra path traversal e control chars

🔧 CI/CD

  • GitHub Actions (.github/workflows/ci.yml) agora bloqueia PRs com regressão de teste
  • Build em JDK 21 + cache Maven + upload de artifact

📊 Métricas

  • 159 testes JUnit 5 (22 suítes, 0 falhas, 0 erros, 0 skipped)
  • Java 21, JavaFX 21, Maven 3.9+
  • Cobertura: services, utils, launcher core, security helpers, controllers

📦 Commits desta release

4f41f77  docs: add CI + release + license + Java version badges to README
8462d2f  ci: enable test failure on PR (was continue-on-error from pre-JUnit era)
64753c0  fix: security-review INFO-1 — sanitize worldName in BackupService
a67185c  fix: code review on 655ae88 - observability, test quality, legacy profile
655ae88  fix: code review findings - security, correctness, tests
3f1df4c  feat: code review audit pass — security, auth, quality, tests
42e44a2  refactor: split GameLauncher into focused classes + fix SettingsManager NPE
5bb4713  refactor: audit pass — CSS classes, Linux arch detection, backup simplify

Como rodar: mvn clean package e execute o JAR em target/. Veja o README para instruções completas.