Commit Graph
100 Commits
Author SHA1 Message Date
wonfen 81ce247ecc fix(service): repair initial owner identity and extend readiness wait 2026-09-21 17:32:48 +08:00
wonfen c6a4de1c6a fix(service): require exact version match and uninstall before reinstall 2026-09-21 07:52:51 +08:00
wonfen 433cd0628f fix(dns): replace configured override fields and prepare v2.5.5 2026-09-21 07:33:06 +08:00
wonfen 73ea0fbd80 fix(dns): keep profile values the override leaves blank or off
Refs #7292 #7933
2026-09-20 15:08:33 +08:00
wonfen 04a2a09368 fix(linux): restore SELinux service startup with v2.7.2
Upgrade clash_verge_service_ipc and bundled service downloads to v2.7.2,
which labels runtime-installed executables before publication and repairs
existing core labels instead of timing out waiting for service IPC.

Register persistent bin_t rules for production and development service
binaries and cores in the RPM post-install script. Support older semanage
versions, apply rules to existing directories, and warn when optional
SELinux tools are unavailable.

Refs: #7965
2026-09-19 23:58:29 +08:00
wonfen f6fdb34745 perf(home): render proxy dropdown options on demand 2026-09-18 00:41:54 +08:00
wonfen 65ed8d3cf2 fix(home): stabilize proxy group and node dropdowns 2026-09-18 00:26:40 +08:00
wonfen a36dcd319f CI: update autobuild time 2026-09-17 11:03:03 +08:00
wonfen 9a879dd8d8 fix(service): fall back to elevated sidecar on path permission rejection
Preserve TUN settings and restore proxy operation after fallback.
Deliver fallback notices after UI subscription and stop retrying
deterministic bundle refusals. Publish fallback state atomically
and avoid conflicting service startup notifications.
2026-09-17 00:00:39 +08:00
wonfen f58e0a0af5 fix(service): stage approved cores during Windows service installation 2026-09-15 16:09:54 +08:00
wonfen d289a608d9 refactor(sysproxy): delegate macOS network monitoring to sysproxy-rs 2026-09-14 22:10:33 +08:00
wonfen 1d9bca13c8 chore(deps): bump clash-verge-service-ipc to v2.7.0
The service installer now admits the staged core copies through Windows
Firewall, so TUN system/mixed stacks pass traffic in service mode again
without users re-allowing the new path by hand.

Refs #7915
2026-09-14 18:33:53 +08:00
wonfen f4651061d2 chore: bump version 2026-09-11 23:07:13 +08:00
wonfen bea03e1a09 fix: preserve custom TUN fields and sync service provider caches
Limit GUI authority to saved TUN fields while preserving custom overrides.

