feat: add content discovery and managed updates - #31
Merged
Conversation
9 tasks
This was referenced Aug 4, 2026
Closed
objz
added a commit
that referenced
this pull request
Aug 8, 2026
feat: add content discovery and managed updates
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
summary
this adds provider-neutral content discovery and managed content directly to rmcl. select an instance, open
Mods,Resource Packs,Shaders, orDatapacks, and pressTabto switch between installed content and discovery.Modrinth remains the default provider. release builds can include the CurseForge key at build time, so CurseForge joins the same discovery flow without exposing an API-key setting. results are merged without duplicate projects, the preferred provider is used first, and
Tabswitches sources in version dialogs when both are available. discovery can also be limited to the preferred provider in the content settings.browsing and installing content
use
j/kto move,/to search, and[or]to jump between virtual pages while continuous scrolling and background loading remain active. pressEnterto open the provider project page andvto choose a compatible version from either the list or the page.installed mods, resource packs, shaders, and datapacks use the same version picker. the current version is marked and can be selected again to reinstall that item. required mod dependencies are resolved recursively before installation, shared dependencies are deduplicated, and every accepted file plus the content manifest is committed as one staged operation.
datapack installation adds the world selection step before the normal confirmation. installed datapacks are shown below their world and use their embedded icon and description when available, with provider metadata filling missing details.
updates
managed content receives cached background update checks that cover the complete manifest rather than only visible rows. when compatible updates are available, press
uin installedMods,Resource Packs, orShadersto review them together. open a world and pressuto update that world's datapacks. scan or dependency failures are collected into one conflict list, and the accepted set uses the same atomic staged installer.managed modpacks are also checked in the background. when a newer provider version is available, press
uon the selected instance to review the update. rmcl imports the target into a staging instance, preserves worlds, configs, options, existing overrides, and user-added content, then swaps it into place with rollback. collisions between user files and new pack-owned files are reviewed as keep or replace choices.press
von a downloaded modpack instance to open the provider version selector. choosing the installed version reinstalls the provider-owned files, while choosing another compatible version changes the pack version. both actions reuse the same staged refresh and rollback flow as updates and preserve user-owned data.modpack discovery
press
mfrom the instance area to browse modpacks in a floating discovery window. it reuses normal search, project pages, continuous scrolling, page jumps, provider switching, and version controls. choosing a version continues into the existing import summary. pressifor the direct file or URL import flow.managed content and migration
provider metadata and cached icons are added to locally scanned content when available while unmatched local files keep working normally. automatic dependency ownership is tracked so shared libraries remain installed and cleanup is offered only for projects categorized exclusively as libraries.
existing installations are moved to the managed layout on first start. the migration creates a backup and reports its location before rmcl continues.
roadmap
related issues
Ctrl+Backspace, dependency handling, bulk updates, and CurseForge supportlibcasrpanic is resolvedtesting
cargo test --locked --all-targetscargo clippy --locked --all-targets -- -D warningscargo insta test --check --unreferenced reject --all-targets