Commit Graph
4306 Commits
Author SHA1 Message Date
Tunglies fc2ff69bdb fix(proxy): stabilize proxy group sticky scroll #6982
Close #6982
2026-05-16 02:48:51 +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 a60ef75061 perf: lazy load monaco editor 2026-05-14 02:31:20 +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
mocxda1andmocxda1 d58b054d93 fix(hotkey): parse key 'OS' as 'CMD' instead of keeping 'OS' clash-verge-rev#6899 (#6967)
Co-authored-by: mocxda1 <mocxda1@imashr.com>
2026-05-10 09:07:39 +00:00
Tunglies 165cc685bb chore: flag report-style PR bodies in AI review 2026-05-10 17:17:43 +08:00
Tunglies 243594c5d1 fix: isolate titlebar drag region #6968 2026-05-10 16:16:11 +08:00
Tunglies 753dad7c40 fix: move connection columns control 2026-05-10 13:21:06 +08:00
Tunglies 3956b0d034 fix(tray): include macOS speed text in click target 2026-05-09 02:32:27 +08:00
Tunglies 1d28cf7b5a style: improve update notes readability 2026-05-07 14:03:37 +08:00
Tunglies 8c1c143b5e fix: render GitHub alert syntax in update notes 2026-05-07 13:44:07 +08:00
Tunglies d0198a92e8 fix: publish existing draft release by id v2.5.0-rc 2026-05-06 21:17:42 +08:00
Tunglies 7e6c2f48fa fix: keep intermediate release uploads as draft 2026-05-06 19:25:58 +08:00
Tunglies 178b33beef Release 2.5.0-rc 2026-05-06 16:25:23 +08:00
wonfen db0fee7894 feat: add sticky scroll for proxy groups 2026-05-03 03:55:50 +08:00
wonfen 2056930f9f fix: preserve reqwest error chain for TLS fallback detection 2026-05-01 20:49:34 +08:00
renovate[bot]Tungliesrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
a956dcdf20 chore(deps): update github actions (#6931)
* chore(deps): update github actions

* chore: recompile pr-ai-slop-review lock file using gh aw compile

Agent-Logs-Url: https://github.com/clash-verge-rev/clash-verge-rev/sessions/69606ef7-4150-42d4-bee7-f7641d423455

Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
2026-05-01 04:50:42 +00: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
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> aca08269da chore(deps): lock file maintenance (#6855)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-01 04:41:05 +00:00
Tunglies 51c1ccec0a chore: fix renovate cargo workspace updates 2026-05-01 12:48:44 +08:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> aae792127f chore(deps): update dependency react-i18next to v17.0.6 (#6914)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-30 13:05:31 +00:00
renovate[bot]Tungliesrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
8fe79aee66 chore(deps): update github actions (#6861)
* fix(ui): reduce idle traffic graph redraws

* fix(sysproxy): preserve global proxy apply order #6760, #6832, #6790, #6793, #6801

* chore(deps): update github actions

---------

Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-30 13:04:55 +00: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
Tunglies f7c21c2e60 chore: update renovate lockfile maintenance 2026-04-29 12:04:42 +08:00
Tunglies 6e0647f7b2 perf: narrow app data subscriptions 2026-04-29 10:18:03 +08:00
wonfen 33d7988ac9 feat: retry subscription downloads with webpki roots on TLS failures 2026-04-27 08:43:30 +08:00
Tunglies 5b738a9d7a fix(logs): preserve logs when pausing (#6902) 2026-04-26 18:53:16 +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 5882722031 chore: update changelog for front-end performance optimizations 2026-04-25 01:38:54 +08:00
Tunglies 549f21961c perf: reduce frontend subscription and raf churn 2026-04-25 01:12:45 +08:00
Tunglies d9ae7578ce perf: reduce traffic update allocations 2026-04-25 00:17:47 +08:00
Tunglies e0b9f8a48b perf(frontend): optimize traffic graph rendering 2026-04-24 22:27:05 +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
Tunglies ddb52c8b5a fix(build): support service IPC release archives
- Resolve the latest clash-verge-service-ipc release tag with the existing version cache.

- Download the per-target service archive and extract service, install, and uninstall binaries to their existing platform-specific destinations.

- Preserve mihomo/resource download behavior and allow scripts/*.mjs through ESLint project service for hook linting.
2026-04-24 18:47:05 +08:00
wonfen 4d408a8c1a fix: serialize OS state reads with in-progress update_sysproxy 2026-04-22 12:20:26 +08:00
Tunglies 1eb194d0f9 fix(core): streamline core change process and ensure version mutation after upgrade 2026-04-22 00:55:16 +08:00
Tunglies ff4204a1a4 fix(workflow): enhance AI slop review criteria and clarify assessment focus 2026-04-22 00:11:44 +08:00
Tunglies f03a56dc42 chore: cargo-audit workflow 2026-04-21 23:50:59 +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 bf2fccac1f fix(ui): prevent proxy update when disabled #6849 2026-04-19 23:11:07 +08:00
Tunglies 72394eb9b7 feat(ui): add QR code sharing for remote profiles
Add "Share QR Code" context menu item to remote profile cards.
2026-04-19 22:20:17 +08:00
Tunglies d203121abe perf(ui): reduce CPU and memory pressure on hot frontend paths
WebSocket hooks (use-connection-data, use-log-data)
- Single-pass merge for connection snapshots; reuse previous row reference
  when upload/download are unchanged so downstream memos can bail out
- Single-allocation cap on closedConnections (no double concat+slice)
- Single-allocation clamp in appendLogs
- Cache dayjs().format result within each 50ms log flush window

Connection table (connection-table.tsx)
- Decouple 5s relative-time tick from columnDefs via shared module-level
  tickStore + memoised RelativeTimeCell so the tick no longer rebuilds
  the table
- RowComponent memo with custom comparator (relies on stable row reference)
- Lift sx objects to module scope
- Stable onShowDetail via ref

App data provider (app-data-provider, app-data-context)
- Split monolithic context into six sub-contexts (Proxies/Rules/ClashConfig/
  System/Uptime/Refreshers); 3s uptime ticks no longer invalidate unrelated
  consumers
- useAppData adapter aggregates sub-contexts; consumer files unchanged
- useStableFn helper stabilises all refresh* callback identities
- Extract useCtx helper to remove repeated null-check boilerplate

Canvas traffic graph (enhanced-canvas-traffic-graph, use-traffic-monitor)
- Lift Y-axis scale (max/min) to drawGraph layer; calculateY allocations
  per frame: ~600 -> 1
- Document visibility gate stops RAF and the setNow interval when the
  window is hidden; appendData unaffected
- Reuse the existing visibilitychange listener instead of adding a second
  one; isDocumentVisibleRef guards animate() inside the frame
- Convert forEach arrow shorthands to block bodies
- Drop unnecessary state-setter deps from a useCallback

Proxy groups (proxy-groups, proxy-render, use-render-list)
- Narrow proxyColItemsMemo dep: headState -> headState.showType
- Per-group fingerprint cache + prevListRef in use-render-list; steady-state
  refetch ticks become O(0) and the list reference stays stable when nothing
  changed
- useStableCallback wraps handleCheckAll / handleLocation
2026-04-19 19:33:23 +08:00
Tunglies b1eb011050 refactor(ui): extract useProxyDelayState hook and tighten types
- Extract shared delay state logic from ProxyItem and ProxyItemMini
  into `useProxyDelayState` hook (src/hooks/use-proxy-delay-state.ts);
  JSX display thresholds preserved per-component.
- Deduplicate rAF/setTimeout/Promise scheduling in DelayManager via
  a private `scheduleOnNextFrame` helper.
- Drop no-op `useMemo(() => MODES, [])` in proxies page.
- Replace `any` on `setClashLog` prev params and layout-traffic sx
  objects with proper types (`pre!`, `Pick<BoxProps|...>`).
2026-04-19 17:25:57 +08:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 4997365ac4 chore(deps): update dependency react-i18next to v17.0.4 (#6838)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-18 14:53:04 +00:00