Commit Graph
2150 Commits
Author SHA1 Message Date
Tunglies c7cdc62512 chore: bump dependencies
Bump tauri-plugin-mihomo to 0.5.0 and update frontend dependency locks.

Adapt the traffic websocket stream parser to the new raw text byte callback API.
2026-05-26 13:30:37 +08:00
Tunglies 746279fa03 refactor: remove subscription TLS roots fallback 2026-05-26 00:23:55 +08:00
Tunglies e2d14a5ea7 fix: support empty basic auth passwords 2026-05-25 23:12:44 +08:00
Tunglies d75c4cf59e fix: enable gzip subscription responses
docs: update changelog for gzip subscriptions
2026-05-25 22:59:11 +08:00
Tunglies ec9ef0f85e fix: report legacy TLS subscription failures 2026-05-25 22:22:24 +08:00
Tunglies 8ccb0b9abd perf: reduce tokio runtime thread limits
The Tauri backend is primarily the control plane for IPC, config generation, tray/window events, and mihomo API calls. The proxy data plane runs in the mihomo sidecar/service process, so allowing up to 16 runtime workers adds scheduling headroom without clear startup benefit.

Setup benchmark used isolated HOME/XDG dirs, isolated mihomo IPC sockets, sidecar mode, disabled TUN/system proxy defaults, and graceful shutdown after setup on an 18-thread host.

| limit | workers | blocking | setup async avg/max | avg threads |
| --- | ---: | ---: | ---: | ---: |
| old | 16 | 64 | 742.2ms / 1163.4ms | 34.5 |
| old | 8 | 32 | 650.8ms / 680.9ms | 27.0 |
| old | 4 | 16 | 681.5ms / 708.1ms | 23.8 |
| new | 16 | 32 | 682.8ms / 747.0ms | 35.3 |
| new | 8 | 16 | 650.1ms / 662.4ms | 26.0 |
| new | 4 | 8 | 639.3ms / 645.5ms | 22.1 |

