Skip to content

feat: add content discovery and managed updates - #31

Merged
objz merged 100 commits into
masterfrom
feature/add-modrinth-discovery
Aug 8, 2026
Merged

feat: add content discovery and managed updates#31
objz merged 100 commits into
masterfrom
feature/add-modrinth-discovery

Conversation

@objz

@objz objz commented Jul 26, 2026

Copy link
Copy Markdown
Owner

summary

this adds provider-neutral content discovery and managed content directly to rmcl. select an instance, open Mods, Resource Packs, Shaders, or Datapacks, and press Tab to 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 Tab switches 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/k to move, / to search, and [ or ] to jump between virtual pages while continuous scrolling and background loading remain active. press Enter to open the provider project page and v to 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 u in installed Mods, Resource Packs, or Shaders to review them together. open a world and press u to 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 u on 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 v on 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 m from 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. press i for 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

  • managed mods, resource packs, shaders, and per-world datapacks
  • Modrinth and built-in CurseForge discovery
  • modpack browsing and import
  • project pages, search, continuous scrolling, and page jumping
  • provider-aware installation, version changes, and current-version reinstall
  • automatic required mod dependencies and safe orphan cleanup
  • cached update detection and atomic bulk updates
  • rollback-safe managed modpack updates
  • explicit modpack reinstall and arbitrary version controls
  • settings tab rework in settings tab rework #29

related issues

testing

  • cargo test --locked --all-targets
  • cargo clippy --locked --all-targets -- -D warnings
  • cargo insta test --check --unreferenced reject --all-targets

@objz objz linked an issue Jul 26, 2026 that may be closed by this pull request
@objz objz linked an issue Aug 4, 2026 that may be closed by this pull request
9 tasks
@objz objz changed the title feat: add content discovery and managed content feat: add content discovery and managed updates Aug 4, 2026
@objz
objz merged commit a4110f0 into master Aug 8, 2026
12 checks passed
@objz
objz deleted the feature/add-modrinth-discovery branch August 8, 2026 14:05
objz added a commit that referenced this pull request Aug 8, 2026
feat: add content discovery and managed updates
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.

reinstall instances update checking for mods, resource packs, shaders, and other add modrinth discovery to content tabs

1 participant