OneLauncher-Cracked/docs/superpowers/plans/2026-10-10-update-to-2.8.0.md

5.5 KiB

OneLauncher-Cracked 2.8.0 Update Implementation Plan

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: Rebase and upgrade OneLauncher-Cracked onto upstream OneLauncher 2.8.0 (1d6ec598), preserving all offline authentication bypasses, the local Yggdrasil skin server with authlib-injector, Forgejo auto-updater, and custom skin changer UI.

Architecture: Port 37 cracked subsystem files onto the clean upstream 2.8.0 codebase. Maintain strict isolation for cracked authentication and skin server logic while adopting upstream's new multi-instance management, package manager filters, and Freya improvements.

Tech Stack: Rust 2024, Freya (Dioxus + Skia), Tokio, Reqwest, RSA PKCS#1v15, Authlib-Injector, Forgejo API v1.

Spec: Direct human instruction: "update to version 2.8.0".

Global Constraints

  • Target version: 2.8.0-c1.
  • Offline authentication must require 0 Microsoft accounts.
  • Local Yggdrasil skin server must eliminate multiplayer skin cloning via RSA-signed profile properties.
  • Auto-updater must target Forgejo API at https://git.oiupoyt.space/api/v1/repos/oiupoyt/OneLauncher-Cracked/releases/latest.
  • All workspace crates must pass tests and compilation without regressions.

Task 1: Project Metadata, Packaging & Workflows

Files:

  • Modify: Cargo.toml

  • Modify: README.md

  • Modify: .gitignore

  • Create: .forgejo/workflows/release.yml

  • Create: packages/oneclient_app/distribution/linux/oneclient_app.desktop

  • Step 1: Update Cargo.toml metadata and dev profile

  • Step 2: Update README.md with warning embed and Forgejo releases link

  • Step 3: Add .forgejo release workflow and desktop file

  • Step 4: Commit task 1


Task 2: Port Offline Authentication Bypass (oneclient_auth)

Files:

  • Modify: packages/oneclient_auth/src/service.rs

  • Modify: packages/oneclient_auth/src/store.rs

  • Modify: packages/oneclient_auth/tests/offline.rs

  • Step 1: In service.rs, remove OfflineRequiresMicrosoft check from account_for_launch

  • Step 2: In store.rs, allow offline accounts without Microsoft accounts and auto-select default user

  • Step 3: In tests/offline.rs, ensure tests assert offline launch succeeds without Microsoft

  • Step 4: Run cargo test -p oneclient_auth and verify all tests pass

  • Step 5: Commit task 2


Task 3: Port Path Helpers, Assets & Offline Skin Engine (oneclient_common & oneclient_core)

Files:

  • Modify: packages/oneclient_common/src/paths.rs

  • Modify: packages/oneclient_core/Cargo.toml

  • Copy assets: packages/oneclient_core/assets/authlib-injector.jar

  • Copy assets: packages/oneclient_core/assets/offlineskins-fabric.jar

  • Create: packages/oneclient_core/src/game/skin_server.rs

  • Modify: packages/oneclient_core/src/game/mod.rs

  • Modify: packages/oneclient_core/src/game/launch.rs

  • Step 1: Add skin paths and authlib-injector path to oneclient_common/src/paths.rs

  • Step 2: Copy embedded jar assets and add dependencies to oneclient_core/Cargo.toml

  • Step 3: Port skin_server.rs and register module in game/mod.rs

  • Step 4: In game/launch.rs, inject authlib-injector -javaagent, --userProperties, and offline skin synchronization

  • Step 5: Run cargo test -p oneclient_core and verify all tests pass

  • Step 6: Commit task 3


Task 4: Port UI Components, Skins Tab & Auto-Updater (oneclient_app)

Files:

  • Modify: packages/oneclient_app/src/constants.rs

  • Modify: packages/oneclient_app/src/updater.rs

  • Modify: packages/oneclient_app/src/components/avatar.rs

  • Modify: packages/oneclient_app/src/components/player_model.rs

  • Modify: packages/oneclient_app/src/components/navbar/app_navbar.rs

  • Create: packages/oneclient_app/src/view/app/skins.rs

  • Create: packages/oneclient_app/src/hooks/queries/skin.rs

  • Modify: packages/oneclient_app/src/hooks/queries/mod.rs

  • Modify: packages/oneclient_app/src/hooks/mod.rs

  • Modify: packages/oneclient_app/src/view/onboarding/account.rs

  • Modify: packages/oneclient_app/src/view/app/settings/accounts.rs

  • Modify: packages/oneclient_app/src/layout/root_layout.rs

  • Modify: packages/oneclient_app/src/routes.rs

  • Step 1: Update constants.rs and updater.rs with Forgejo releases endpoint and CrackedVersion semver parser

  • Step 2: Port skin queries in hooks/queries/skin.rs and wire into hooks/mod.rs

  • Step 3: Port skins.rs view and register route in routes.rs and root_layout.rs

  • Step 4: Add Skins pill button to navbar_center in app_navbar.rs

  • Step 5: Port avatar persistent cache in avatar.rs and player model custom skin loading in player_model.rs

  • Step 6: Port offline account inputs in onboarding (onboarding/account.rs) and settings (settings/accounts.rs)

  • Step 7: Run cargo test -p oneclient_app --lib and verify all tests pass

  • Step 8: Commit task 4


Task 5: Verification, Packaging & Deployment

  • Step 1: Run full workspace cargo check --workspace
  • Step 2: Build release binary locally
  • Step 3: Package .AppImage, .deb, and .tar.gz for Linux
  • Step 4: Merge update/2.8.0 into main
  • Step 5: Tag v2.8.0-c1 and push branch and tag to Forgejo and GitHub
  • Step 6: Publish Forgejo Release v2.8.0-c1 with all binaries attached