feat: instances v2 (#6431)

* feat: base of instances v2

* feat: use old profiles with compat layer

* prototype: instances v2

* fix: install_from using profile

* fix: skins migration fix

* fix: frontend still using profile path

* fix: add update proj multiselect guard

* fix: cargo fmt

* fix: content missing fields

* feat: break up app-lib/api/instance.rs

* fix: check_content_updates mismatch

* fix: updater modal cleanup w/new structure

* feat: better update all handling

* fix: remove preview_update_all

* fix: feedback on bulk update + lint

* fix: rem transitions

* fix: change to jsonb

* feat: app db backup after update

* fix: lint

* fix: sqlx prepare + use sqlx macros

* fix: lint

* fix: bugs

* feat: defuck the installing process up

* fix: bug of hell

* fix: shear

* fix: fmt

* fix: install progress spacing + change mc/content/overrides to bytes

* fix: lint

* fix: prepr

* fix: navtabs anim not working in app

* fix: worlds.vue improvements + browse page fixes

* feat: optimise queries + adapter fns

* fix: lint

* fix: lint

* feat: shared modrinth-content-management crate (#6469)

* feat: disable warnings setting

* feat: add instances shortcuts (#6329)

* Add modrinth://launch deep link to start a profile

Support external profile launching via modrinth://launch/{profile_path} for integrations such as Stream Deck.

* Change route to /launch/profile/{id} for future extensibility

* fix: ensure profile path is url decoded

* fix: URL-decode profile path from deep link

* fix: use urlencoding crate for URL decoding

* feat: implement app instance shortcuts

* feat: change windows shortcut creation to use windows api instead

* feat: implement creating a shortcut launching world/server

* format

* fmt

* fix multiline inline tables

* pnpm prepr

* feat: move create shortcut to last item

* refactor: split up shortcuts.rs for individual platforms

* refactor: turn profile launch url into url type

* use string literal and add safety comment

* pt2

* refactor: rename anything that's profile into instance

* update mac shortcut

---------

Co-authored-by: DJCheesusReal <134006619+DJCheesusReal@users.noreply.github.com>

---------

Co-authored-by: Truman Gao <106889354+tdgao@users.noreply.github.com>
Co-authored-by: DJCheesusReal <134006619+DJCheesusReal@users.noreply.github.com>
This commit is contained in:
Calum H.
2026-06-25 21:19:29 +00:00
committed by GitHub
co-authored by DJCheesusReal Truman Gao
parent ef4044534f
commit 734720e11e
353 changed files with 24745 additions and 9771 deletions
+63 -47
View File
@@ -142,9 +142,22 @@ fn main() {
),
)
.plugin(
"pack",
"install",
InlinedPlugin::new()
.commands(&["pack_install", "pack_get_profile_from_pack"])
.commands(&[
"install_get_modpack_preview",
"install_create_instance",
"install_create_modpack_instance",
"install_import_instance",
"install_duplicate_instance",
"install_existing_instance",
"install_pack_to_existing_instance",
"install_job_list",
"install_job_get",
"install_job_retry",
"install_job_cancel",
"install_job_dismiss",
])
.default_permission(
DefaultPermissionRule::AllowAllCommands,
),
@@ -154,7 +167,7 @@ fn main() {
InlinedPlugin::new()
.commands(&[
"process_get_all",
"process_get_by_profile_path",
"process_get_by_instance_id",
"process_kill",
"process_wait_for",
])
@@ -163,52 +176,46 @@ fn main() {
),
)
.plugin(
"profile",
"instance",
InlinedPlugin::new()
.commands(&[
"profile_remove",
"profile_get",
"profile_get_many",
"profile_get_projects",
"profile_get_installed_project_ids",
"profile_get_content_items",
"profile_get_dependencies_as_content_items",
"profile_get_linked_modpack_info",
"profile_get_linked_modpack_content",
"profile_get_optimal_jre_key",
"profile_get_full_path",
"profile_get_mod_full_path",
"profile_list",
"profile_check_installed",
"profile_check_installed_batch",
"profile_install",
"profile_update_all",
"profile_update_project",
"profile_add_project_from_version",
"profile_add_project_from_path",
"profile_toggle_disable_project",
"profile_remove_project",
"profile_update_managed_modrinth_version",
"profile_repair_managed_modrinth",
"profile_run",
"profile_kill",
"profile_edit",
"profile_edit_icon",
"profile_export_mrpack",
"profile_get_pack_export_candidates",
"instance_remove",
"instance_get",
"instance_get_many",
"instance_get_projects",
"instance_get_installed_project_ids",
"instance_get_install_candidates",
"instance_content",
"instance_get_content_items",
"instance_get_dependencies_as_content_items",
"instance_get_linked_modpack_info",
"instance_get_linked_modpack_content",
"instance_get_optimal_jre_key",
"instance_get_full_path",
"instance_get_mod_full_path",
"instance_list",
"instance_check_installed",
"instance_update_all",
"instance_update_project",
"instance_add_project_from_version",
"instance_install_project_with_dependencies",
"instance_switch_project_version_with_dependencies",
"instance_add_project_from_path",
"instance_toggle_disable_project",
"instance_remove_project",
"instance_update_managed_modrinth_version",
"instance_repair_managed_modrinth",
"instance_run",
"instance_kill",
"instance_edit",
"instance_edit_icon",
"instance_export_mrpack",
"instance_get_pack_export_candidates",
])
.default_permission(
DefaultPermissionRule::AllowAllCommands,
),
)
.plugin(
"profile-create",
InlinedPlugin::new()
.commands(&["profile_create", "profile_duplicate"])
.default_permission(
DefaultPermissionRule::AllowAllCommands,
),
)
.plugin(
"settings",
InlinedPlugin::new()
@@ -235,6 +242,14 @@ fn main() {
DefaultPermissionRule::AllowAllCommands,
),
)
.plugin(
"shortcuts",
InlinedPlugin::new()
.commands(&["create_instance_shortcut"])
.default_permission(
DefaultPermissionRule::AllowAllCommands,
),
)
.plugin(
"utils",
InlinedPlugin::new()
@@ -245,6 +260,7 @@ fn main() {
"highlight_in_folder",
"open_path",
"show_launcher_logs_folder",
"show_app_db_backups_folder",
"progress_bars_list",
"get_opening_command",
])
@@ -298,17 +314,17 @@ fn main() {
InlinedPlugin::new()
.commands(&[
"get_recent_worlds",
"get_profile_worlds",
"get_instance_worlds",
"get_singleplayer_world",
"set_world_display_status",
"rename_world",
"reset_world_icon",
"backup_world",
"delete_world",
"add_server_to_profile",
"edit_server_in_profile",
"remove_server_from_profile",
"get_profile_protocol_version",
"add_server_to_instance",
"edit_server_in_instance",
"remove_server_from_instance",
"get_instance_protocol_version",
"get_server_status",
"start_join_singleplayer_world",
"start_join_server",