Commit Graph

1226 Commits

  • feat: Implement custom window controls and titlebar management (#4919)
    - Added WindowControls component for managing window actions (minimize, maximize, close) based on the operating system.
    - Integrated window decoration toggle functionality to allow users to prefer system titlebar.
    - Updated layout styles to accommodate new titlebar and window controls.
    - Refactored layout components to utilize new window management hooks.
    - Enhanced layout viewer to include a switch for enabling/disabling window decorations.
    - Improved overall window management by introducing useWindow and useWindowDecorations hooks for better state handling.
  • refactor: invock mihomo api by use tauri-plugin-mihomo (#4926)
    * feat: add tauri-plugin-mihomo
    
    * refactor: invock mihomo api by use tauri-plugin-mihomo
    
    * chore: todo
    
    * chore: update
    
    * chore: update
    
    * chore: update
    
    * chore: update
    
    * fix: incorrect delay status and update pretty config
    
    * chore: update
    
    * chore: remove cache
    
    * chore: update
    
    * chore: update
    
    * fix: app freezed when change group proxy
    
    * chore: update
    
    * chore: update
    
    * chore: add rustfmt.toml to tauri-plugin-mihomo
    
    * chore: happy clippy
    
    * refactor: connect mihomo websocket
    
    * chore: update
    
    * chore: update
    
    * fix: parse bigint to number
    
    * chore: update
    
    * Revert "fix: parse bigint to number"
    
    This reverts commit 74c006522e.
    
    * chore: use number instead of bigint
    
    * chore: cleanup
    
    * fix: rule data not refresh when switch profile
    
    * chore: update
    
    * chore: cleanup
    
    * chore: update
    
    * fix: traffic graph data display
    
    * feat: add ipc connection pool
    
    * chore: update
    
    * chore: clippy
    
    * fix: incorrect delay status
    
    * fix: typo
    
    * fix: empty proxies tray menu
    
    * chore: clippy
    
    * chore: import tauri-plugin-mihomo by using git repo
    
    * chore: cleanup
    
    * fix: mihomo api
    
    * fix: incorrect delay status
    
    * chore: update tauri-plugin-mihomo dep
    
    chore: update
  • feat(ui): implement profiles batch select and i18n (#4972)
    * feat(ui): implement profiles batch select and i18n
    
    * refactor: adjust button position and icon
    
    * style: lint fmt
  • feat: url test button for proxy card and type safety (#4964)
    * feat: url test button for proxy card and type safety
    
    * fix: resolve ESLint hook dependency error in current-proxy-card.tsx
  • fix: app freeze when core run by service mode and open app window (#4922)
    * fix: app freeze when core run by service mode
    
    * chore: update
    
    * chore: update UPDATELOG
    
    ---------
    
    Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
  • chore(deps): update npm dependencies (#4939)
    * chore(deps): update npm dependencies
    
    * Refactor components to use function syntax instead of forwardRef for better type handling and clarity. Updated imports and adjusted prop types accordingly across multiple viewer components including TrafficGraph, ProfileViewer, BackupViewer, ClashCoreViewer, ControllerViewer, DnsViewer, LiteModeViewer, NetworkInterfaceViewer, ThemeViewer, TunViewer, UpdateViewer, and WebUIViewer.
    
    ---------
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
  • chore(deps): update dependency eslint-plugin-react-hooks to v6 (#4940)
    * chore(deps): update dependency eslint-plugin-react-hooks to v6
    
    * fix: update ESLint configuration to use correct imports and recommended settings
    
    * chore: clean up unused code and improve readability across components
    
    ---------
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
  • Refactor components to remove forwardRef and simplify props handling
    - Updated multiple components to remove the use of forwardRef, simplifying the props structure.
    - Adjusted imports and component definitions accordingly.
    - Ensured consistent handling of refs and props across various viewer components.
    - Improved readability and maintainability of the codebase.
  • refactor: improve code readability and consistency in proxy-chain and uri-parser utilities
    refactor: add keys to icons in routers for improved rendering and performance
    refactor: optimize RegExp polyfill by using Object.prototype.hasOwnProperty.call
    refactor: reorder imports in chain-proxy-provider for consistency
    refactor: remove unused "obfs-opts" property from IProxySnellConfig interface
    
    refactor: reorganize imports and enhance refresh logic in app data provider
    
    refactor: re-enable prop-types linting for better type safety in BaseDialog component
    
    refactor: update dependencies in effect hooks for improved stability and performance
  • Refactor imports across multiple components for consistency and clarity
    - Reorganized import statements in various components to ensure consistent ordering and grouping.
    - Removed unnecessary imports and added missing ones where applicable.
    - Improved readability and maintainability of the codebase by standardizing import styles.
  • Refactor imports and improve code organization across multiple components and hooks
    - Consolidated and reordered imports in various files for better readability and maintainability.
    - Removed unused imports and ensured consistent import styles.
    - Enhanced the structure of components by grouping related imports together.
    - Updated the layout and organization of hooks to streamline functionality.
    - Improved the overall code quality by following best practices in import management.
  • refactor: clash-verge-service management (#4674)
    * refactor: clash-verge-service management
    
    * fix: correct service state checks in ProxyControlSwitches component
    refactor: improve logging in service state update functions
    
    * fix: add missing async handler for Windows and adjust logging import for macOS
    
    * fix: streamline logging imports and add missing async handler for Windows
    
    * refactor: remove unused useServiceStateSync hook and update imports in _layout
    
    * refactor: remove unused useServiceStateSync import and clean up code in ProxyControlSwitches and _layout
    
    * refactor: simplify service status checks and reduce wait time in useServiceInstaller hook
    
    * refactor: remove unnecessary logging statements in service checks and IPC connection
    
    * refactor: extract SwitchRow component for better code organization and readability
    
    * refactor: enhance service state management and update related mutations in layout
    
    * refactor: streamline core stopping logic and improve IPC connection logging
    
    * refactor: consolidate service uninstallation logic and improve error handling
    
    * fix: simplify conditional statements in CoreManager and service functions
    
    * feat: add backoff dependency and implement retry strategy for IPC requests
    
    * refactor: remove redundant Windows conditional and improve error handling in IPC tests
    
    * test: improve error handling in IPC tests for message signing and verification
    
    * fix: adjust IPC backoff retry parameters
    
    * refactor: Remove service state tracking and related logic from service management
    
    * feat: Enhance service status handling with logging and running mode updates
    
    * fix: Improve service status handling with enhanced error logging
    
    * fix: Ensure proper handling of service operations with error propagation
    
    * refactor: Simplify service operation execution and enhance service status handling
    
    * fix: Improve error message formatting in service operation execution and simplify service status retrieval
    
    * refactor: Replace Cache with CacheProxy in multiple modules and update CacheEntry to be generic
    
    * fix: Remove unnecessary success message from config validation
    
    * refactor: Comment out logging statements in service version check and IPC request handling
  • Add Func 链式代理 (#4624)
    * 添加链式代理gui和语言支持
    在Iruntime中添跟新链式代理配置方法
    同时添加了cmd
    
    * 修复读取运行时代理链配置文件bug
    
    * t
    
    * 完成链式代理配置构造
    
    * 修复获取链式代理运行时配置的bug
    
    * 完整的链式代理功能
  • fix: resolve from lightweight cause crash (#4682)
    * refactor: streamline lightweight mode handling and improve window management
    
    * refactor: replace mutex-based window creation lock with atomic operations for improved performance
    
    * refactor: remove startup completed event handling and simplify initialization logic
    
    * refactor: remove conditional compilation for emit_update_event function
    
    * refactor: simplify return statements and clean up commented code in lightweight and window manager modules
    
    * refactor: streamline lightweight mode handling by consolidating window management calls
    
    * refactor: prevent unnecessary window toggle when exiting lightweight mode
    
    * refactor: reorder imports for consistency in lightweight module
    
    * refactor: move macOS specific logging_error import for clarity
  • feat: implement i18n lazy loading optimization
    🚀 Performance improvements:
    - Replace static language imports with dynamic imports
    - Load only current language on startup instead of all 13 languages
    - Implement on-demand loading when switching languages
    
    📦 Bundle optimization:
    - Reduce initial bundle size by avoiding preloading all language files
    - Add resource caching to prevent reloading same language
    - Support all 13 languages: en, ru, zh, fa, tt, id, ar, ko, tr, de, es, jp, zhtw
    
    🔧 Technical changes:
    - Convert i18n.ts to use dynamic import() for language resources
    - Add async initializeLanguage() for app startup
    - Create useI18n hook for language management with loading states
    - Update main.tsx for async language initialization
    - Fix language display labels in settings dropdown
    - Maintain backward compatibility with existing language system
    
     Fixed issues:
    - Resolve infinite loop in React components
    - Fix missing language labels in settings UI
    - Prevent circular dependencies in language loading
    - Add proper error handling and fallback mechanisms
  • Win 下添加代理节点的系统托盘 (#4562)
    * add proxy memu in tray
    
    * 添加win下系统托盘 节点
    代理->代理组->nodes
    同时添加了对应gui同步
    
    * 添加win 系统托盘显示代理节点
    且gui和托盘刷新机制
    
    * rust format
    
    * 添加 win下系统托盘节点延迟
    
    * Squashed commit of the following:
    
    commit 44caaa62c5
    Merge: 1916e539 3939741a
    Author: Junkai W. <129588175+Be-Forever223@users.noreply.github.com>
    Date:   Sat Aug 30 02:37:07 2025 +0800
    
        Merge branch 'dev' into dev
    
    commit 3939741a06
    Author: Tunglies <tunglies.dev@outlook.com>
    Date:   Sat Aug 30 02:24:47 2025 +0800
    
        refactor: migrate from serde_yaml to serde_yaml_ng for improved YAML handling (#4568)
    
        * refactor: migrate from serde_yaml to serde_yaml_ng for improved YAML handling
    
        * refactor: format code for better readability in DNS configuration
    
    commit f86a1816e0
    Author: Tunglies <tunglies.dev@outlook.com>
    Date:   Sat Aug 30 02:15:34 2025 +0800
    
        chore(deps): update sysinfo to 0.37.0 and zip to 4.5.0 in Cargo.toml (#4564)
    
        * chore(deps): update sysinfo to 0.37.0 and zip to 4.5.0 in Cargo.toml
    
        * chore(deps): remove libnghttp2-sys dependency and update isahc features in Cargo.toml
    
        * chore(deps): remove sysinfo and zip from ignoreDeps in renovate.json
    
    commit 9cbd8b4529
    Author: Tunglies <77394545+Tunglies@users.noreply.github.com>
    Date:   Sat Aug 30 01:30:48 2025 +0800
    
        feat: add x86 OpenSSL installation step for macOS in workflows
    
    commit 5dea73fc2a
    Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    Date:   Sat Aug 30 01:21:53 2025 +0800
    
        chore(deps): update npm dependencies (#4542)
    
        Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    
    commit 01af1bea23
    Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    Date:   Sat Aug 30 01:21:46 2025 +0800
    
        chore(deps): update rust crate reqwest_dav to 0.2.2 (#4554)
    
        Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    
    commit 1227e86134
    Author: Tunglies <77394545+Tunglies@users.noreply.github.com>
    Date:   Sat Aug 30 01:12:03 2025 +0800
    
        Remove unnecessary "rustls-tls" feature from reqwest dependency in Cargo.toml
    
    commit c6a6ea48dd
    Author: Tunglies <tunglies.dev@outlook.com>
    Date:   Fri Aug 29 23:51:09 2025 +0800
    
        refactor: enhance async initialization and streamline setup process (#4560)
    
        * feat: Implement DNS management for macOS
    
        - Added `set_public_dns` and `restore_public_dns` functions in `dns.rs` to manage system DNS settings.
        - Introduced `resolve` module to encapsulate DNS and scheme resolution functionalities.
        - Implemented `resolve_scheme` function in `scheme.rs` to handle deep links and profile imports.
        - Created UI readiness management in `ui.rs` to track and update UI loading states.
        - Developed window management logic in `window.rs` to handle window creation and visibility.
        - Added initial loading overlay script in `window_script.rs` for better user experience during startup.
        - Updated server handling in `server.rs` to integrate new resolve functionalities.
        - Refactored window creation calls in `window_manager.rs` to use the new window management logic.
    
        * refactor: streamline asynchronous handling in config and resolve setup
    
        * Revert "refactor: streamline asynchronous handling in config and resolve setup"
    
        This reverts commit 23d7dc86d5.
    
        * fix: optimize asynchronous memory handling
    
        * fix: enhance task logging by adding size check for special cases
    
        * refactor: enhance async initialization and streamline setup process
    
        * refactor: optimize async setup by consolidating initialization tasks
    
        * chore: update changelog for Mihomo(Meta) kernel upgrade to v1.19.13
    
        * fix: improve startup phase initialization performance
    
        * refactor: optimize file read/write performance to reduce application wait time
    
        * refactor: simplify app instance exit logic and adjust system proxy guard initialization
    
        * refactor: change resolve_setup_async to synchronous execution for improved performance
    
        * refactor: update resolve_setup_async to accept AppHandle for improved initialization flow
    
        * refactor: remove unnecessary initialization of portable flag in run function
    
        * refactor: consolidate async initialization tasks into a single blocking call for improved execution flow
    
        * refactor: optimize resolve_setup_async by restructuring async tasks for improved concurrency
    
        * refactor: streamline resolve_setup_async and embed_server for improved async handling
    
        * refactor: separate synchronous and asynchronous setup functions for improved clarity
    
        * refactor: simplify async notification handling and remove redundant network manager initialization
    
        * refactor: enhance async handling in proxy request cache and window creation logic
    
        * refactor: improve code formatting and readability in ProxyRequestCache
    
        * refactor: adjust singleton check timeout and optimize trace size conditions
    
        * refactor: update TRACE_SPECIAL_SIZE to include additional size condition
    
        * refactor: update kode-bridge dependency to version 0.2.1-rc2
    
        * refactor: replace RwLock with AtomicBool for UI readiness and implement event-driven monitoring
    
        * refactor: convert async functions to synchronous for window management
    
        * Update src-tauri/src/utils/resolve/window.rs
    
        * fix: handle missing app_handle in create_window function
    
        * Update src-tauri/src/module/lightweight.rs
    
    * format
  • refactor: proxy control component and system settings UI
    fix: handle tun toggle state after service uninstall
  • refactor: update AppHandle usage to use Arc<AppHandle> for improved memory management (#4491)
    * refactor: update AppHandle usage to use Arc<AppHandle> for improved memory management
    
    * fix: clippy ci
    
    * fix: ensure default_latency_test is safely accessed with non-null assertion
  • feat: comprehensive oxlint cleanup - remove unused code
    🧹 Cleanup Summary:
    - Fixed 83 oxlint warnings across 50+ files
    - Removed unused imports, variables, and functions
    - Maintained all functional code and error handling
    - Improved bundle size and code maintainability
    
    📝 Key Changes:
    - Cleaned unused React hooks (useState, useEffect, useClashInfo)
    - Removed unused Material-UI imports (useTheme, styled components)
    - Deleted unused interfaces and type definitions
    - Fixed spread operator usage and boolean casting
    - Simplified catch parameters where appropriate
    
    🎯 Files Modified:
    - React components: home.tsx, settings, profiles, etc.
    - Custom hooks: use-*.ts files
    - Utility functions and type definitions
    - Configuration files
    
     Result: 0 oxlint warnings (from 83 warnings)
    🔧 All functionality preserved
    📦 Reduced bundle size through dead code elimination
  • fix: resolve system proxy status detection and display inconsistency
    - Fixed getSystemProxyActualState logic to properly check actual system status
    - Unified system proxy state display across all components
    - Replaced systemProxyIndicator with actualState for consistent UI display
    - Updated components: setting-system, ProxyControlSwitches, proxy-tun-card
    - Added entry to v2.4.0 changelog