Commit Graph
149 Commits
Author SHA1 Message Date
wonfen 7796259b03 feat: automatic mixed port fallback (#7579)
* feat: automatically select an available mixed proxy port

* fix: coordinate listener port changes

* fix: detect Windows listener port conflicts
2026-07-25 05:47:28 +08:00
wonfen 91d0643b5c chore: update service-ipc version 2026-07-25 03:34:48 +08:00
wonfen 23dda47641 feat: add launch guard and secure multi-user service ownership (#7569)
* feat(service): isolate macOS launch and owner runtime

* ci(windows): run owner security tests

* chore(deps): use kode-bridge v0.4.1 tag

* fix(macos): classify installed service state

* fix(macos): classify marked unavailable service

* fix(macos): gate core startup on service migration

* fix(macos): scope service init to supported platforms

* feat(macos): prompt before migrating installed service

* fix(macos): shorten sidecar IPC path

* build(service): pin helper protocol and artifacts

* fix(core): require confirmed service and sidecar readiness

* fix(macos): harden launch roots and singleton state

* fix(ui): refresh migration state before restart

* fix(macos): linearize service migration lifecycle

* fix(ui): keep service migration state fresh

* feat(service): track authenticated owner sessions

* fix(service): preserve newer owner sessions

* feat(macos): route service proxy changes through helper

* fix(macos): serialize service proxy guard

* fix(macos): close service proxy owner lifecycle

* fix(macos): close remaining proxy stop races

* fix(app): do not cancel controlled service stop

* fix(lifecycle): keep controlled updates cancellation-safe

* fix(macos): stage dev core for service

* test(macos): exercise staged core cleanup

* fix(dev): await controlled macOS exit

* chore: update changelog

* fix(macos): recover sidecar after service install failure

Allow the existing sidecar to continue when service installation leaves the manager in InstallRequired, then settle the session state as SidecarAllowed. Show neutral status text while the migration dialog waits for its final state.

* fix(macos): stage dev service tools before elevation

* fix(macos): localize launch guard prompts

* fix(service): address cross-platform integration issues

* feat: support seamless service migration

* fix: pass Windows service installer path safely

* fix(prebuild): derive service release from Cargo dependency

* fix(dev): preserve service installation state

* fix: resolve clippy warnings in service lifecycle
2026-07-24 09:01:49 +08:00
Tunglies 971dd37965 chore: bump version 2.5.3 2026-07-20 00:24:35 +08:00
cjcandwonfen 6e9288437f Related to #6759 (windows): ensure sidecar process dies with the main app (#6853)
* fix(windows): ensure sidecar process dies with the main app

* chore: fix clippy lints

* chore: fix TS2307 error on commit.

chore: Undo the changes about package.json and pnpm-lock.yaml

* Fix formatting errors caused by merging.

刚刚的合并让原本的函数少了个结尾括号

* fix(windows): close process handle after assigning sidecar to job object

* fix(windows): sidecar Job Object 错误改为向上传播并补充测试

将 job 创建逻辑抽为返回 Result<OwnedHandle> 的独立函数,任一 Win32 调用失败时
终止已 spawn 的子进程并返回 Err,不再静默降级。句柄由裸 isize 改为 OwnedHandle,
借助 RAII 自动关闭。新增 Windows 单元测试,覆盖 KILL_ON_JOB_CLOSE 生命周期
及无效 PID 的失败路径。

---------

Co-authored-by: wonfen <96291150+wonfen@users.noreply.github.com>
2026-07-19 07:30:38 +08:00
wonfen 6c149d6234 chore: update service-ipc version 2026-07-16 02:42:54 +08:00
wonfen 7155047e02 fix(backup): accept numeric UTC WebDAV dates 2026-07-13 01:21:26 +08:00
renovate[bot]renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Tunglies
8bf5fc1aca chore(deps): update cargo dependencies (#7377)
* chore(deps): update cargo dependencies

* fix aes feature

* fix: update aes-gcm nonce conversion

* refactor: use aes-gcm key init api

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
2026-07-06 06:14:15 +00:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 20ac214a83 chore(deps): lock file maintenance (#7389)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 00:20:55 +00:00
wonfen af0518d578 fix: guard app setup panics during startup 2026-07-01 11:51:22 +08:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 1d3a7107d9 chore(deps): update cargo dependencies (#7332)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-28 11:52:25 +00:00
wonfen 7cad713cac chore: update clash-verge-service-ipc version to 2.3.1 2026-06-28 04:34:44 +08:00
wonfen b7a454fedb chore: track tauri-plugin-mihomo fix/api-robustness branch
Pulls in the plugin's response-deserialization tolerance, connection-pool permit fix, single reqwest::Client reuse, and WebSocket secret encoding/redaction (cf97ff9).
2026-06-27 15:39:00 +08:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 9867a2af99 chore(deps): update cargo dependencies (#7307)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-19 06:52:34 +00:00
Tunglies f7ed126bb8 fix: update mihomo plugin config enum handling 2026-06-18 20:05:31 +08:00
Tunglies fd8c852698 fix: update mihomo plugin log handling 2026-06-18 19:18:10 +08:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 894c73d602 chore(deps): update cargo dependencies to 1.12.4 (#7260)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-16 04:39:34 +00:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> b7f8ca0a83 chore(deps): update cargo dependencies to 2.13.0 (#7225)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-09 13:25:21 +00:00
Tunglies 3c3d3f2443 fix: bump tauri-plugin-mihomo to 0.5.2 for better forward compatibility 2026-06-09 20:22:37 +08:00
wonfen 2828782e4c chore: update sysproxy-rs 2026-06-07 23:44:17 +08:00
Tunglies ca325f1cb8 feat: remove global-client-fingerprint
Ref: https://github.com/MetaCubeX/mihomo/commit/bd72c65b5e93c0790abb09b95d519aaf644c4b81
2026-06-07 14:36:18 +08:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> ee9d5126d3 chore(deps): update cargo dependencies (#7213)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-05 14:02:27 +00:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> f1df8afb76 chore(deps): lock file maintenance (#7170)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-02 13:22:09 +00:00
Tunglies fa27d3eae5 Revert "feat(cvd): add device-bound subscription protocol"
This reverts commit 2cb9c13ab6.
2026-06-02 21:02:19 +08:00
wonfen 2cb9c13ab6 feat(cvd): add device-bound subscription protocol 2026-06-02 13:43:54 +08:00
Siyuan LiangandTunglies 22c516f550 feat(sysinfo): return structured system info (#7122)
* feat(sysinfo): return structured system info

* refactor: simplify SystemInfo conversion and enhance Platform struct

---------

Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
2026-05-26 08:40:42 +00:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 8752130f75 chore(deps): update cargo dependencies (#7109)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-26 06:14:38 +00:00
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 d75c4cf59e fix: enable gzip subscription responses
docs: update changelog for gzip subscriptions
2026-05-25 22:59:11 +08:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> e25732eb9d chore(deps): update rust crate serde_json to 1.0.150 (#7084)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-22 11:04:24 +00: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 d05ead9cdd chore: track tauri-plugin-mihomo main updates 2026-05-21 12:16:17 +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 ae7915c66f chore: update tauri-plugin-mihomo to 0.1.9 2026-05-17 18:13:25 +08:00
Tunglies d79ad8976a chore: bump tauri-plugin-mihomo to 0.1.8 2026-05-13 02:18:29 +08:00
Tunglies 178b33beef Release 2.5.0-rc 2026-05-06 16:25:23 +08:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 19c6303d74 chore(deps): lock file maintenance (#6854)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 04:41:25 +00: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
Tunglies 711deccfcc fix(security): upgrade rustls-webpki to 0.103.13
Mitigates RUSTSEC-2026-0098: Incorrect URI name constraint validation.

- Update rustls-webpki from 0.103.11 to 0.103.13.
- Fixes a flaw where URI name constraints in certificates were
  incorrectly accepted, potentially allowing unauthorized names.

See: https://rustsec.org/advisories/RUSTSEC-2026-0098
2026-04-21 23:32:26 +08:00
Tunglies bcece774ce fix(deps): security update thin-vec to 0.2.16
Address RUSTSEC-2026-0103: Use-After-Free and Double Free in
IntoIter::drop when element drop panics.

- Upgrade thin-vec from 0.2.15 to 0.2.16.
- Mitigate potential memory corruption during panic unwinding.

See: https://rustsec.org/advisories/RUSTSEC-2026-0103
2026-04-21 23:30:50 +08:00
Tunglies 4718c80498 chore(windows): bump sysproxy-rs to 0.5.4 2026-04-16 13:38:46 +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]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> ac635c6370 chore(deps): lock file maintenance (#6794)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-13 13:12:47 +08: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 20fddc5cff feat: add bytes dependency and optimize buffer handling in test_delay function 2026-04-12 03:26:48 +08:00