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, removeOfflineRequiresMicrosoftcheck fromaccount_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_authand 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.rsand register module ingame/mod.rs -
Step 4: In
game/launch.rs, inject authlib-injector-javaagent,--userProperties, and offline skin synchronization -
Step 5: Run
cargo test -p oneclient_coreand 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.rsandupdater.rswith Forgejo releases endpoint andCrackedVersionsemver parser -
Step 2: Port skin queries in
hooks/queries/skin.rsand wire intohooks/mod.rs -
Step 3: Port
skins.rsview and register route inroutes.rsandroot_layout.rs -
Step 4: Add Skins pill button to
navbar_centerinapp_navbar.rs -
Step 5: Port avatar persistent cache in
avatar.rsand player model custom skin loading inplayer_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 --liband 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.gzfor Linux - Step 4: Merge
update/2.8.0intomain - Step 5: Tag
v2.8.0-c1and push branch and tag to Forgejo and GitHub - Step 6: Publish Forgejo Release
v2.8.0-c1with all binaries attached