Skip to content

Conversation

@sharrlotte
Copy link
Member

@sharrlotte sharrlotte commented Jan 28, 2026

Summary by CodeRabbit

  • New Features

    • Added a changelog feature displaying GitHub releases with pagination and installation options.
    • Added debug detail copying functionality for troubleshooting.
  • Documentation

    • Reorganized feature descriptions into new categories: Content Browser, Automation, Enhanced Communication, Visualizers & HUD, Multiplayer & Networking, and Quality of Life.
  • Localization

    • Added translation support for changelog and related UI elements.

✏️ Tip: You can customize this high-level summary in your review settings.

Add a new changelog dialog that fetches and displays releases from GitHub. Move the "Copy debug detail" functionality from the settings dialog to the new changelog dialog. Update localization files with new keys for changelog and errors. Minor formatting fix in PathfindingDisplay.
Update the mod.hjson description and README.md to reflect the current feature set, shifting focus from basic content sharing to advanced automation, communication tools, visualizers, and quality-of-life improvements. The description now accurately represents the mod's expanded capabilities.
@sharrlotte sharrlotte merged commit 486e528 into main Jan 28, 2026
2 checks passed
@coderabbitai
Copy link

coderabbitai bot commented Jan 28, 2026

Caution

Review failed

The pull request is closed.

Walkthrough

This PR introduces a new Changelog dialog UI component that fetches and displays paginated GitHub releases with installation capabilities. It adds localization support for English and Vietnamese, updates project documentation and mod metadata with restructured feature descriptions, replaces the debug-detail button in FeatureSettingDialog with a changelog button, and removes associated UI-tree utilities.

Changes

Cohort / File(s) Summary
Documentation & Metadata
README.md, mod.hjson
Restructured feature presentation into categorized sections (Content Browser, Automation, Enhanced Communication, Visualizers & HUD, Multiplayer & Networking, Quality of Life & Admin Tools) with updated installation instructions and minor wording adjustments.
Localization Keys
assets/bundles/bundle.properties, assets/bundles/bundle_vi.properties
Added 8 new changelog-related keys (changelog.title, error.fetch-releases, error.invalid-response, error.parse-failed, changelog.empty, install, feature.changelog, feature.copy-debug-detail) in English and Vietnamese.
Core Feature - Changelog UI
src/mindustrytool/ui/ChangelogDialog.java
New public class implementing paginated release browser with HTTP-based GitHub release fetching, JSON parsing, Markdown rendering, error handling (network/parsing failures), empty-state display, per-release install actions, and debug-detail clipboard utility.
Settings Dialog Update
src/mindustrytool/features/settings/FeatureSettingDialog.java
Replaced copy-debug-detail button with changelog button; removed associated private methods (getUiTree, flattenUiTree, flatten) and UiTree inner class; updated imports accordingly.
Minor Formatting
src/mindustrytool/features/display/pathfinding/PathfindingDisplay.java
Line-wrapped settingsContainer.check call for spawn point path drawing without functional or control flow changes.

Sequence Diagram

sequenceDiagram
    actor User
    participant ChangelogDialog
    participant GitHubAPI as GitHub API
    participant Parser as JSON Parser
    participant Renderer as Markdown Renderer
    participant UI as UI List
    participant Clipboard

    User->>ChangelogDialog: Open Dialog
    ChangelogDialog->>ChangelogDialog: fetchReleases()
    ChangelogDialog->>GitHubAPI: GET /repos/.../releases
    
    alt Success
        GitHubAPI-->>ChangelogDialog: JSON Response
        ChangelogDialog->>Parser: Parse Release Data
        Parser-->>ChangelogDialog: Parsed Releases
        ChangelogDialog->>ChangelogDialog: rebuildList()
        loop For Each Release
            ChangelogDialog->>Renderer: Render Markdown Body
            Renderer-->>ChangelogDialog: Rendered HTML
            ChangelogDialog->>UI: Add Release Item
        end
        UI-->>User: Display Releases
    else Error
        GitHubAPI-->>ChangelogDialog: Error/Invalid Response
        ChangelogDialog->>UI: Display Error Message
        UI-->>User: Show Error
    end
    
    User->>ChangelogDialog: Copy Debug Detail
    ChangelogDialog->>ChangelogDialog: Build UI Tree Data
    ChangelogDialog->>Clipboard: Place JSON Payload
    Clipboard-->>User: Clipboard Updated
Loading

Estimated Code Review Effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly Related PRs

  • Dev #91 — Modifies debug-detail and clipboard functionality in FeatureSettingDialog; this PR removes that feature entirely in favor of the new ChangelogDialog implementation.
  • Dev #128 — Refactors FeatureSettingDialog's feature card and button rendering; overlaps with this PR's button replacement logic.
  • Dev #80 — Introduces changelog and release-fetching UI surface; related to the same changelog feature implementation.

Poem

🐰 A changelog hops into view,
Fetching releases, crisp and new,
GitHub releases dance in a page,
With markdown-rendered heritage—
Install with ease, debug detail too!

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dev

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 86c25fa and 62ecbae.

📒 Files selected for processing (7)
  • README.md
  • assets/bundles/bundle.properties
  • assets/bundles/bundle_vi.properties
  • mod.hjson
  • src/mindustrytool/features/display/pathfinding/PathfindingDisplay.java
  • src/mindustrytool/features/settings/FeatureSettingDialog.java
  • src/mindustrytool/ui/ChangelogDialog.java

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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