Skip to content

[WIP] Restructure docs into manual/development and add implementation docs#94

Draft
NtskwK wants to merge 8 commits intoHydroRoll-Team:mainfrom
NtskwK:refactor/docs
Draft

[WIP] Restructure docs into manual/development and add implementation docs#94
NtskwK wants to merge 8 commits intoHydroRoll-Team:mainfrom
NtskwK:refactor/docs

Conversation

@NtskwK
Copy link
Member

@NtskwK NtskwK commented Feb 10, 2026

Summary by Sourcery

Refine user-facing documentation around mod loaders, authentication, and Java management, introduce detailed internal implementation docs, and adjust docs/home page styling for a more consistent visual presentation.

Enhancements:

  • Customized docs MDX Card rendering and home page feature tiles/buttons with updated border and hover styles for improved visual emphasis on key actions and content blocks.

Documentation:

  • Simplified feature docs for mod loaders, authentication, and Java runtime to be more conceptual and link to technical implementation details.
  • Added new English and Chinese internal implementation pages documenting core architecture, flows, and APIs for DropOut.
  • Clarified best-practice sections and future-plans content to better separate player guidance from developer-oriented information.

@vercel
Copy link

vercel bot commented Feb 10, 2026

@NtskwK is attempting to deploy a commit to the retrofor Team on Vercel.

A member of the Team first needs to authorize it.

@sourcery-ai
Copy link
Contributor

sourcery-ai bot commented Feb 10, 2026

Reviewer's Guide

Refactors feature documentation to be more user-focused by removing low-level code snippets and linking to newly added technical implementation pages, updates docs UI card styling, and introduces detailed Internal Implementation docs (English and Chinese) for core systems like authentication, Java management, mod loaders, and event architecture.

Sequence diagram for Forge installation via official installer

sequenceDiagram
    actor User
    participant Frontend as Frontend_UI
    participant Backend as Tauri_Backend
    participant ForgeMaven as Forge_Maven_Repo
    participant Java as Local_Java_Runtime

    User->>Frontend: choose_install_forge(version)
    Frontend->>Backend: invoke install_forge(minecraft_version, forge_version)

    Backend->>ForgeMaven: resolve_installer_coordinates
    ForgeMaven-->>Backend: installer_url
    Backend->>ForgeMaven: download_installer(installer_url)
    ForgeMaven-->>Backend: forge_installer_jar
    Backend-->>Frontend: mod_loader_progress downloading

    Backend->>Java: spawn_process
    Java-->>Backend: process_started
    Backend->>Java: run_installer_jar_with_installClient(game_dir)
    Backend-->>Frontend: mod_loader_progress installing

    Java-->>Backend: writes_version_json_and_libraries
    Backend->>Backend: parse_generated_version_json
    Backend->>Backend: update_internal_version_index
    Backend-->>Frontend: mod_loader_progress processing

    Backend-->>Frontend: mod_loader_progress complete
    Frontend-->>User: show_forge_installed_success(version)
Loading

Entity relationship diagram for accounts and Java catalog data