Sync provider caches after service startup, reloads and updates.
Publish copies atomically with session, runtime and cache metadata checks.
2026-09-11 20:44:58 +08:00
wonfen ed0e1b38f0 feat(proxy): support dragging to swap proxy group header sections 2026-09-10 21:39:46 +08:00
wonfen 92624108c9 docs: add privacy 2026-09-10 00:01:22 +08:00
wonfen f60839097c chore: update changelog 2026-09-09 23:20:44 +08:00
wonfen f8b69b5d62 fix(sysproxy): tell the window when a background apply lands 2026-09-07 22:19:51 +08: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
wonfen ef042ddf82 fix(sysproxy): stop turning a missing network service into a hard failure 2026-09-02 11:46:37 +08: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
wonfen 632c5b2bc5 fix(windows): repair a data root owned by another account 2026-08-30 11:45:04 +08: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
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
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
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
wonfen 9b9feb9a39 fix: handle proxy cleanup failures during app exit 2026-08-19 20:04:21 +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
wonfen 2436d5cf6a fix(prebuild): stop pnpm build from re-preparing resources 2026-08-18 23:03:54 +08: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
wonfen ac37945ee4 chore: bump service version to 2.6.2 2026-08-16 21:31:54 +08:00
wonfen c8e248f3ed fix: remove unused notice service export 2026-08-15 06:56:31 +08:00
wonfen 0844ed30a8 fix(core): only fail the macOS listener guard on real bind conflicts
Guard addresses can vanish or fail to bind for reasons unrelated to the
port, and probe_claims turned that into a persisted mixed-port fallback.
2026-08-14 22:01:21 +08:00
wonfen ec53608a70 sytle: change filter icon 2026-08-10 12:30:17 +08:00
wonfen b98c9be7db fix: keep current proxy menus interactive 2026-07-29 15:36:07 +08:00
wonfen 7e0cf4f9f6 fix: remove invalid platform reference from macOS dev anchor 2026-07-29 14:15:01 +08:00
wonfen 98d70978e4 fix(service): keep health probes and sidecar fallback consistent 2026-07-29 12:39:24 +08:00
wonfen 593ac07f03 fix(service): restore sidecar fallback after failed actions 2026-07-29 11:22:10 +08:00
wonfen 389c5342e5 fix(service): harden transient IPC handling 2026-07-26 06:31:32 +08:00
wonfen 2fc831de27 chore: remove promotion 2026-07-26 01:29:44 +08:00
wonfen ece3c71f38 feat(proxies): add empty-state troubleshooting guidance 2026-07-26 01:28:49 +08:00
wonfen e599a9d02c fix(service): avoid sticky availability probes 2026-07-25 15:22:46 +08:00
wonfen 91d0643b5c chore: update service-ipc version 2026-07-25 03:34:48 +08:00
wonfen bce83d5c6f chore: update i18n 2026-07-24 11:53:50 +08:00
wonfen 82c486923b fix(CI): tg notify error 2026-07-24 09:33:35 +08:00
wonfen 6219452168 chore: update changelog 2026-07-21 12:13:46 +08:00
wonfen fd70d4c62b fix(enhance): make GUI TUN config authoritative 2026-07-20 12:33:47 +08:00
wonfen 50d828d0d7 fix(profile): handle missing chain files without breaking rollback 2026-07-19 08:44:24 +08:00
wonfen 4b04d035b6 fix(profile): schedule imported profiles for auto-update 2026-07-19 06:39:48 +08:00
wonfen b31437f727 fix(ci): pin release target commit 2026-07-18 15:33:43 +08:00
wonfen b7978705af fix: support VLESS xhttp and normalize IPv6 addresses 2026-07-17 23:51:29 +08:00
wonfen bdeaf2a062 perf: improve drag performance for large profile lists 2026-07-17 03:08:22 +08:00
wonfen f09aef170d fix(proxy): preserve runtime proxy group order 2026-07-16 06:53:21 +08:00
wonfen d144e78aeb perf: streamline profile switching 2026-07-16 05:52:10 +08:00
wonfen 6ea7f544b2 fix: dispatch frontend events on main thread 2026-07-16 04:27:47 +08:00
wonfen cd20bdb6a1 fix: safely restore selected proxy nodes 2026-07-16 04:16:42 +08:00
wonfen 6c149d6234 chore: update service-ipc version 2026-07-16 02:42:54 +08:00
wonfen 993cc2ffb1 fix(core): skip service wait for elevated TUN startup 2026-07-15 04:30:55 +08:00
wonfen 6f9fb97b31 fix: clippy 2026-07-13 11:09:13 +08:00
wonfen eaf4fc2c17 fix: handle empty HTTP request timeout in profile editor 2026-07-13 01:31:44 +08:00
wonfen 7155047e02 fix(backup): accept numeric UTC WebDAV dates 2026-07-13 01:21:26 +08:00
wonfen 604fdb9252 chore: update changelog 2026-07-12 04:20:14 +08:00
wonfen 2557e9a222 fix(ci): preserve release metadata during builds 2026-07-10 03:32:34 +08:00
wonfen 7085d2bea7 fix(scripts): harden publish-version tag creation 2026-07-09 14:24:08 +08:00
wonfen 979defc070 fix: prevent rules editor from clearing custom rules before load 2026-07-09 13:46:24 +08:00
wonfen b3f07acb5b fix: limit mihomo yaml wildcard quoting to fake-ip-filter 2026-07-06 06:49:43 +08:00
wonfen 49ea0cd5df fix(config): remove redundant write that clobbered global hotkey setting 2026-07-05 01:10:56 +08:00
wonfen ac156afc99 fix: macos CI 2026-07-04 23:25:19 +08:00
wonfen 4fa2f9a329 fix(macos): recover webview and stop ws leak after render process terminate 2026-07-04 09:39:44 +08:00
wonfen 336bd9d735 fix(enhance): protect app-owned config from manual overrides 2026-07-04 07:45:13 +08:00
wonfen af0518d578 fix: guard app setup panics during startup 2026-07-01 11:51:22 +08:00
wonfen deae6442a7 fix(backup): make WebDAV directory creation idempotent 2026-06-29 12:09:55 +08:00
wonfen 3b52fceca1 fix: DNS overrides could not be edited in advanced mode 2026-06-29 11:31:57 +08:00
wonfen 294955cb8c feat: add fake-ip-range6 2026-06-28 13:08:55 +08:00
wonfen 86072e599d chore: update change log 2026-06-28 07:48:47 +08:00
wonfen b7157fac15 fix(core): serialize core lifecycle transitions
Add a lifecycle lock around core start, stop, restart, and service handoff
paths. Make start_core idempotent, skip startup while exiting, and roll
back running mode after startup failures so later retries are not blocked.
2026-06-28 07:23:57 +08:00
wonfen 7cad713cac chore: update clash-verge-service-ipc version to 2.3.1 2026-06-28 04:34:44 +08:00
wonfen 1112f0730d fix(core): improve service startup and cleanup reliability
Wait longer for slow Windows service startup, then hand off from sidecar
to service when it becomes ready. Retry service core startup during the
handoff window, and clean up root-owned macOS service core/IPC leftovers
before uninstalling the service.
2026-06-28 04:34:01 +08:00
wonfen 1e44bafa79 fix(service): notify users about macOS App Translocation
Show a delayed localized error notice when Clash Verge is running from a
translocated temporary path and no stable core path can be resolved.
2026-06-28 03:48:13 +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
wonfen 5a96fdd9a2 fix: harden home clash-mode card against /configs read failures
Recover from controller read/switch failures on the mode card instead of
showing a bare "communication error":

