* fix: resolve cross-platform EPERM permissions errors
modManager.js:
- Switch from hardcoded 'junction' to dynamic symlink type based on OS (fixing Linux EPERM).
- Add retry logic for directory removal to handle file locking race conditions.
- Improve broken symlink detection during profile sync.
gameManager.js:
- Implement retry loop (3 attempts) for game directory removal in updateGameFiles to prevent EBUSY/EPERM errors on Windows.
paths.js:
- Prevent fs.mkdirSync failure in getModsPath by pre-checking for broken symbolic links.
* fix: missing pacman builds
* prepare release for 2.1.1
minor fix for EPERM error permission
* Update README.md Windows Prequisites for ARM64 builds
* fix: remove broken symlink after detected
* fix: add pathexists for paths.js to check symlink
* fix: isbrokenlink should be true to remove the symlink
- Introduce DualAuthPatcher with support for hybrid authentication
- Update default auth domain to `auth.sanasol.ws`
- Integrate Java detection and bundled JRE handling for patcher execution
- Add server patch flag for avoiding redundant patching
- Automate DualAuthPatcher setup: download, compile, and execute with dependencies
- Enhance patching logic for extended logging and modularity
* update main branch to release/v2.0.2b (#86)
* add more linux pkgs, create auto-release and pre-release feature for Github Actions
* removed package-lock from gitignore
* update .gitignore for local build
* add package-lock.json to maintain stability development
* update version to 2.0.2b also add deps for rpm and arch
* update 2.0.2b: add arm64 support, product and executable name, maintainers; remove snap;
* update 2.0.2b: add latest.yml for win & linux, arm64 support; remove snap
* fix release build naming
* Prepare release v2.0.2b
* feat: add 'Close launcher on game start' option and improve app termination behavior
- Added 'Close launcher on game start' setting in GUI and backend.
- Implemented automatic app quit after game launch if setting is enabled.
- Added Cmd+Q (Mac) and Ctrl+Q/Alt+F4 (Win/Linux) shortcuts to quit the app.
- Updated 'window-close' handler to fully quit the app instead of just closing the window.
- Added i18n support for the new setting in English, Spanish, and Portuguese.
---------
Co-authored-by: Fazri Gading <fazrigading@gmail.com>
Co-authored-by: Arnav Singh <hi.arnavsingh3@gmail.com>
* feat: Add Repair Game functionality including UserData backup and cache clearing
* feat: Add In-App Logs Viewer and Logs Folder shortcut
* feat: Add Open Logs feature
* disable dev tools
* Fix Settings UI
* Implement custom mod loading, autoimport, auto repair
* Fixed Custom Mod loading issues and merge issues
* feat: Externalize sensitive API keys and Discord client ID into environment variables using dotenv.
* feat(mods): add profile-based mod management and auto-repair
* - Implemented i18n.
- Updated UI elements to use localized strings for various messages and confirmations.
- Added language selection functionality in settings with appropriate event handling.
- Created English localization file with translations for all new strings.
- Updated backend to save and load user-selected language preferences.
* Add Spanish localization for the GUI
* Add Portuguese (Brazil) localization for the GUI
* update main branch to release/v2.0.2b (#86)
* add more linux pkgs, create auto-release and pre-release feature for Github Actions
* removed package-lock from gitignore
* update .gitignore for local build
* add package-lock.json to maintain stability development
* update version to 2.0.2b also add deps for rpm and arch
* update 2.0.2b: add arm64 support, product and executable name, maintainers; remove snap;
* update 2.0.2b: add latest.yml for win & linux, arm64 support; remove snap
* fix release build naming
* Prepare release v2.0.2b
* Update localization for game repair and GPU settings
Added new localization entries for game repair and GPU preferences.
* Update spanish localization for game repair and GPU settings
* Update portuguese (brazil) for game repair and GPU settings
* Update localization for system logs in English, Spanish, and Portuguese
---------
Co-authored-by: Fazri Gading <fazrigading@gmail.com>
* modernized UI for GPU Preference option
* feat: auto-detect dedicated GPU on hybrid laptops (iGPU+dGPU)
* feat: detailed GPU info in auto-detection feature on startup
* feat: add GPU options for launcher
- Add GPU preference setting (Auto/Integrated/Dedicated)
- Implement Linux GPU selection with DRI_PRIME and NVIDIA env vars
- Add GPU detection using Electron's app.getGPUInfo()
- Update settings UI with GPU preference dropdown
- Integrate GPU preference into game launch process
* feat: auto-detect dedicated GPU on hybrid laptops (iGPU+dGPU)
* added fallbacks to and option to use integrated GPU.
* add package-lock and fix deps version
* changed 'Nvidia' string to 'NVIDIA'
* fix: selecting `dedicated` option while using nvidia GPU did not set its specific env variables
* remove unused `CONFIG_FILE` variable on launcher core modules
* fix: duplicated save-load gpu detection functions
* move game option settings to the top, while custom java to the bottom
* fix: settings-header margin-bottom from 3rem to 1rem and supress line-clamp warning
Added a full profile system and fixed a few critical mod loading issues.
What changed
Profiles — Implemented proper profile management (create, switch, delete). Each profile now has its own isolated mod list.
Mod Isolation — Fixed ModManager so mods are strictly scoped to the active profile. Browsing and installing only affects the selected profile.
Critical Fix — Fixed a path bug where mods were being saved to ~/AppData/Local on macOS (Windows path) instead of ~/Library/Application Support. Mods now save to the correct location and load correctly in-game.
Stability — Added an auto-sync step before every launch to make sure the physical mods folder always matches the active profile.
UI — Added a profile selector dropdown and a profile management modal.