Commit Graph

1218 Commits

  • 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
  • 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