- fall back to the tolerant get_clash_mode command (then runtime config)
  when the live /configs mode is unavailable,
- optimistically reflect the clicked mode and write it through to the
  getClashConfig cache so a failed refetch can't flash back the old value,
- surface patch failures via showNotice on both the home card and the
  proxies page (patchClashMode can now reject), and
- revalidate getClashMode/getRuntimeConfig on refresh-clash-config so a
  once-empty fallback can recover.
2026-06-27 15:30:20 +08:00
wonfen d0d2f4e4f5 fix: read clash mode tolerantly and propagate mode-switch failures
The home mode card read the proxy mode only from mihomo's /configs (strict
BaseConfig); when that response drifted a single field, the whole read
failed and the card showed a bare "communication error". patch_clash_mode
also swallowed backend PATCH failures and always returned Ok, so the UI
could not tell a switch had actually failed.

- add a tolerant get_clash_mode command that reads mode from the saved
  clash config (IClashTemp::get_mode), bypassing strict BaseConfig
  deserialization, and
- make change_clash_mode return Result and have patch_clash_mode propagate
  it; the hotkey/tray callers log-and-ignore as before.
2026-06-27 15:30:20 +08:00
wonfen b4a490fbeb doc: add Sponsor 2026-06-21 00:28:43 +08:00
wonfen a44173e3c7 chore: add Friendly reminder 2026-06-19 00:14:11 +08:00
wonfen 7e233efd10 feat: add reset button to Global script 2026-06-18 15:13:38 +08:00
wonfen 2828782e4c chore: update sysproxy-rs 2026-06-07 23:44:17 +08:00
wonfen 2cb9c13ab6 feat(cvd): add device-bound subscription protocol 2026-06-02 13:43:54 +08:00
wonfen 43843f1eca chore: change texts 2026-05-28 13:04:33 +08:00
wonfen aa478bfe1a docs: remove Promotion 2026-05-24 13:14:59 +08:00