| Commit message (Collapse) | Author | Age | Files | Lines |
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Update parse_java_version() to properly handle:
- Build metadata (strip '+' and everything after)
- Trailing garbage (strip '-' and everything after, e.g. -Ubuntu)
- Underscore version separators (1.8.0_411 -> 1.8.0.411)
This ensures Java versions are correctly parsed on all platforms:
- Old format: 1.8.0_411 (Java 8 update 411)
- New format: 21.0.3+13-Ubuntu (Java 21 with build metadata)
- Short format: 17.0.1 (Java 17 update 1).
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add find_root_version() function to walk the inheritance chain and find
the root vanilla Minecraft version from a modded version (Fabric/Forge).
This is useful for determining which vanilla version's client.jar should
be used when launching modded versions, as modded versions inherit from
vanilla versions but don't contain their own client.jar.
The function follows the inheritsFrom field recursively until reaching
a version without a parent (the root vanilla version).
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Complete the rule_matches function to properly evaluate:
- OS name (already working: osx/macos, linux, windows)
- Architecture (arch field): match against env::consts::ARCH
- OS version (version field): accept all versions for now (conservative)
This ensures that architecture-specific libraries (e.g. natives-arm64)
are correctly filtered based on the current platform.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replace Ordering::Relaxed with appropriate synchronization:
- Ordering::AcqRel for fetch_add operations that modify shared state
- Ordering::Acquire for loads that depend on other thread's writes
- Ordering::Release for stores that other threads may read
This ensures visibility of downloaded bytes and completed files across
concurrent download tasks without data races.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
Check if the Microsoft account token is expired before attempting to
launch the game. If expired, attempt to refresh using the refresh_token.
If refresh fails, return an error instructing the user to login again.
Also removed #[allow(dead_code)] from is_token_expired since it's
now actively used.
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Prevent race condition in duplicate_instance by copying the source
game directory BEFORE creating and saving the new instance metadata.
This ensures that if the copy fails, no orphaned metadata is created.
Also copy the icon_path from source instance to maintain visual consistency.
|
| | |
| |
| |
| |
| |
| |
| | |
The Forge installer may or may not create the version.json file
depending on the installer version. Check if the file exists after
running the installer before manually creating it to avoid overwriting
any installer-generated configuration.
|
| |/
|
|
|
|
|
|
|
|
| |
The fallback in the reqwest client builder was calling get_client()
recursively, which would cause a stack overflow if Client::builder()
failed. Now uses reqwest::Client::new() as the fallback.
Also fixed User-Agent to be platform-agnostic.
Reviewed-by: Claude Opus 4.5
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Replaced the existing image asset with a higher quality version to enhance the overall visual presentation of the project. This change ensures that the asset meets current design standards.
|
| |
|
|
| |
Updated the version number in both Cargo.toml and tauri.conf.json to reflect the new release version 0.1.26. This change ensures consistency across project configuration files.
|
| |
|
|
| |
Modified the .pre-commit-config.yaml file to include the `--manifest-path` argument for Rust hooks (fmt, cargo-check, clippy) and defined file patterns for Rust source files. This change enhances the configuration by ensuring that the hooks operate on the correct project files, improving the development workflow.
|
| | |
|
| |\ |
|
| | |
| |
| |
| | |
Modified the .pre-commit-config.yaml file to add a skip option for formatting, cargo-check, and clippy hooks. This change optimizes the pre-commit setup by allowing selective execution of hooks, enhancing the efficiency of the development workflow.
|
| | |
| |
| |
| | |
Modified the .pre-commit-config.yaml file to replace the Rust pre-commit repository and update the hooks for formatting and linting. This change enhances the configuration by using the latest version of the Rust pre-commit hooks and streamlining the setup for Rust projects.
|
| | |
| |
| |
| | |
Modified the .pre-commit-config.yaml file to add 'rust' to the system_language setting, ensuring that pre-commit hooks are properly configured for Rust projects. This change enhances the versatility of the pre-commit setup.
|
| | |
| |
| |
| | |
Modified the .pre-commit-config.yaml file to explicitly set the language for clippy checks to 'system', ensuring consistent behavior across different environments. This change enhances the clarity of the configuration.
|
| | |
| |
| |
| | |
Updated the GitHub Actions workflow to remove the 'all_files' option from the prek action, streamlining the process and ensuring that the action runs without additional parameters. This change enhances clarity and maintains the workflow's efficiency.
|
| | |
| |
| |
| |
| |
| | |
committing fixes
Updated the GitHub Actions workflow to include a step that checks for changes before committing auto-fixes. This ensures that commits are only made when there are actual changes, improving the efficiency of the workflow.
|
| | |
| |
| |
| | |
Enhanced the normalization logic for Java paths by ensuring that the search for "java.exe" in the PATH only occurs for relative paths or the name "java", excluding absolute paths that do not exist. This change improves the reliability of locating the Java executable in various environments.
|
| | |
| |
| |
| | |
Added functionality for managing game instances, including creating, deleting, updating, and duplicating instances. Integrated instance selection into the game launch process, allowing users to specify the instance when starting a game. Updated the main application logic to handle instance states and paths, ensuring proper directory management for each instance. Introduced a new module for instance management and updated relevant commands to support instance-specific operations.
|
| | |
| |
| |
| | |
Introduced a new InstancesView component for managing game instances, allowing users to create, edit, delete, and duplicate instances. Updated the App.svelte to include the InstancesView and modified various components to ensure instance selection is handled correctly. Enhanced the ModLoaderSelector and VersionsView to check for active instances before performing actions. Updated the Sidebar to include navigation to the new InstancesView.
|
| |/
|
|
| |
Added a new InstancesState class to manage game instances, including loading, creating, deleting, updating, and duplicating instances. Integrated instance selection into the game launch process, ensuring an active instance is selected before starting a game. Updated the types to include instance-related data structures.
|
| |
|
|
| |
Added functionality to determine and validate the required Java version for Minecraft versions, including checks for compatibility with older versions. Implemented event emissions for version installation and deletion, and updated the UI to reflect Java version requirements and installation status. Improved version metadata handling and added support for deleting versions.
|
| |\ |
|
| |\ \ |
|
| | | |
| | |
| | |
| | | |
Modified the logging statement in the start_game function to display all Java arguments instead of just the first ten, improving debugging capabilities.
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Modified the content security policy (CSP) in tauri.conf.json to define specific sources for scripts, styles, images, fonts, and connections, improving the application's security posture.
|
| | | |
| | |
| | |
| | | |
Removed the language specification for the ruff hook and added it for the fmt and clippy hooks, ensuring proper configuration for Rust in the pre-commit setup.
|
| | | |
| | |
| | |
| | | |
Removed the commented line that instructed to skip the CI process based on commit messages, streamlining the workflow configuration for clarity and maintainability.
|
| | | |
| | |
| | |
| | | |
Included a badge in the README to indicate pre-commit status, improving project documentation and providing users with immediate feedback on the pre-commit checks.
|
| | | |
| | |
| | |
| | | |
Modified the .pre-commit-config.yaml to skip the formatting and clippy checks during the CI process, optimizing the pre-commit workflow. Added Rust as the language for the pre-commit hook to ensure compatibility.
|
| | | |
| | |
| | |
| | | |
Added steps to the GitHub Actions workflow for installing Rust and necessary system dependencies on Linux, improving the environment setup for the prek auto-fix action.
|
| | | |
| | |
| | |
| | | |
Changed the commit user name and email for the prek auto-fix action in the GitHub Actions workflow to reflect the new bot identity, enhancing clarity in commit history.
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Updated the GitHub Actions workflow to enable automatic fixes for issues detected by the prek action. Added a conditional step to commit changes made by prek, improving the CI process by ensuring that fixes are applied directly to the repository.
|
| | | |
| | |
| | |
| | | |
Added autofix settings to the pre-commit configuration, allowing automatic fixes for issues detected by hooks. Reorganized the repository structure for clarity and removed redundant entries.
|
| | | |
| | |
| | |
| | | |
Modified the GitHub Actions workflow to change the formatting command from a check to a direct format execution, streamlining the process in the CI pipeline.
|
| | | |
| | |
| | |
| | | |
Modified the .pre-commit-config.yaml to include additional hooks and reorganized the repository structure. Updated pyproject.toml to remove the pre-commit dependency, streamlining the project configuration.
|
| | | |
| | |
| | |
| | | |
Included the 'prek' package as a development dependency in both pyproject.toml and uv.lock, specifying version 0.2.28 to enhance development capabilities.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fix a critical bug in normalize_java_path where Unix implementation
would return Ok(non-existent path) when java_path == "java" and the
`which` command failed to find Java in PATH. This caused game launch
failures with confusing error messages.
Key changes:
- Add strip_unc_prefix helper for Windows UNC path handling
- Fix Unix bug: explicitly return error when PATH search fails
- Apply canonicalize + strip_unc_prefix pattern to both platforms
- Enhanced error messages distinguishing PATH vs specific path failures
- Add comprehensive unit tests covering edge cases
- Update documentation to reflect actual behavior
Resolves issue where Windows and Unix users could not launch games
when Java path resolution failed silently.
Reviewed-by: Claude Sonnet 4.5
|
| | | |
| | |
| | |
| | | |
Bumped the version of @tauri-apps/plugin-dialog from 2.5.0 to 2.6.0 in pnpm-lock.yaml to align with the latest dependency updates.
|
| | | |
| | |
| | |
| | | |
Bumped the version of tauri-plugin-dialog in Cargo.toml and @tauri-apps/plugin-dialog in package.json from 2.5.0 to 2.6.0 to incorporate the latest features and improvements.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Add pre-commit hooks configuration details
- Document Rolldown-based Vite fork and frontend tooling
- Clarify version management with _version.py
- Add frontend workflows (check/lint/format commands)
- Document test workflow behavior and store patterns
- Specify Node 22 and pnpm 9 requirements
Reviewed-by: Claude Sonnet 4.5
|
| | | |\
| |_|/
|/| | |
|