Commit Graph
2311 Commits
Author SHA1 Message Date
Tunglies d8b94d12dd perf(core): batch close connections on mode change 2026-09-04 18:20:39 +08:00
❤是纱雾酱哟~ a640010bc3 fix(clippy): Restrict 2 imports to macOS only (#7858)
* fix(clippy): Remove 2 unused imports

- Drop 2 unused imports according to clippy suggestions

* fix(clippy): Re-add 2 imports and limit to macOS

- Those "unused imports" are only for Windows and Linux
- macOS environment requires those identifiers
2026-09-03 22:31:19 +00:00
wonfen c0c1fbcfc2 refactor(sysproxy): watch the network from the main run loop 2026-09-03 22:42:50 +08:00
wonfen e57d115110 feat(sysproxy): re-apply the proxy when macOS gains a network service 2026-09-03 22:42:49 +08:00
wonfen c89f431cb0 fix(sysproxy): wait for the network before the login-time proxy write 2026-09-03 22:42:49 +08:00
oomeow 86b5493a9d fix: windows shutdown being blocked (#7848)
make tauri-plugin-devtools and console-subscriber optional
2026-09-02 06:47:07 +00:00
wonfen ef042ddf82 fix(sysproxy): stop turning a missing network service into a hard failure 2026-09-02 11:46:37 +08:00
oomeow f5cc24ec9f chore: update tauri-plugin-mihomo dep (#7847)
* chore: update tauri-plugin-mihomo dep

* refactor(tauri): remove unnecessary await from clear_all_ws_connections
2026-09-01 13:26:35 +00:00
wonfen e60285b4ae fix(tun): make the TUN switch reflect what the Core actually runs
The switch read enable_tun_mode while the Core was given
enable_tun_mode && !session_suppression, so falling back to Sidecar left it
showing a TUN that was not running, with nothing to write the flag back.
Drop the session flag: the stored preference is the only truth, re-checked
at startup and written off when the conditions for it are not met, and the
switch renders it against current capability.
2026-08-31 17:09:36 +08:00
Tunglies 8611fdc34f chore(deps): update mihomo plugin 2026-08-30 18:34:11 +08:00
Tunglies 44f6f6e19b fix(profile): preserve files until explicit deletion 2026-08-30 14:34:28 +08:00
wonfen 632c5b2bc5 fix(windows): repair a data root owned by another account 2026-08-30 11:45:04 +08:00
oomeow 1b76b222fb fix(sysproxy): gsettings command is no longer mandatory on KDE desktop (#7829)
* fix(sysproxy): gsettings command is no longer mandatory on KDE desktop

* chore(tauri): update sysproxy dependency to use main branch

* chore(deps): update clash_verge_service_ipc to v2.6.6

* docs(changelog): add KDE proxy setting support note
2026-08-29 17:26:29 +00:00
Christine. 3503a2da29 fix: reset fake-ip-range6: "2001:2::0/64" as default on Tun Mode (#7811)
* fix: reset fake-ip-range6: "2001:2::0/48" as default on Tun Mode

* update: fake-ip-range6 to "2001:2::0/64"

* fix: sync test data
2026-08-26 00:24:28 +08:00
Tunglies 4c1df582ba fix(profile): propagate subscription update failures 2026-08-26 00:24:28 +08:00
Tunglies 695fadf21e fix(security): restrict external URL opening
Close: 7800
2026-08-25 16:11:47 +08:00
Tunglies b7c4f7d39b refactor: api cleanup (#7812)
* refactor(config): unify YAML persistence

* refactor(config): remove redundant config APIs

* refactor(config): remove unused config APIs

* refactor(config): narrow profile APIs

* fix(config): preserve profiles on invalid reorder

* refactor(startup): narrow resolve helpers

* refactor(config): unify mixed port defaults

* refactor(network): simplify response APIs

* refactor(config): make profile builders infallible

* refactor(config): make profile activation infallible

* refactor(api): simplify internal runtime APIs

* refactor: consolidate internal config and window APIs
2026-08-25 07:19:17 +00:00
wonfen 272c09568c fix(sysproxy): retry a transient system proxy write on Windows 2026-08-24 22:30:42 +08:00
wonfen 8df8edb6dd fix(sysproxy): keep the system proxy usable when the core is not ready 2026-08-24 19:32:52 +08:00
Tunglies 9085d907cd perf: reduce idle backend work 2026-08-24 18:42:49 +08:00
Tunglies eb6c81b00f feat(macos): adopt Icon Composer 2 app icon 2026-08-24 10:20:46 +08:00
Tunglies a1dae06791 chore(deps): update native service stack (#7792) 2026-08-23 09:58:50 +00:00
Tunglies 0d3f141f20 test: remove redundant backend coverage 2026-08-22 08:53:42 +08:00
Tungliesandwonfen 629c00dc4a fix(port): handle stale macOS wildcard guards
Co-authored-by: wonfen <eiwonfen@gmail.com>
2026-08-22 04:17:15 +08:00
Tunglies 2717aaadad fix: media unlock checking behavior (#7778)
* fix: Gemini test

* naming unlock

* test type

* refactor: deduplicate media unlock checks

* fix: run media unlock checks individually

* fix(media-unlock): satisfy clippy const lint

* fix: stream media unlock test results

* fix: streamline media unlock checks

* fix: force HTTP/1 for media unlock checks

* fix: limit concurrent media unlock checks

* feat: allow concurrent media unlock item checks
2026-08-21 21:27:27 +08:00
wonfen 19401b096d fix(core): clean up the displaced core after a failed upgrade restart
Windows publishes the core by moving the running binary aside, and only the
success path could delete it afterwards. A failed restart left it on disk,
and the uninstaller did not know about it either.
2026-08-21 19:32:15 +08:00
TungliesandTheodore b1e953e495 chore(macos): update liquid glass icon
Co-authored-by: Theodore <57642656+AlwaysExtraordinary@users.noreply.github.com>
2026-08-21 18:34:01 +08:00
wonfen 1b75ea34f9 fix(core): upgrade mihomo atomically instead of letting it self-update
mihomo's updater truncates its own running executable in place; macOS kills
that under Hardened Runtime and leaves a 0-byte core. Verge now downloads the
release, verifies a staged copy next to the target, and renames it into place,
which never touches the inode the running core executes from.

Closes #6834
2026-08-21 14:41:57 +08:00
oomeow e71cf0ec68 feat: watch linux theme changed (#7781)
* feat: add Linux theme change notifications and update dark-light dependency

* fix: remove unused tauri Emitter import

* update changelog

* fix: clippy

* fix: pnpm format
2026-08-20 16:09:16 +00:00
Tunglies 332097bc9f chore: bump clash-verge-service-ipc to v2.6.4 2026-08-20 22:30:13 +08:00
Tunglies 927d794285 chore: bump version to 2.5.4 2026-08-20 17:31:23 +08:00
wonfen 12c85162d6 fix(port): skip unsupported Windows transparent listeners 2026-08-20 08:57:09 +08:00
wonfen b80bca01da fix: unblock pre-push checks 2026-08-20 08:13:02 +08:00
349c635de0 fix(sysproxy): use platform-specific bypass separator (#7559)
* fix(sysproxy): use platform bypass separator

* refactor: squash conditional compilation logic

- Share a single `BYPASS_SEPERATOR` definition between both Linux and macOS

---------

Co-authored-by: Ayanami <ay@nami.ltd>
Co-authored-by: ❤是纱雾酱哟~ <49941141+Dragon1573@users.noreply.github.com>
Co-authored-by: oomeow <oomeow@outlook.com>
2026-08-19 13:55:40 +00:00
wonfen 9b9feb9a39 fix: handle proxy cleanup failures during app exit 2026-08-19 20:04:21 +08:00
Tunglies fc5fdbfea6 perf(proxy): reuse group order names 2026-08-19 15:49:03 +08:00
wonfen e15ddab542 test: trim redundant test coverage 2026-08-19 10:24:37 +08:00
wonfen 807f9a206d chore: trim excessive comments 2026-08-19 07:27:43 +08:00
oomeow daadb126e0 feat: allow manually unfixing proxy nodes (#7756)
* feat(proxy): add ability to clear persisted node selection for groups

* feat(hooks): make proxy selection operations asynchronous

* chore: update tauri-plugin-mihomo deps

* refactor: rename clear_selected_node to forget_selected_node

* refactor(hooks): rename isFixed to isFixedProxy in useProxySelection

* docs: update changelog with manual node cancellation support

* chore(layout): remove dev-only mihomo websocket debugging interval
2026-08-18 12:16:42 +00:00
wonfen 9fa0e91e25 fix(tun): fall back to sidecar when service is absent 2026-08-18 11:05:53 +08:00
wonfen 4c1804baf4 fix: improve validation termination guidance 2026-08-18 09:11:04 +08:00
wonfen 747a68ef2f fix(port): stop the mixed port climbing on every restart
The startup fallback persisted its replacement, so a port blocked once was never
asked for again. It now overrides the Runtime Config for the session only.

Most of those conflicts were not real: SO_REUSEADDR cannot reuse a TIME_WAIT
socket owned by another user, and a service-managed core runs as root while the
app does not. A refused bind is now confirmed by asking whether anything answers.

Also restores the borrowed port when saving proxy ports fails.
2026-08-17 23:30:21 +08:00
wonfen 906ec5e63a fix: serialize concurrent configuration updates 2026-08-17 19:19:54 +08:00
wonfen ec6241b30a feat(profile): raise auto-update intervals below 24h
Each auto-update reloads the core, which drops every connection running through a
`proxy-providers` entry. Existing profiles are corrected once at startup; the form
warns about shorter intervals but still saves them.
2026-08-17 12:14:24 +08:00
wonfen 73d986369c fix(timer): count the first update delay from the last update
The queue got a full interval from now while the UI counted from `updated`, so a
restart pushed every deadline back and the countdown could read "update failed".
Retiring a task disabled mid-update also keeps its state, so re-enabling it no
longer starts a second run alongside the first.
2026-08-17 12:14:20 +08:00
wonfen 4869e362e3 fix: report fatal singleton startup errors 2026-08-17 07:18:34 +08:00
Tunglies 3618ee1e05 fix(clippy): remove redundant formatting borrow 2026-08-17 00:42:59 +08:00
Tunglies 1feba6f073 perf(tray): skip proxy data when menu groups are disabled 2026-08-17 00:42:59 +08:00
wonfen ac37945ee4 chore: bump service version to 2.6.2 2026-08-16 21:31:54 +08:00
雨落 def7a9ce98 fix(enhance): use a lenient timeout for ipc service invoking. (#7558)
Signed-off-by: 秋雨落 <i@rain.cx>
2026-08-16 02:41:49 +00:00