Slinetrac
32ff1b759f
refactor(profile_switch): modularize switch handler
...
- Break monolithic switch handler into proper module hierarchy
- Move shared globals, constants, and SwitchScope guard to state.rs
- Isolate queue orchestration and async task spawning in driver.rs
- Consolidate switch pipeline and config patching in workflow.rs
- Extract request pre-checks/YAML validation into validation.rs
2025-10-26 21:01:51 +08:00
Slinetrac
14eb733f51
refactor(profile): modularize switch logic into profile_switch.rs
2025-10-26 20:12:17 +08:00
Slinetrac
59f4dbe16d
refactor(cmd): move switch-validation helper into new profile_switch module
2025-10-26 17:39:30 +08:00
Slinetrac
fb7250cc6b
refactor(profile): make switch driver fully async and handle panics safely
2025-10-26 16:06:50 +08:00
Slinetrac
fc10fff920
fix(profile): unify error string types in validation helper
2025-10-26 15:40:46 +08:00
Slinetrac
ceec922887
refactor: migrate backend queue to SwitchDriver actor
2025-10-26 15:04:03 +08:00
Slinetrac
de35fef450
chore: translate comments and log messages to English to avoid encoding issues
2025-10-26 13:39:00 +08:00
Slinetrac
bf61f3828c
feat(profiles): centralize profile switching with reducer/driver queue to fix stuck UI on rapid toggles
2025-10-26 12:40:37 +08:00
Slinetrac
a889d0b1e5
refactor(profile-switch): serialize switches with async queue and enrich frontend events
2025-10-26 11:53:15 +08:00
Slinetrac
49926b4823
refactor: hooked up a backend-driven profile switch flow
2025-10-25 15:06:46 +08:00
Slinetrac
cc39dcdc09
refactor:introduce a profile switch worker
2025-10-25 10:55:09 +08:00
Slinetrac
1beeb3f804
refactor:replace state machine with reducer
2025-10-25 10:35:35 +08:00
Slinetrac
b627da32ac
Merge branch 'dev' into refactor/proxy-refresh
2025-10-25 10:05:48 +08:00
Slinetrac
0867c713f7
refactor(profiles): introduce a state machine
2025-10-25 10:04:19 +08:00
renovate[bot] and renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ed9eed226d
chore(deps): update npm dependencies ( #5198 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-25 09:59:54 +08:00
Slinetrac
f79c2bfdff
fix(proxy-groups): restrict reduced-height viewport to chain-mode column
2025-10-24 21:57:01 +08:00
Slinetrac
89d7c7c3e5
fix(proxy): merge static and provider entries in snapshot; fix Virtuoso viewport height
2025-10-24 21:48:54 +08:00
Slinetrac
ead312090d
fix(proxy-snapshot, proxy-groups): restore last-selected proxy and group info
2025-10-24 21:32:34 +08:00
Slinetrac
547cf89190
docs: UPDATELOG.md
2025-10-24 20:59:33 +08:00
Slinetrac
760956786f
fix(proxy-store): tweak fetch sequencing guard to prevent snapshot invalidation from wiping fast responses
2025-10-24 20:40:56 +08:00
Slinetrac
35c7d01cd0
fix(proxy-store): add monotonic fetch guard and event bridge cleanup
2025-10-24 20:25:06 +08:00
Slinetrac
f4022e612e
fix(proxy-store): properly hydrate and filter backend provider snapshots
2025-10-24 20:01:41 +08:00
Slinetrac
65076c801a
refactor: proxy refresh
2025-10-24 19:46:11 +08:00
renovate[bot] and renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
806769b307
chore(deps): update npm dependencies ( #5185 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-24 09:55:18 +08:00
Tunglies
d291fc5c64
chore(dependencies): update clash_verge_logger source to specific commit
2025-10-24 00:08:10 +08:00
Tunglies
bf45e487f9
feat(tauri-plugin-mihomo): configure IPC pool settings with connection limits and health checks
2025-10-23 22:32:23 +08:00
Tunglies
99ef0e51fc
feat(init_logger): improve log level retrieval from environment variable
2025-10-23 22:13:43 +08:00
oomeow
cc2dc66d5f
chore: update tauri-plugin-mihomo dep
2025-10-23 20:45:34 +08:00
renovate[bot] and renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
001c11913a
chore(deps): update dependency vite to ^7.1.12 ( #5180 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-23 16:25:38 +08:00
Tunglies
f061bce2a1
refactor(window_manager): simplify window state handling and improve method organization
2025-10-23 16:21:51 +08:00
oomeow and Tunglies
d7859b07a6
fix: parse hotkey ( #5167 )
...
* fix: incorrectly parse hotkey
* refactor: parse hotkey
* fix: panic on linux
* chore: update
* chore: update style
* fix: register hotkey error on windows
* chore: update style
---------
Co-authored-by: Tunglies <tunglies.dev@outlook.com >
2025-10-23 15:54:48 +08:00
renovate[bot] and renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
585963e751
chore(deps): update dependency lint-staged to ^16.2.6 ( #5175 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-23 13:18:51 +08:00
renovate[bot] and renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
d84b762ef3
chore(deps): update dependency vitest to v4 ( #5176 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-23 13:18:30 +08:00
Sline
8657cedca0
feat: add configurable hover jump navigator delay ( #5178 )
...
* fix: hover options
* feat: add configurable hover jump navigator delay
- Added `hover_jump_navigator_delay` to Verge config defaults, patch flow, and response payload for persistent app-wide settings.
- Made proxy navigator respect configurable delay via `DEFAULT_HOVER_DELAY` and new `hoverDelay` prop.
- Threaded stored delay through proxy list so hover scrolling uses Verge-configured value.
- Added "Hover Jump Navigator Delay" control in Layout settings with clamped numeric input, tooltip, and toggle-aware disabling.
- Localized new labels in English, Simplified Chinese, and Traditional Chinese.
- Extended frontend Verge config type to include delay field for type-safe access.
* docs: UPDATELOG.md
2025-10-23 13:14:01 +08:00
Tunglies
9ea9704bbf
refactor(sysopt): replace Arc<TokioMutex> with AtomicBool for sysproxy state management
2025-10-23 00:53:57 +08:00
renovate[bot] and renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
302677aed0
chore(deps): update dependency react-i18next to v16.1.5 ( #5171 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-22 22:01:37 +08:00
renovate[bot] and renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1415df1d23
chore(deps): update cargo dependencies ( #5169 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-22 21:59:53 +08:00
renovate[bot] and renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
b7d2bc7c74
chore(deps): update dependency @tauri-apps/cli to v2.9.1 ( #5170 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-22 21:59:31 +08:00
Sline
4f7d069f19
feat(ui): add left menu lock/unlock with reorder mode and context menu ( #5168 )
...
* feat: free menu
* feat(ui): add left menu lock/unlock with reorder mode and context menu
* docs: UPDATELOG.md
2025-10-22 21:39:12 +08:00
Sline
3bedf7ec35
feat(backup): add dns_config into backup ( #5166 )
2025-10-22 19:52:44 +08:00
Sline
c4c37bf291
feat(tray): close all connections ( #5165 )
2025-10-22 19:28:00 +08:00
Tunglies
815a865265
perf(tray): ignore unnecessary tray icon events to reduce refreshes
2025-10-22 18:49:28 +08:00
Tunglies
2d2167e048
refactor: replace unwrap_or with unwrap_or_else for improved error handling ( #5163 )
...
In Rust, the `or` and `or_else` methods have distinct behavioral differences. The `or` method always eagerly evaluates its argument and executes any associated function calls. This can lead to unnecessary performance costs—especially in expensive operations like string processing or file handling—and may even trigger unintended side effects.
In contrast, `or_else` evaluates its closure lazily, only when necessary. Introducing a Clippy lint to disallow `or` sacrifices a bit of code simplicity but ensures predictable behavior and enforces lazy evaluation for better performance.
2025-10-22 17:33:55 +08:00
Tunglies
a05ea64bcd
perf: utilize smartstring for string handling ( #5149 )
...
* perf: utilize smartstring for string handling
- Updated various modules to replace standard String with smartstring::alias::String for improved performance and memory efficiency.
- Adjusted string manipulations and conversions throughout the codebase to ensure compatibility with the new smartstring type.
- Enhanced readability and maintainability by using `.into()` for conversions where applicable.
- Ensured that all instances of string handling in configuration, logging, and network management leverage the benefits of smartstring.
* fix: replace wrap_err with stringify_err for better error handling in UWP tool invocation
* refactor: update import path for StringifyErr and adjust string handling in sysopt
* fix: correct import path for CmdResult in UWP module
* fix: update argument type for execute_sysproxy_command to use std::string::String
* fix: add missing CmdResult import in UWP platform module
* fix: improve string handling and error messaging across multiple files
* style: format code for improved readability and consistency across multiple files
* fix: remove unused file
2025-10-22 16:25:44 +08:00
renovate[bot] and renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fe96a7030a
chore(deps): update rust crate boa_engine to 0.21.0 ( #5159 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-22 09:11:57 +08:00
renovate[bot] and renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
9050e56cdb
chore(deps): update npm dependencies ( #5158 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-22 09:02:32 +08:00
Tunglies
b813cbdfc8
fix: update clash_verge_service_ipc to version 2.0.17
2025-10-22 01:51:11 +08:00
Slinetrac
95aee6ec81
chore: better pre-hooks
2025-10-22 00:08:16 +08:00
Slinetrac
4d2c1b4dc2
fix: resolve clippy lint in linux utils
2025-10-21 23:20:27 +08:00
Tunglies
d9fdf261d1
fix: optimize process ID collection and remove unnecessary async handler in window destruction
...
fix: remove unnecessary condition check in process name matching
2025-10-21 23:14:57 +08:00