erDiagram
    AccountsStore {
        string active_account_uuid
    }

    Account {
        string uuid
        string type
        string username
        string access_token
        string refresh_token
        int expires_at
    }

    JavaCatalog {
        int cached_at
    }

    JavaRelease {
        int major_version
        string image_type
        string version
        string download_url
        string checksum
        int file_size
    }

    AccountsStore ||--o{ Account : contains
    JavaCatalog ||--o{ JavaRelease : includes
Loading

Updated class diagram for core state and version structures

classDiagram
    class AuthState {
        Account currentAccount
        bool isLoginModalOpen
        AuthState()
        void setCurrentAccount(Account account)
        void openLoginModal()
        void closeLoginModal()
    }

    class UIState {
        string activeView
        UIState()
        void setView(string view)
    }

    class Account {
        string uuid
        string type
        string username
        string accessToken
        string refreshToken
        int expiresAt
    }

    class JavaInstallation {
        string path
        string version
        int major
        bool is64Bit
        JavaInstallation(string path, string version, int major, bool is64Bit)
    }

    class JavaRelease {
        int majorVersion
        string imageType
        string version
        string downloadUrl
        string checksum
        int fileSize
    }

    class JavaCatalog {
        JavaRelease releases
        int cachedAt
        JavaCatalog()
        void addRelease(JavaRelease release)
        JavaRelease findBestRelease(int majorVersion, string imageType)
    }

    class GameVersion {
        string id
        string inheritsFrom
        string mainClass
        Library libraries
        string jvmArguments
        string gameArguments
        GameVersion()
    }

    class Library {
        string name
        string url
        Library(string name, string url)
    }

    class MavenCoordinate {
        string group
        string artifact
        string version
        string extension
        MavenCoordinate(string group, string artifact, string version, string extension)
        string toPath()
    }

    class VersionMerger {
        VersionMerger()
        GameVersion mergeVersions(GameVersion child, GameVersion parent)
    }

    class EventBus {
        EventBus()
        void emitLauncherLog(string message)
        void emitGameStdout(string line)
        void emitGameStderr(string line)
        void emitAuthProgress(string stage)
        void emitModLoaderProgress(string stage)
        void emitJavaDownloadProgress(int percent, int speed, int eta)
    }

    AuthState --> Account
    JavaCatalog --> JavaRelease
    GameVersion --> Library
    VersionMerger --> GameVersion
    MavenCoordinate --> Library
    EventBus --> AuthState
    EventBus --> UIState
Loading

File-Level Changes

Change Details Files
Simplify feature docs by replacing low-level examples with high-level explanations and cross-links to implementation docs.
  • Replace step-by-step Fabric and Forge loader explanations with concise descriptions and links to implementation anchors.
  • Condense library management sections for Fabric and Forge, emphasizing automatic resolution instead of explicit Maven snippets.
  • Summarize version inheritance behavior and DropOut’s merge responsibilities instead of showing raw JSON and code samples.
  • Replace explicit Tauri command and event examples for mod loaders, authentication, and Java with pointers to implementation API sections.
  • Shorten best-practice sections to focus on player guidance and defer creator/developer details to separate docs.
  • Clarify token refresh, offline UUID behavior, and account storage at a conceptual level without embedding code or JSON.
packages/docs/content/zh/features/mod-loaders.mdx
packages/docs/content/zh/features/authentication.mdx
packages/docs/content/zh/features/java.mdx
packages/docs/content/en/features/mod-loaders.mdx
Introduce comprehensive Internal Implementation documentation for core launcher systems in both English and Chinese.
  • Add English Internal Implementation page describing authentication flows, account storage, Java catalog and installation, version merging, Maven resolution, Forge installer integration, event bus, log desensitization, Tauri command patterns, and frontend state architecture.
  • Add Chinese counterpart of the Internal Implementation page covering the same topics for parity.
  • Create meta.json placeholders under en/zh development docs directories to register the new implementation docs in the docs system.
packages/docs/content/en/development/implementation.mdx
packages/docs/content/zh/development/implementation.mdx
packages/docs/content/en/development/meta.json
packages/docs/content/zh/development/meta.json
Adjust docs and home page UI styling to emphasize cards and feature elements.
  • Wrap the MDX Card component on the docs page to inject a blue-accented border and hover transition while preserving other props and allowing custom className.
  • Update the secondary CTA button on the home page hero to have a blue border for stronger visual emphasis.
  • Update feature grid cards on the home page to use blue-tinted borders with hover transitions for better affordance.
packages/docs/app/docs/page.tsx
packages/docs/app/routes/home.tsx

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@vercel
Copy link

vercel bot commented Feb 10, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
drop-out-docs Ready Ready Preview, Comment Feb 15, 2026 4:06pm

@HsiangNianian
Copy link
Member

@SourceryAI title

@sourcery-ai sourcery-ai bot changed the title docs: refactor documents Restructure docs into manual/development and add implementation docs Feb 15, 2026
@HsiangNianian HsiangNianian changed the title Restructure docs into manual/development and add implementation docs [WIP] Restructure docs into manual/development and add implementation docs Feb 15, 2026
@NtskwK
Copy link
Member Author

NtskwK commented Feb 15, 2026

cc @BegoniaHe

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants