Commit graph

85 commits

Author SHA1 Message Date
Wyvest
3b885cdb0f
Improve modpack download resiliency, onboarding
Track and surface partial modpack download failures across core and frontend. Adds a PartialModpackInstall error and counts failed/attempted downloads in the mrpack flow, returning an error if some files failed. Frontend download pipeline now runs parallel downloads that return per-item results, reports/logs failures, and exposes retry/continue UI in onboarding.

Backend robustness improvements: deduplicate concurrent package inserts by reusing existing row on unique-hash constraint, detect hard-link collisions and verify hashes before skipping or erroring, and return meaningful errors when partial installs occur.

Other changes: propagate richer error context when stamping migrated cluster created_at, invalidate relevant queries after migration, make settings writes awaitable and update the query cache optimistically, add queryClient usage in version-migration hook, and various type/bindings updates to reflect the new PartialModpackInstall error. These changes improve reliability and UX during batch package installs and onboarding downloads.
2026-03-30 05:50:29 -04:00
Wyvest
445eca2775
Spice up onboarding 2026-03-30 03:25:51 -04:00
Wyvest
5cac13a54c
Add cluster migration stuff
Implement cluster content migration and local versions override. Adds a new IPC API (copy_cluster_content) and CopyClusterResult, plus copy_dir_all helper to recursively copy files. Introduces migrate_non_bundle_packages and migrate_bundles_to_cluster to map and install provider-managed packages for the target MC version and to translate/copy bundle overrides; files without a compatible provider version are copied as .disabled and returned to the caller. Prefer a local versions_override.json when loading the online manifest (useful for testing) and adapt MC version parsing/formatting for year-based majors. Frontend: update generated bindings/types, add MigrationModal UI and useVersionMigration hook, integrate the migration modal into the root and debug screens, and persist seen_versions in settings. Misc: propagate manifest/versions into several UI routes and adjust bundle/package handling accordingly.
2026-03-30 00:28:14 -04:00
Jacob
247d23083d
fix: Resource Packs Compatibility Check (#498)
Sometimes they are tagged as only supporting Vanilla what is true but
that causes issues when downloading into a fabric cluster. Since fabric
IS NOT vanilla they "don't work" thus won't install. This just skips
that check and downloads it anyways

Co-authored-by: Wyvest <wyvestbusiness@gmail.com>
2026-03-08 16:52:09 +09:00
Jacob
978732a8fa
feat: toasts customizability (#497)
* fix: Toasts always using the info icon

* feat: Toast Position Customizability

* feat: Toast duration customizability

* fix: send toast button

wide lol

* feat: toast auto close customizability

* fix: SettingNumber being bad
2026-03-08 16:50:50 +09:00
Jacob
adf9f4bd63
feat: debug page (#493)
* fix: discordRPC route sorting

It wasn't alphabetical and it was annoying me

* feat: debug page

* move stuff into hooks where they should be

* fix: building
2026-03-06 01:25:03 -05:00
Jacob
fb5da05ad9
feat: better debug (#486)
* fix: tauri os plugin not being fully loaded

* feat: debug keybind

Bound to `CTRL+SHIFT+D` (and `ALT+F12`) and copies the debug info to the
clipboard

* refactor: __root.tx

Clean up a lot of code and move them into there own files

* feat: os distro in debug

* refactor: get_full_debug_info_parsed

* feat: made by info in settings

Also made it so that you can click on it to copy debug info

* fix: warning in oneclient/desktop/lib.rs

* refactor: copyDebugInfo

Moved it to the backend to later be used

* feat: log out debug info when oneclient launches

* `inDev` -> `In Dev`

* feat: toggle debug logging

* fix rust compiler
2026-03-03 20:46:11 -05:00
Wyvest
aecfbad53a pass lint 2026-02-25 21:03:12 -05:00
Wyvest
e7bb7d6b70 Squashed commit of the following:
commit a782b683f30d127936115d0e31a70de1d8268694
Author: Wyvest <wyvestbusiness@gmail.com>
Date:   Wed Feb 25 20:56:05 2026 -0500

    remove debug logging

commit 640950728f480f1b8c7939a720124ea581c227af
Author: Wyvest <wyvestbusiness@gmail.com>
Date:   Wed Feb 25 14:40:03 2026 -0500

    add some ms account error parsing

commit 014e3ecb26d75934798592f5be8cfbb437c92263
Merge: 83a6a1e ecfb98b
Author: Wyvest <wyvestbusiness@gmail.com>
Date:   Wed Feb 25 13:34:16 2026 -0500

    Merge branch 'main' into account-logging

commit 83a6a1e233dd4f3a3de18aabf1c7beac268d1594
Author: Wyvest <wyvestbusiness@gmail.com>
Date:   Wed Feb 25 04:05:05 2026 -0500

    add a lot of debug logging for accounts
2026-02-25 20:56:21 -05:00
Wyvest
c515d00da1 lint 2026-02-25 08:14:57 -05:00
Wyvest
d6aba6ab45 search for mods 2026-02-25 06:20:39 -05:00
Wyvest
a3d193fb4b fix strange freezes 2026-02-24 04:11:50 -05:00
Wyvest
87cb86943c Add bundle update checking/apply and API
Introduce full bundle update management: adds bundle_updates module with checking, apply flow, per-cluster locking, subscription inference, and apply helpers for additions/updates/removals (plus unit and e2e test scaffold). Exposes new IPC/API methods (download_package_from_bundle, update_bundle_packages, is_bundle_syncing) and integrates bundle tracking in desktop commands. Adds bundle DAO/entity and migrations to support bundle_packages and bundle_overrides, updates related package/DAO/modpack code, and minor frontend bindings/components/hooks to surface the new functionality. Also adds sea-orm as a dev-dependency for the desktop crate.

Co-Authored-By: Jacob <contact@kath.lol>
2026-02-23 22:36:24 -05:00
Wyvest
64b3ec5f90 Squashed commit of the following:
commit 9d138882dec56d9f823a22dd2284b0f264a6b35a
Author: Wyvest <wyvestbusiness@gmail.com>
Date:   Mon Feb 23 17:14:58 2026 -0500

    Watch cluster dirs, toggle & custom-bundle support

    Enable filesystem watches and add support for directory-based packages, toggleable packages, and custom bundles.

    Highlights:
    - Enable tauri-plugin-fs "watch" feature and add fs:allow-watch capability.
    - Frontend: add useAllClusterDirWatch hook to watch cluster folders and call bindings.core.syncCluster on changes; add useCustomBundle to synthesize a "[Custom]" bundle for installed-but-unbundled packages and surface it in mods/datapacks/resource-packs/shaders routes via ModList/ModCard changes.
    - ModCard/ModList: introduce toggle mode (useToggleMode) to treat some bundles as toggleable; implement UI toggle behavior and skip interactivity for directory-based bundles.
    - Bindings: expose syncCluster and togglePackage in bindings.gen for IPC usage.
    - Backend: extend sync_cluster to detect directories, register directory-based packages as local, and reconcile/unlink DB links for files removed from disk; support removing directories when unlinking packages.
    - Backend API: add toggle_package to rename package files (.disabled toggling), update central store path, and return the new enabled state; add Tauri commands for sync_cluster and toggle_package.

    Reason: allow resourcepacks/shaders/datapacks stored as directories to be recognized as local packages, provide automatic sync on filesystem changes, and let users enable/disable packages by toggling their filenames.

commit 1b100f7ed2242d21f3fbb6229745cddbd3199db7
Merge: 4ea4216 6a2352c
Author: Wyvest <wyvestbusiness@gmail.com>
Date:   Mon Feb 23 06:30:25 2026 -0500

    Merge branch 'oneclient/main' into bruhhh

commit 4ea42169ad430bc8b127f829c528c258f49b5a3a
Author: Wyvest <wyvestbusiness@gmail.com>
Date:   Wed Dec 31 03:48:13 2025 +0900

    Fix external mod tracking

commit cb456f4f6d50165d05091ae65c9611ebf956df07
Merge: 8628380 18c37f8
Author: Wyvest <wyvestbusiness@gmail.com>
Date:   Wed Dec 31 01:48:00 2025 +0900

    Merge branch 'oneclient/main' into bruhhh

commit 86283800ab265361540f4cf20e9a843cb2c4f5f0
Author: Wyvest <wyvestbusiness@gmail.com>
Date:   Sun Dec 28 18:19:57 2025 +0900

    h
2026-02-23 17:15:26 -05:00
Wyvest
6a2352c5dd Add support for resource packs + shaders + datapacks 2026-02-23 06:30:01 -05:00
Wyvest
fe0b1eed06 Extract bundle overrides before downloading mods 2026-02-23 06:10:46 -05:00
Wyvest
e745c75cc8 Fix overrides not being downloaded 2026-02-23 05:56:01 -05:00
Jacob
f1317a4ad1
fix: remove account popup spacing (#477)
Closes: https://github.com/Polyfrost/OneLauncher/issues/468
2026-01-11 08:06:31 -05:00
Jacob
29adbbc541
feat(OneClient-SettingsRow): optional settings icon (#475)
* feat(OneClient-SettingsRow): optional settings icon

* fix: building
2026-01-11 08:04:50 -05:00
Jacob
a513b62b0b
update shadow rs (#473) 2026-01-10 09:25:18 -05:00
Jacob
8e2dce10f7 fix(OneClient): Eslint 2025-12-29 13:44:06 +08:00
Wyvest
f8771fb70c fix stupid import 2025-12-27 23:40:25 +09:00
Wyvest
bde1252ea3 Make back button always go to home page
Closes #441
2025-12-27 21:53:52 +09:00
Wyvest
a2329b59a5 Fix cluster being stuck on downloading 2025-12-27 02:21:15 +09:00
Wyvest
14f9256a61 Revert "Rip out auto-downloading deps"
This reverts commit ba0ccdbb11.
2025-12-26 00:29:50 +09:00
Wyvest
bcb2bd94af add rate limit check specifically for modrinth 2025-12-25 23:52:37 +09:00
Wyvest
f8b307d005 add concurrency request limits 2025-12-25 22:49:25 +09:00
Wyvest
403a9f4be8 fix mod cards, removing mods 2025-12-25 21:18:07 +09:00
Wyvest
6dc99149fb fix parallel download check being broken 2025-12-25 17:42:41 +09:00
Wyvest
ba0ccdbb11 Rip out auto-downloading deps
lol
2025-12-25 17:34:47 +09:00
Jacob
83e2892633
fix imports (#430) 2025-12-23 01:37:04 +09:00
Jacob
2fb9f9ceb9
chore: update react (#429) 2025-12-23 01:19:54 +09:00
Jacob
d5a5bd7f05
refactor/cleanup (#426) 2025-12-12 07:44:54 -05:00
Jacob
e1f8dac5a1
feat(oneclient): Debug Info (#418) 2025-12-04 02:54:23 -05:00
Jacob
d7c644f15e
fix(oneclient-mod-downloading): Not checking for no dependencies (#417) 2025-12-03 12:11:11 -05:00
Jacob
d7c345b24a
feat: mods page (#413) 2025-12-03 11:02:10 -05:00
LynithDev
063e9f8837 fix: debounced payloads to prevent excessive payload freezes 2025-11-15 21:02:30 +01:00
Jacob
a4d07d3fa3
fix: OneClient Onboarding Stepper (#409) 2025-11-15 02:00:44 -05:00
Jacob
6c97a914c2
fix: OneClient Building (#406) 2025-11-13 02:37:20 -05:00
Jacob
23b9e9a9c8
fix: oneclient building (#400)
* fix: oneclient building

* fix: oneclient linux compile

* fix: oneclient macos intel building
2025-10-21 04:43:59 -04:00
Jacob
fc36727198
feat: copy link button (#399) 2025-10-17 10:37:36 -04:00
Jacob
387630537d
Fix/mini accounts edit (#384)
* fix: mini accounts skin manager

Fix opening the skin manager by moving it to the new logic
Put all this login into an component so this shouldn't happen again

* fix: formatting
2025-10-09 00:39:20 -04:00
Jacob
dc865c970f
fix: oneclient no account popup (#383) 2025-10-08 10:27:42 -04:00
Szedann
aca92e4910 feat: cleaner stepper 2025-10-04 16:50:35 +02:00
Jacob
59e7cde8df
feat: oneclient no account popup (#381)
* feat: oneclient no account popup

Prompts the user for a login when they don't have an account added and
are trying to start the game

* fix: formatting

* fix: account popup text color
2025-10-04 00:44:17 -04:00
Jacob
b610c1caac
fix: eslint (#378)
* fix: eslint script

closes #345

* format: eslint oneclient

* fix eslint script again

:pleading:
2025-10-02 08:36:42 -04:00
Jacob
6ef5e6354e
fix: oneclient building (#377)
Fixes a bunch of ts errors that stop it from building. Their are still
more but I cannot fix them currently
2025-10-02 00:48:13 -04:00
Jacob
0e12968b9c
feat: oneclient account skin manager (#373)
* feat: oneclient account skin manager

* feat: oneclient account skin manager import

* feat: oneclient account skin manager improt from url

* feat: oneclient accoutn skin manager animations

* feat: oneclient account skin manager export skin

* feat: oneclient account skin manager skin history

* feat: oneclient mini accounts edit button

* feat: oneclient account skin manager saving skins

* change order of mini account buttons

* feat: oneclient account skin manager elytra support

* fix: oneclient account skin manager default rotate

See https://github.com/bs-community/skinview3d/issues/198 for where fix
came from

Co-authored-by: undefined303 <undefined303@qq.com>
Co-authored-by: Zickles <zicklesistaken@gmail.com>

* feat: oneclient account skin manager change cape

* feat: oneclient account skin manager import from username

---------

Co-authored-by: undefined303 <undefined303@qq.com>
Co-authored-by: Zickles <zicklesistaken@gmail.com>
2025-10-01 13:31:42 -04:00
Jacob
c2ad51017b
feat: oneclient mini accounts delete (#376) 2025-09-29 00:32:53 -04:00
LynithDev
96c0ca4d5a fix: account popup not refetching the default user 2025-09-27 10:19:35 +02:00