v0.6.0-rc.1
Pre-releaseSummary
This release candidate contains every change merged into develop since
v0.5.0: Linux terminal shortcuts, a native macOS application shortcut,
Modrinth modpack installation, safe Minecraft version migration, and several
interactive UI and reliability fixes.
Desktop and terminal shortcuts
Linux terminal shortcut (#16)
-
The installer detects supported terminal emulators and lets the user choose
where Elo should open. -
Creates an installer-owned desktop application entry under
${XDG_DATA_HOME:-$HOME/.local/share}/applications. -
Adds a branded Elo shortcut icon.
-
Supports Warp, Kitty, GNOME Terminal, Console, Konsole, Xfce Terminal, MATE
Terminal, Tilix, WezTerm, Alacritty, foot, QTerminal, LXTerminal, XTerm, and
compatible custom executables. -
Supports direct,
--, and-ecustom terminal invocation modes. -
Uses Warp's launch-configuration URI when Warp is selected.
-
Adds installer options for unattended or repeatable setup:
--terminal <command> --configure-shortcut --no-shortcut
-
Persists shortcut configuration in the installation manifest.
-
Reinstall and update flows can reconfigure the selected terminal.
-
Self-uninstall removes only shortcuts carrying Elo ownership markers.
Native macOS shortcut (#17)
- Creates an installer-managed
Elo.appbundle under~/Applications. - Uses Apple Terminal by default.
- Includes the executable wrapper,
Info.plist, ownership marker, and branded
application icon. - Supports a configurable applications directory through
ELO_APPLICATIONS_DIR. - Preserves the same safe reinstall, update, and uninstall ownership rules used
by Linux shortcuts.
Modrinth modpack support
Added in #18.
Import local .mrpack files
elo instances import potato-edition "./Potato Edition.mrpack"- Imports Modrinth format v1 archives as new Elo instances.
- Validates archive structure, duplicate/root index entries, and every archive
and index path before extraction. - Rejects absolute paths, traversal, unsafe separators, invalid managed paths,
and unsupported archive layouts. - Accepts only documented HTTPS download hosts.
- Verifies declared file sizes and SHA-512 hashes.
- Installs supported client files and optional client files.
- Skips server-only files and server overrides.
- Applies
overridesfollowed byclient-overridesinside Elo-managed paths. - Reports and skips override paths that Elo cannot activate safely.
- Records Minecraft version, loader, pack name/version/source, addon metadata,
hashes, and required dependency relationships. - Publishes the new instance only after validation and downloads complete.
- Never overwrites an existing instance or colliding file.
Install provider modpacks
elo addons install <instance> <modpack-id-or-slug>
elo addons install <instance> "./local-pack.mrpack"- Resolves Modrinth modpack projects by ID or slug.
- Downloads and verifies the selected
.mrpackbefore using the same safe
import pipeline as local archives. - Warns before installing into a non-empty instance.
- Adopts pack Minecraft/loader metadata when installing into an empty instance.
- Shows archive download, indexed-file download, verification, and override
progress.
Minecraft version migration
Added in #18.
elo instances version <name> <version> [--migrate] \
[--remove-incompatible] [--dry-run] [--yes]- Allows changing the Minecraft version of an existing instance.
- Classifies the change as an upgrade, downgrade, or opaque version change.
- Analyzes every managed addon and required dependency against the target
Minecraft version before confirmation. - Reports the following states:
keep: installed version already supports the target;update: compatible replacement is available;restore: managed file is missing but can be restored;unavailable: no compatible provider release was found;blocked: a required dependency cannot migrate safely;modified: file differs from its recorded SHA-512;collision: replacement filename already exists;unmanaged: local/provider data cannot be resolved;external: file is not registered with Elo.
- Supports analysis-only execution through
--dry-run. - Stages and SHA-512 verifies all compatible replacements before changing the
instance. - Optionally removes selected verified incompatible addons.
- Never automatically removes modified, colliding, or external files.
- Updates dependency registry edges after successful migration.
- Retains replaced files, the previous addon registry, and previous instance
metadata in a timestamped.elo-migrationsrecovery backup. - Allows changing metadata without migration while clearly warning that addon
files may no longer match the selected Minecraft version.
Interactive UI and reliability
Added or fixed in #18.
- Adds Gum flows for local modpack import, provider modpack installation, and
instance version changes. - Uses
gum pagerfor migration reports from large modpacks. - Uses searchable
gum filter --no-limitmulti-select for choosing
incompatible addons to remove. - Keeps long Modrinth/provider slugs complete instead of truncating or shifting
table columns. - Displays
No addons found.when a compatibility-filtered search is empty,
replacing Gum'sinvalid data providederror. - Renders progress glyphs safely across supported terminals.
- Expands tests for interactive delegation, empty results, long slugs, version
changes, migration backups, dependency analysis, and modified files.
Documentation and development rules
- Documents the new CLI, storage, runtime, architecture, testing, release, and
limitation contracts. - Requires behavior changes to update their owning module, user-facing docs or
CLI specification, and tests together. - Adds
.mrpackand migration scenarios to release validation.
Before upgrading
This is a release candidate. Back up important worlds and instances before
testing modpack installation or version migration.
Review migration plans carefully when they contain modified, blocked,
collision, unmanaged, or external entries. Elo preserves these files but
cannot guarantee compatibility with the selected Minecraft version.
Known limitations
- External addons are preserved but cannot yet be identified or migrated
automatically through provider file hashes. - Elo records a modpack's loader but does not install it.
.mrpackoverrides outside Elo-managed paths are reported and skipped.- Recovery data is retained under
.elo-migrations, but there is no
user-facing rollback command yet. - Modrinth remains the only supported addon provider.
- Concurrent-process locking and a transaction journal are not yet available.
Validation
bash -n install.sh elo.sh lib/*.sh tests/*.sh
./tests/test_elo.sh
./tests/test_provider.sh
./tests/test_mrpack.sh
./tests/test_install.sh
./tests/test_interactive.sh
## What's Changed
* feat(installer): add terminal shortcut setup by @3nderXP in https://github.com/3nderXP/elo/pull/16
* feat(installer): add macOS app shortcut by @3nderXP in https://github.com/3nderXP/elo/pull/17
* Feat: Manage modpack instance data and improve UI safety by @3nderXP in https://github.com/3nderXP/elo/pull/18
**Full Changelog**: https://github.com/3nderXP/elo/compare/v0.5.0...v0.6.0-rc.1