Commit Graph

1216 Commits

  • 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
  • refactor: enhance traffic monitoring system with unified data management
     New Features:
    - Implement unified traffic monitoring hook with reference counting
    - Add intelligent data sampling and compression for better performance
    - Introduce enhanced canvas traffic graph with mouse hover tooltips
    - Add Y-axis labels and improved time axis display strategies
    - Support multiple time ranges (1, 5, 10 minutes) with adaptive formatting
    
    🚀 Performance Improvements:
    - Smart data compression reduces memory usage by 80%
    - Reference counting prevents unnecessary data collection when no components need it
    - Debounced data updates reduce UI thrashing
    - Optimized canvas rendering with controlled frame rates
    
    🔧 Technical Improvements:
    - Consolidate traffic monitoring logic into single hook (use-traffic-monitor.ts)
    - Remove duplicate hook implementations
    - Improve error handling with fallback to last valid data
    - Add comprehensive traffic statistics and monitoring diagnostics
    - Enhance tooltip system with precise data point highlighting
    
    🐞 Bug Fixes:
    - Fix connection speed display issues after IPC migration
    - Improve data freshness indicators
    - Better handling of network errors and stale data
    - Consistent traffic parsing across all components
    
    📝 Code Quality:
    - Add TypeScript interfaces for better type safety
    - Implement proper cleanup for animation frames and references
    - Add error boundaries for traffic components
    - Improve component naming and organization
    
    This refactoring provides a more robust, performant, and feature-rich traffic monitoring system while maintaining backward compatibility.
  • feat: migrate logs API from REST to IPC streaming (#4277)
    * feat: migrate logs API from REST to IPC streaming
    
    - Replace REST API `/logs` calls with IPC streaming implementation
    - Add new `src-tauri/src/ipc/logs.rs` with `LogsMonitor` for real-time log streaming
    - Implement duplicate stream prevention with level tracking
    - Add frontend-backend communication via Tauri commands for log management
    - Remove WebSocket compatibility, maintain IPC-only mode
    - Fix duplicate monitoring task startup when toggling log service
    - Add proper task lifecycle management with JoinHandle cleanup
    
    * refactor: remove dead code from logs.rs to fix clippy warnings
    
    - Remove unused `timestamp` field from LogItem struct
    - Remove unused `client` field from LogsMonitor struct
    - Remove unused methods: `is_fresh`, `get_current_monitoring_level`, `get_current_logs`
    - Simplify LogsMonitor initialization by removing client dependency
    - All clippy warnings with -D warnings now resolved
    
    * refactor: extract duplicate fmt_bytes function to utils module
    
    - Create new utils/format.rs module with fmt_bytes function
    - Remove duplicate fmt_bytes implementations from traffic.rs and memory.rs
    - Update imports to use shared utils::format::fmt_bytes
    - Add comprehensive unit tests for fmt_bytes function
    - Ensure DRY principle compliance and code maintainability
  • fix: the issue of home page port being out of sync (#4271)
    * synchronize port 7897
    
    * Update UPDATELOG.md
  • refactor: external-controller-cors to always show (#4243)
    * refactor: external-controller-cors to always show
    
    * i18n: update translation
    
    * Update UPDATELOG.md
  • fix: resolve connection speed display issues after IPC migration #4208 (#4229)
    🐞 Bug Fixes:
    - Fix missing upload/download rate display in connections page after IPC migration
    - Implement real-time connection speed calculation based on data differences
    - Add connection speed data types and calculation logic
    
    🔧 Technical Improvements:
    - Add connection speed calculation function in AppDataProvider
    - Use useRef to store previous connection data for speed difference calculation
    - Add curUpload and curDownload fields to connection data
    - Optimize connection data processing flow for accurate speed calculations
    
    📝 Changelog:
    - Update relevant issue descriptions in UPDATELOG.md
  • fix: resolve speed test functionality issue after IPC migration #4221, #4218 (#4228)
    * chore(deps): update cargo dependencies
    
    * fix: sysinfo crate use limit features
    
    * fix: update headers-core dependency and kode-bridge version; enhance system monitor status validation
    
    * fix: extend overall_status type in ISystemMonitorOverview to include 'healthy'
    
    * refactor: update URL encoding strategy in IpcManager and cmdGetProxyDelay function
    
    * fix: resolve speed test functionality issue after IPC migration
    
    * fix: resolve speed test functionality issue after IPC migration #4221, #4218
    
    ---------
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  • add: home card drag (#4215)
    * add home page control buttons
    
    * Update UPDATELOG.md
    
    * update zh en
    
    * Revert "add home page control buttons"
    
    This reverts commit e184843855.
    
    * Update UPDATELOG.md
    
    * Revert "update zh en"
    
    This reverts commit cbaddf59fb.
    
    * remove unnecessary code
    
    * fix: home.tsx
    
    * add  react-beautiful-dnd script
    
    * add home page drag
    
    * fix: react-beautiful-dndA setup problem was encountered
    
    * Revert "fix: react-beautiful-dndA setup problem was encountered"
    
    This reverts commit 81c34dd472.
    
    * fix: react-beautiful-dndA setup problem was encountered
    
    * Update types.d.ts
    
    * Revert "Update types.d.ts"
    
    This reverts commit 854046cf2f.
    
    * update @types/react-beautiful-dnd
    
    * Update home.tsx
    
    * Update UPDATELOG.md
    
    * remove unnecessary components
    
    * Revert "add  react-beautiful-dnd script"
    
    This reverts commit e84d569225.
    
    * Reapply "add  react-beautiful-dnd script"
    
    This reverts commit 2379fd27c4.
    
    * fix: home page error