mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-26 03:31:24 +08:00
* fix(windows): improve Git Bash detection for portable installations Enhance Git Bash detection on Windows to support portable Git installations and custom installation paths. The previous implementation only checked fixed paths and failed to detect Git when installed to custom locations or added to PATH manually. Key improvements: - Use where.exe to find git.exe in PATH and derive bash.exe location - Support CHERRY_STUDIO_GIT_BASH_PATH environment variable override - Add security check to skip executables in current directory - Implement three-tier fallback strategy (env var -> git derivation -> common paths) - Add detailed logging for troubleshooting This fixes the issue where users with portable Git installations could run git.exe from command line but the app failed to detect Git Bash. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix(windows): improve Git Bash detection for portable installations Enhance Git Bash detection on Windows to support portable Git installations and custom installation paths. The previous implementation only checked fixed paths and failed to detect Git when installed to custom locations or added to PATH manually. Key improvements: - Move findExecutable and findGitBash to utils/process.ts for better code organization - Use where.exe to find git.exe in PATH and derive bash.exe location - Add security check to skip executables in current directory - Implement two-tier fallback strategy (git derivation -> common paths) - Add detailed logging for troubleshooting - Remove environment variable override to simplify implementation This fixes the issue where users with portable Git installations could run git.exe from command line but the app failed to detect Git Bash. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix(windows): improve Git Bash detection for portable installations Enhance Git Bash detection on Windows to support portable Git installations and custom installation paths. The previous implementation only checked fixed paths and failed to detect Git when installed to custom locations or added to PATH manually. Key improvements: - Move findExecutable and findGitBash to utils/process.ts for better code organization - Use where.exe to find git.exe in PATH and derive bash.exe location - Add security check to skip executables in current directory - Implement two-tier fallback strategy (git derivation -> common paths) - Add detailed logging for troubleshooting - Remove environment variable override to simplify implementation This fixes the issue where users with portable Git installations could run git.exe from command line but the app failed to detect Git Bash. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * update iswin * test: add comprehensive test coverage for findExecutable and findGitBash Add 33 test cases covering: - Git found in common paths (Program Files, Program Files (x86)) - Git found via where.exe in PATH - Windows/Unix line ending handling (CRLF/LF) - Whitespace trimming from where.exe output - Security checks to skip executables in current directory - Multiple Git installation structures (Standard, Portable, MSYS2) - Bash.exe path derivation from git.exe location - Common paths fallback when git.exe not found - LOCALAPPDATA environment variable handling - Priority order (derivation over common paths) - Error scenarios (Git not installed, bash.exe missing) - Real-world scenarios (official installer, portable, Scoop) All tests pass with proper mocking of fs, path, and child_process modules. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor: clarify path navigation comments in findGitBash Replace confusing arrow notation showing intermediate directories with clearer descriptions of the navigation intent: - "navigate up 2 levels" instead of showing "-> Git/cmd -> Git ->" - "bash.exe in same directory" for portable installations - Emphasizes the intent rather than the intermediate steps Makes the code more maintainable by clearly stating what each path pattern is checking for. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * test: skip process utility tests on non-Windows platforms Use describe.skipIf to skip all tests when not on Windows since findExecutable and findGitBash have platform guards that return null on non-Windows systems. Remove redundant platform mocking in nested describe blocks since the entire suite is already Windows-only. This fixes test failures on macOS and Linux where all 33 tests were failing because the functions correctly return null on those platforms. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * format * fix: improve Git Bash detection error handling and logging - Add try-catch wrapper in IPC handler to handle unexpected errors - Fix inaccurate comment: usr/bin/bash.exe is for MSYS2, not Git 2.x - Change log level from INFO to DEBUG for internal "not found" message - Keep WARN level only in IPC handler for user-facing message 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __tests__ | ||
| aes.ts | ||
| file.ts | ||
| fileOperations.ts | ||
| index.ts | ||
| init.ts | ||
| ipService.ts | ||
| knowledge.ts | ||
| locales.ts | ||
| markdownParser.ts | ||
| mcp.ts | ||
| ocr.ts | ||
| process.ts | ||
| shell-env.ts | ||
| systemInfo.ts | ||
| windowUtil.ts | ||
| zip.ts | ||
| zoom.ts | ||