The 2x blocking pool reduced tail latency across the tested limits. Capping workers at 8 keeps enough concurrency for normal control-plane work while avoiding the 16-worker tail-latency outlier and reducing blocking-pool headroom from 64 to 16 on this host.
2026-05-25 17:24:06 +08:00
Tunglies c18c23963d refactor: frontend (#7097)
* refactor: remove unused window show/hide event listeners

* refactor: deduplicate profile-changed event handling

* refactor: remove unused setupCloseListener from use-listen

* refactor: remove unused removeAllListeners from use-listen

* fix(backend): dedupe profile changed notification on import

* fix: avoid duplicate timer update completed event

* refactor(frontend): simplify proxy switch fallback path
2026-05-23 12:52:52 +08:00
Tunglies 32029af0f9 refactor: improve tray speed rendering logic and attributes handling 2026-05-22 21:47:59 +08:00
Tunglies 21878ea936 Refactor timer management and remove delay_timer dependency (#7075)
* Refactor timer management and remove delay_timer dependency

The delay_timer spawned tokio threads of cores, which not controled by expected.

* refactor: improve logging messages in Timer implementation

* fix(timer): prevent potential panic by using saturating_mul for interval calculations

* refactor timer scheduler

* chore: translate timer logs to english

* fix timer clippy warnings

* fix profile auto update refresh

* fix duplicate profile update notification

* fix: prevent potential panic in lightweight timer setup

* fix profile update listener cleanup

* Revert "fix duplicate profile update notification"

This reverts commit 4aafa94d3e.
2026-05-22 04:30:48 +00:00
Tunglies bedcb8a07c fix: update tauri-plugin-mihomo and related dependencies
close #7073
2026-05-21 18:34:47 +08:00
Tunglies 8efbf9e7fd fix: clippy errors for rust 1.97 2026-05-21 12:48:48 +08:00
Tunglies c7a989b484 fix(macOS): improve tray speed rendering attributes 2026-05-21 12:41:51 +08:00
Tunglies d05ead9cdd chore: track tauri-plugin-mihomo main updates 2026-05-21 12:16:17 +08:00
AetherWing bdbc617aff fix: disable WebView2 general autofill (#7062) 2026-05-21 04:01:31 +00:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 0113086d2a chore(deps): update cargo dependencies (#7060)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-20 21:26:20 +08:00
renovate[bot]renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>TungliesTunglies
631c9d1b61 chore(deps): update cargo dependencies (#6932)
* chore(deps): update cargo dependencies

* MSRV 1.95.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
Co-authored-by: Tunglies <tunglies.dev@outlook.com>
2026-05-20 13:11:02 +00:00
Tunglies 46fb817fe4 chore:bump version to 2.5.2 2026-05-20 14:27:32 +08:00
Christine. 6ebdaaa7ff fix: switch node slowly on Windows (#7052) 2026-05-20 14:21:24 +08:00
Tunglies 6f36613103 chore: bump version to 2.5.1 2026-05-19 14:01:41 +08:00
Tunglies 69c75e92f4 Release 2.5.0 2026-05-19 13:07:20 +08:00
Tunglies 977783e39c refactor: simplify media unlock results 2026-05-18 23:14:27 +08:00
Tunglies 09e491885f fix: stop disabled system proxy guard
close #7004
2026-05-18 21:31:19 +08:00
Tunglies edf5246e7f fix: mask subscription URLs in backend logs 2026-05-17 13:13:16 +08:00
Tunglies 4ade3a840f refactor: run exit cleanup on exit request 2026-05-17 00:47:25 +08:00
Tunglies 07cbecb01d fix: prevent lightweight mode exit cleanup (#6973)
close #6973
2026-05-17 00:28:11 +08:00
Tunglies bd10ef8ec9 fix: improve youtube premium unlock check 2026-05-16 01:11:34 +08:00
Tunglies 662dd20be1 fix(linux): show window after page load #7002 2026-05-14 21:52:03 +08:00
Tunglies b7ae54b9f3 fix(wayland): disable webkit dmabuf renderer on legacy wayland versions (<1.23) #6999 (#7000) 2026-05-14 21:11:08 +08:00
Tunglies d79ad8976a chore: bump tauri-plugin-mihomo to 0.1.8 2026-05-13 02:18:29 +08:00
Tunglies e538fa0573 fix: comment out useless exit handling 2026-05-11 00:11:02 +08:00
Tunglies 3956b0d034 fix(tray): include macOS speed text in click target 2026-05-09 02:32:27 +08:00
Tunglies 178b33beef Release 2.5.0-rc 2026-05-06 16:25:23 +08:00
wonfen 2056930f9f fix: preserve reqwest error chain for TLS fallback detection 2026-05-01 20:49:34 +08:00
Tunglies 20808c0c11 fix(sysproxy): preserve global proxy apply order #6760, #6832, #6790, #6793, #6801 2026-04-30 19:17:50 +08:00
Tunglies 13fb18ceaf fix: debounce toggle hotkeys #6796 (#6905) 2026-04-29 05:03:08 +00:00
wonfen 33d7988ac9 feat: retry subscription downloads with webpki roots on TLS failures 2026-04-27 08:43:30 +08:00
Tunglies b85b435e00 refactor: structure config validation outcomes
- Replace boolean/string validation results with structured ValidationOutcome values across config validation, profile switching, DNS validation, and script validation. Callers can now distinguish valid, invalid, skipped, and busy states, with invalid results carrying an error kind and message.

- Route core config updates through structured outcomes and checked forced updates. Generation and validation failures now discard runtime drafts and surface validation failures instead of relying on empty success messages.

- Preserve existing frontend ergonomics by keeping boolean service wrappers where callers only need success, while direct DNS and script validation consumers receive ValidationOutcome. Failed profile editor saves reload the backend-restored file content and synchronize Monaco models so reopened editors show the restored state.
2026-04-25 13:31:08 +08:00
Tunglies 762f9a96fd refactor media unlock task collection 2026-04-24 20:20:50 +08:00
Tunglies 4e62bcf7b8 chore: migrate service to 2.3.0
- Bump clash_verge_service_ipc to 2.3.0 and refresh the lockfile for its updated dependency graph.

- Re-check the running service version after install/start so a stopped old 2.2.0 service is reinstalled before use.
2026-04-24 18:59:42 +08:00
wonfen 4d408a8c1a fix: serialize OS state reads with in-progress update_sysproxy 2026-04-22 12:20:26 +08:00
Tunglies 4718c80498 chore(windows): bump sysproxy-rs to 0.5.4 2026-04-16 13:38:46 +08:00
Tunglies 30ed2ac829 feat(runtime): cap tokio worker threads at 16 and scale blocking threads (#6261)
This prevents the runtime from spawning an excessive number of threads on
high-end CPUs, reducing memory footprint and context switching.
Introduces a dynamic cap for worker threads (max 16) and scales
blocking threads proportionally. Includes thread naming for diagnostics.
2026-04-15 08:38:19 +00:00
sgt57andTunglies 8c7b5abcb5 fix(tun): restart core when tun mode is toggled to true on linux (#6800)
* fix(tun): restart core when tun mode is toggled to true on linux

* fix(changelog): add note for Linux TUN not taking effect immediately

---------

Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
2026-04-15 14:08:17 +08:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 87810c18df chore(deps): update rust crate nanoid to 0.5 (#6803)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-14 09:09:36 +00:00
renovate[bot]renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Tunglies
a4c537541e chore(deps): update rust crate rust-i18n to v4 (#6784)
* chore(deps): update rust crate rust-i18n to v4

* fix: migrate rust-i18n to v4 with Cow-first zero-copy approach

- Adapt to v4 breaking changes: available_locales!() returns Vec<Cow<'static, str>>
- Cache locales in LazyLock<Vec<Cow<'static, str>>> to avoid repeated Vec alloc + sort
- Propagate Cow<'static, str> through resolve/current/system_language APIs
- Fix t! macro args branch: into_owned() + Cow::Owned for type correctness
- Eliminate double resolve in sync_locale (skip redundant set_locale indirection)
- Replace .to_string() with .into_owned() / Cow passthrough in updater.rs

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
2026-04-12 11:11:16 +00:00
Tunglies 749b6c9e30 feat(script): convert script execution to async and add timeout handling 2026-04-12 11:20:28 +08:00
Tunglies e6a88cf9c9 refactor: improve service manager initialization by reducing lock duration 2026-04-12 11:15:34 +08:00
Tunglies 0f41f1bc8d refactor: optimize deep_merge function using iterative stack approach 2026-04-12 11:13:17 +08:00
Tunglies a6687a3839 feat(tls): refactor TLS configuration to use static Lazy instance 2026-04-12 03:28:24 +08:00
Tunglies 20fddc5cff feat: add bytes dependency and optimize buffer handling in test_delay function 2026-04-12 03:26:48 +08:00