* refactor: replace handle::Handle::get_window() with WindowManager::get_main_window() in multiple files
* refactor: enhance WindowManager to return window state alongside the main window instance
* refactor: update useProfiles and ProfilePage to support profile overrides and improve patchProfilesConfig return type
* refactor: enhance handle_success to check main window existence before notifying profile changes
* refactor: simplify get_main_window_with_state by using pattern matching and improve window state handling
* refactor: fix window activation by removing unnecessary reference in activate_existing_main_window
* refactor: remove redundant macOS conditional for window_manager import
* refactor(ip-info-card): reduce retry, use succeed as lastFetchTs
* refactor(ip-info-card): stop countdown during revalidation
* perf(ip-info-card): avoid aggressive schedule revalidation
* perf(ip-info-card): try stop interval on window minimized
* perf(ip-info-card): only mutate after card scroll into view once
* perf(ip-info-card): interval only when card has been visible
* chore: add more debug information
* Update src/components/home/ip-info-card.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: reset countdown state after mutate finishes
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* perf(ip-info-card): make ip info card much better
* fix(ip-info-card): remove unused useEffect deps
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* refactor(ip-info-card): use `async-retry`, bail out non-2XX resp
* feat(ip-info-card): add new backend
* feat(ip-info-card): only revalidate when window is visible
* perf(ip-info-card): reduce re-renders when window is hidden
* fix(ip-info-card): remove `mutate` from `useEffect` arg
* Update src/components/home/ip-info-card.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: drop AbortSignal.timeout for old safati compat
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: enhance error reporting during service installation
* fix: correct variable name in install_service function for clarity
* fix(windows): improve output handling in install_service function
* feat(limiter): add Limiter struct with clock interface and tests
* feat(limiter): integrate Limiter into tray and window management for rate limiting
* fix(tray, window_manager): update debounce timing for tray click and window operations
* refactor(limiter): change time representation from u64 to u128 for improved precision
* fix: resolve issue with tray operations after system resume
* Revert "refactor(limiter): change time representation from u64 to u128 for improved precision"
This reverts commit 2198f40f7fcecbb755deb38af005c28e993db970.
* fix(Linux): add GID environment variable for Linux service installation #6159
* chore: bump clash_verge_service_ipc to 2.1.2
* chore: remove CLASH_VERGE_SERVICE_GID for linux
---------
Co-authored-by: Sline <realakayuki@gmail.com>
* feat: implement pre-push checks using cargo make and add Makefile.toml for task management
* feat: enhance Makefile.toml with condition checks for tasks and improve clippy args
* fix: update file patterns for format-check task in Makefile.toml
* feat: update file patterns for eslint and typecheck tasks in Makefile.toml
* feat: refactor Makefile.toml to consolidate Rust tasks and update pre-commit checks
* feat: update Makefile.toml to add i18n-check and lint-staged tasks; modify pre-commit script
* feat: update Makefile.toml to add i18n-check and lint-staged tasks; modify pre-commit script
* refactor: simplify Makefile.toml by removing unused conditions and consolidating dependencies
* feat: update Makefile.toml to define Rust and frontend tasks for pre-commit and pre-push checks
* chore: remove unnecessary tasks
* chore: add windows override
* chore: remove format and format-check
---------
Co-authored-by: Slinetrac <realakayuki@gmail.com>
* perf: improve config processing
* perf: enhance profile reordering logic and adjust logging level
* perf: add PartialEq derive to PrfSelected and PrfExtra structs for improved comparison
* perf: refactor PrfOption merge logic and streamline update_item method in IProfiles
* perf: simplify current_mapping and profiles_preview methods in IProfiles for improved readability
* perf: optimize filename matching logic in IProfiles by using a static regex
* refactor(connection-table): drive column order/visibility/sorting by TanStack Table state
* refactor(connection-table): simplify table data flow and align with built-in API
* refactor(connection-table): let column manager consume TanStack Table columns directly