aboutsummaryrefslogtreecommitdiffstatshomepage
Commit message (Collapse)AuthorAgeFilesLines
...
* | chore(ci): Disable Musl platform in CI workflow简律纯2026-02-141-6/+6
| | | | | | Comment out the Musl platform configuration for CI.
* | Merge branch 'dev' into main简律纯2026-02-101-6/+8
|\ \
| * | fix(ci): configure musl cross-compilation for GTK dependencies (#92)Copilot2026-02-101-6/+8
| | | | | | | | | | | | | | | Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: HsiangNianian <44714368+HsiangNianian@users.noreply.github.com>
* | | Merge branch 'dev' into main简律纯2026-02-101-9/+18
|\| |
* | | Refine Chinese getting-started docs game launch instruction (#90)Natsuu2026-02-101-1/+1
| | |
* | | docs: update language links and improve formatting in README files (#88)Natsuu2026-02-094-9/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ## Summary by Sourcery Improve bilingual README structure and formatting for clarity and consistency. Documentation: - Add cross-links between English and Chinese READMEs for easier language switching. - Normalize README formatting including roadmap link styling, spacing, and license section presentation in both languages.
| | * Merge branch 'main' into refactor/migrate-to-react简律纯2026-02-0840-141/+6246
| | |\ | |_|/ |/| |
| | * feat(java): add mise version manager support and refactor detection (#84)简律纯2026-02-054-12/+76
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # 描述 此 PR 为 Java 检测模块添加了 mise 版本管理器支持,并重构了 SDKMAN 检测逻辑,使其更加健壮。同时更新了 TypeScript 类型绑定的格式。 ## 更改类型 - [ ] Bug 修复(修复问题的非破坏性更改) - [x] 新功能(添加功能的非破坏性更改) - [ ] 破坏性更改(会导致现有功能无法正常工作的修复或功能) - [ ] 文档更新 - [ ] UI/UX 改进 - [ ] 性能优化 - [x] 代码重构(无功能性更改) - [ ] 配置更改 - [ ] 测试添加或更新 ## LLM 生成代码声明 - [x] 此 PR 包含 LLM 生成的代码,我**提供**质量担保 - [ ] 此 PR 包含 LLM 生成的代码,我**不提供**质量担保 - [ ] 此 PR 不包含 LLM 生成的代码 **模型**: Claude Sonnet 4.5 ## 相关 Issue 相关 #(如有) ## 更改内容 ### 后端 (Rust) #### Java 检测模块重构 1. **新增 mise 版本管理器支持** - 添加 `find_mise_java()` 函数扫描 `~/.local/share/mise/installs/java/` - 在 Linux 和 macOS 平台的候选列表中集成 mise 检测 2. **重构 SDKMAN 检测逻辑** - 将 `find_sdkman_java()` 从检查 `current` 符号链接改为扫描整个 candidates 目录 - 避免符号链接导致的重复检测问题 3. **添加通用扫描辅助函数** - 实现 `scan_java_dir<F>()` 泛型函数,支持自定义过滤条件 - 自动过滤符号链接,只返回真实的目录安装 - 为 mise 和 SDKMAN 提供统一的扫描逻辑 4. **修复模块导入路径** - 将相对导入 `super::` 改为绝对导入 `crate::core::java::` - 提高代码可维护性和清晰度 5. **改进文档注释** - 为新函数添加详细的 Rustdoc 注释 - 说明参数、返回值和功能 ### 前端 (React) - 无前端更改 ### 配置 - 重新生成 TypeScript 类型绑定(ts-rs),采用更紧凑的单行格式 - 新增类型:`account_storage.ts`、`java/*` 模块类型 - 更新所有现有绑定文件的格式 ## 测试 ### 测试环境 - **操作系统**:Windows 11 - **DropOut 版本**:0.1.24 - **测试的 Minecraft 版本**:N/A(Java 检测功能) - **Mod 加载器**:N/A ### 测试用例 - [x] 已在 Windows 上测试(编译通过) - [ ] 已在 macOS 上测试 - [ ] 已在 Linux 上测试 - [ ] 已测试原版 Minecraft - [ ] 已测试 Fabric - [ ] 已测试 Forge - [ ] 已测试游戏启动 - [ ] 已测试登录流程 - [x] 已测试 Java 检测/下载 ### 测试步骤 1. 运行 `cargo tauri dev` 确保编译通过 2. 运行 `cargo check` 和 `cargo clippy` 确保无警告 3. Pre-commit hooks 全部通过(fmt, check, clippy) **注意**:此 PR 主要是代码重构和新增功能,建议在具有 mise/SDKMAN 环境的 Linux/macOS 系统上进行实际功能测试。 ## 检查清单 ### 代码质量 - [x] 我的代码遵循项目的代码风格指南 - [x] 我已对自己的代码进行了自审 - [x] 我已对难以理解的区域添加了注释 - [x] 我的更改没有产生新的警告或错误 ### 测试验证 - [x] 我已在本地测试了我的更改 - [ ] 我已添加测试来证明我的修复有效或功能正常工作 - [ ] 新的和现有的单元测试在本地通过 - [x] 我至少在一个目标平台上进行了测试(Windows 编译测试) ### 文档更新 - [x] 我已相应地更新了文档(代码注释) - [ ] 如有需要,我已更新 README - [x] 我已在必要处添加/更新代码注释 ### 依赖项 - [x] 我已检查没有添加不必要的依赖项 - [x] 所有新依赖项都已正确记录 - [x] `Cargo.lock` 和/或 `pnpm-lock.yaml` 已更新(如果依赖项有变化) ## 截图 / 视频 N/A(后端功能,无 UI 变更) ## 附加说明 ### 技术细节 **为什么添加 mise 支持?** mise (前身 rtx) 是一个现代的版本管理工具,越来越多的开发者使用它来管理 Java 等运行时。添加此支持可以提高启动器的兼容性。 **符号链接过滤的重要性** 版本管理器(mise/SDKMAN)通常会创建符号链接作为版本别名(如 `21`、`lts`、`current`),过滤这些链接可以: - 避免重复检测同一个 Java 安装 - 减少检测开销 - 提供更清晰的检测结果 **代码重构的影响** - 导入路径的更改不影响功能,仅提高代码组织性 - TypeScript 绑定的格式更改由 ts-rs 自动生成,不影响类型定义的正确性 ### 后续工作建议 - 在 CI 中添加 Linux/macOS 环境的 Java 检测集成测试 - 考虑为其他版本管理器(如 jenv、jabba)添加支持 - 优化检测性能(可能需要并行扫描或缓存机制) ## 破坏性更改说明 无破坏性更改。此 PR 完全向后兼容。 --- **维护者专用:** - [ ] 代码审查已完成 - [ ] CI 检查通过 - [ ] 准备合并 --- **提交记录:** - 50de089 feat(java): add mise version manager support and refactor detection logic - c075dd8 chore(types): regenerate typescript bindings with compact formatting **Reviewed-by**: Claude Sonnet 4.5
| | | * Revert "chore(types): regenerate typescript bindings with compact formatting"Begonia, HE2026-02-0514-141/+299
| | | | | | | | | | | | | | | | This reverts commit c075dd83c916bfebe4dd68f6e5c425b45a804305.
* | | | docs: comprehensive documentation overhaul with i18n support (English & ↵简律纯2026-02-0440-141/+6246
|\ \ \ \ | | | | | | | | | | | | | | | Chinese) (#78)
| * | | | docs: restructure documentation filesNtskwK2026-02-0322-11/+0
| | | | |
| * | | | feat(i18n): add multi-language support for docsNtskwK2026-02-0310-118/+222
| | | | |
| | | | * chore(types): regenerate typescript bindings with compact formattingBegonia, HE2026-01-3014-299/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Regenerate ts-rs bindings with single-line type definitions - Add new bindings: account_storage.ts, java module types - Update all existing binding files to compact format - Add generated types for old UI package Reviewed-by: Claude Sonnet 4.5
| | | | * feat(java): add mise version manager support and refactor detection logicBegonia, HE2026-01-304-12/+76
| | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add scan_java_dir() helper to filter symlinks and scan directories - Implement find_mise_java() for ~/.local/share/mise/installs/java/ - Refactor find_sdkman_java() to scan candidates dir instead of 'current' - Fix import paths to use absolute crate::core::java:: paths - Add mise detection to Linux and macOS candidates Reviewed-by: Claude Sonnet 4.5
| * | | docs: remove emojis from documentation and home pagecopilot-swe-agent[bot]2026-01-305-62/+56
| | | | | | | | | | | | | | | | Co-authored-by: HsiangNianian <44714368+HsiangNianian@users.noreply.github.com>
| | | * refactor: add TypeScript support to account storage structuresHsiangNianian2026-01-301-3/+21
| | | |
| | | * refactor: add TypeScript support to JavaConfig structHsiangNianian2026-01-301-3/+7
| | | |
| | | * refactor(java): add TypeScript support to Java data structuresHsiangNianian2026-01-301-4/+21
| | | |
| | | * refactor(java): enhance Adoptium structs with TypeScript supportHsiangNianian2026-01-301-5/+26
| | | |
| | | * Merge branch 'main' into refactor/migrate-to-react简律纯2026-01-291-2/+1332
| | | |\ | |_|_|/ |/| | |
| | | * Refactor Java runtime to async modular system with Adoptium support (#82)简律纯2026-01-2935-1237/+5726
| | | |\
| | | | * fix: resolve rebase conflicts and compilation errorsBegonia, HE2026-01-295-138/+152
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Export JavaError from java module - Fix type mismatches in Adoptium provider methods - Add type annotations for reqwest json() calls - Remove non-existent cache_version field from JavaCatalog - Fix resolve_java_for_launch call signature (remove extra window param) - Add error conversion to String for Tauri commands - Fix import for save_catalog_cache in adoptium.rs Reviewed-by: Claude Sonnet 4.5
| * | | | docs: fix relative links and image paths in documentationNtskwK2026-01-294-29/+26
| | | | |
| * | | | feat(docs): enhance error boundary UI and add 404 pageNtskwK2026-01-293-6/+29
| | | | |
| | | | * refactor(java): improve error handling and loggingBegonia, HE2026-01-295-20/+140
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Extract JavaError to dedicated error.rs module - Add serde defaults for JavaInstallation optional fields - Replace unwrap() with proper error propagation - Add detailed logging for Java resolution priority chain - Improve error mapping in validation (NotFound vs VerificationFailed) Reviewed-by: Claude Sonnet 4.5
| | | | * feat(java): implement cache versioning, size limits, and automatic cleanupBegonia, HE2026-01-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add CACHE_VERSION constant for cache format compatibility tracking - Add MAX_CACHE_SIZE_BYTES limit (10 MB) to prevent unbounded cache growth - Add cache_version field to JavaCatalog struct with default value - Implement cache version validation in load_cached_catalog() - Implement cache size enforcement in save_catalog_cache() - Add cleanup_expired_caches() for background cache cleanup - Add enforce_cache_size_limit() to validate cache file sizes - Add is_cache_version_compatible() helper function - Automatically clean up expired caches on load and clear operations - Validate cache version before using cached data Fixes: - Cache expiration without automatic cleanup (now cleaned on load) - Missing cache version control (now validates format compatibility) - Unbounded cache size growth (now limited to 10 MB) Reviewed-by: Claude 3.5 Sonnet
| | | | * feat(java): Enhance Java detection and error handlingBegonia, HE2026-01-294-33/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added support for detecting Java installations from SDKMAN! in `find_sdkman_java`. - Improved `run_which_command_with_timeout` to handle command timeouts gracefully. - Introduced a unified `JavaError` enum for consistent error handling across Java operations. - Updated functions to return `Result` types instead of `Option` for better error reporting. - Enhanced `load_cached_catalog` and `save_catalog_cache` to use `JavaError`. - Refactored `fetch_java_catalog`, `fetch_java_release`, and `fetch_available_versions` to return `JavaError`. - Improved validation functions to return detailed errors when checking Java installations. - Added tests for version parsing and compatibility checks. - Updated `resolve_java_for_launch` to handle instance-specific and global Java paths.
| | | | * refactor(java): simplify version compatibility logic and improve error handlingBegonia, HE2026-01-296-182/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Extract version compatibility check into shared validation function - Remove duplicated version checking code across multiple modules - Simplify Java detection timeout logic in detection.rs - Expand vendor detection to support more JDK distributions (Dragonwell, Kona, Semeru, BiSheng, etc.) - Refactor start_game to use priority-based Java resolution - Improve error handling in Adoptium provider task collection Reviewed-by: Claude Sonnet 4.5
| | | | * refactor(java): replace unwrap with expect for better error handlingBegonia, HE2026-01-291-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace potentially panicking unwrap() call with expect() that includes a descriptive error message to aid debugging if the edge case occurs. Reviewed-by: Claude Sonnet 4.5
| | | | * refactor(java): suppress dead code warnings and improve detectionBegonia, HE2026-01-294-16/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add #[allow(dead_code)] attributes to utility functions - Improve 64-bit detection with case-insensitive check - Support aarch64 architecture in bitness detection - Add TODO for future vendor expansion Reviewed-by: Claude Sonnet 4.5
| | | | * refactor(java): address Sourcery AI code review feedbackBegonia, HE2026-01-294-84/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Centralize strip_unc_prefix into java/mod.rs to eliminate duplication across detection.rs and validation.rs - Remove unused JAVA_CHECK_TIMEOUT constant from validation.rs - Implement actual timeout mechanism in run_which_command_with_timeout() using try_wait() loop - Parallelize Adoptium API requests for better catalog fetch performance Fixes: - Multiple strip_unc_prefix implementations consolidated - Timeout constant now properly enforced in which/where command execution - Catalog fetching now uses concurrent tokio::spawn tasks instead of sequential await Reviewed-by: Claude Sonnet 4.5
| | | | * Delete CNAME简律纯2026-01-291-1/+0
| | | | |
| | | | * feat(docs): add React Router docs with FumadocsNtskwK2026-01-2921-10/+3919
| | | | |
| | | | * docs: update terminology in READMENtskwK2026-01-291-1/+1
| | | | |
| | | | * docs: add Chinese README documentationNtskwK2026-01-291-0/+142
| | | | |
| | | | * refactor(java): modularize Java detection and management systemBegonia, HE2026-01-2912-1125/+1354
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Split monolithic java.rs (1089 lines) into focused modules - detection: Java installation discovery - validation: Version validation and requirements checking - priority: Installation selection priority logic - provider: Java download provider trait - providers: Provider implementations (Adoptium) - persistence: Cache and catalog management - Add java_path_override field to Instance struct for per-instance Java configuration - Export JavaInstallation at core module level This refactoring improves maintainability and prepares for multi-vendor Java provider support. Reviewed-by: Claude Sonnet 4.5
| | | | * docs(java): add TODO comment for refactoring candidate detectionBegonia, HE2026-01-291-0/+2
| | | |/ | | | | | | | | | | | | Reviewed-by: Claude-Sonnet-4.5
| | | * feat(client): add tauri api macros苏向夜2026-01-235-1/+413
| | | |
| | | * feat(ui): add new ui project苏向夜2026-01-2366-6/+10829
| | | |
| | | * feat(ts-bindings): fix ts bindings naming convention苏向夜2026-01-2313-0/+58
| | | |
| * | | fix: update navigation title from 'React Router' to 'DropOut'HsiangNianian2026-01-221-1/+1
| | | |
| * | | chore: Update favicon.ico in public directoryHsiangNianian2026-01-221-0/+0
| | | |
| * | | Update packages/docs/content/docs/en/troubleshooting.mdx简律纯2026-01-221-4/+6
| | | | | | | | | | | | Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
| * | | Update packages/docs/content/docs/en/troubleshooting.mdx简律纯2026-01-221-1/+1
| | | | | | | | | | | | Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
| * | | Update packages/docs/content/docs/zh/troubleshooting.mdx简律纯2026-01-221-1/+1
| | | | | | | | | | | | Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
| * | | Update packages/docs/content/docs/zh/troubleshooting.mdx简律纯2026-01-221-2/+2
| | | | | | | | | | | | Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
| * | | Update packages/docs/content/docs/en/features/index.mdx简律纯2026-01-221-6/+6
| | | | | | | | | | | | Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
| * | | docs: redesign home page with launcher showcase and fix routingcopilot-swe-agent[bot]2026-01-214-13/+135
| | | | | | | | | | | | | | | | Co-authored-by: HsiangNianian <44714368+HsiangNianian@users.noreply.github.com>
| * | | docs: fix meta.json structure and build configuration for i18ncopilot-swe-agent[bot]2026-01-214-46/+2
| | | | | | | | | | | | | | | | Co-authored-by: HsiangNianian <44714368+HsiangNianian@users.noreply.github.com>
| * | | docs: configure i18n support and update documentation READMEcopilot-swe-agent[bot]2026-01-213-13/+64
| | | | | | | | | | | | | | | | Co-authored-by: HsiangNianian <44714368+HsiangNianian@users.noreply.github.com>