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
Tunglies
2a397d7ef6
fix(settings): load network interfaces in allow LAN dialog
2026-05-24 15:41:15 +08:00
wonfen
15de400f2f
fix: align backup dialogs with in-app modal behavior
2026-05-20 10:24:11 +08:00
Tunglies
a60ef75061
perf: lazy load monaco editor
2026-05-14 02:31:20 +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
6e0647f7b2
perf: narrow app data subscriptions
2026-04-29 10:18:03 +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
1eb194d0f9
fix(core): streamline core change process and ensure version mutation after upgrade
2026-04-22 00:55:16 +08:00
Tunglies
bf2fccac1f
fix(ui): prevent proxy update when disabled #6849
2026-04-19 23:11:07 +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
71dc5f0bdb
chore(deps): update npm dependencies to v9 (major) ( #6819 )
...
* fix: replace DeleteOutline with DeleteOutlined icon in BackupHistoryViewer
* chore(deps): update npm dependencies to v9
* refactor: bump @mui to v9
---------
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com >
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-15 14:12:06 +00:00
9e5da1a851
feat(tray): 恢复并重构托盘显示速率功能 ( #6487 )
...
* feat(tray): 恢复并重构托盘显示速率功能
* docs(changelog): add tray speed feature entry for v2.4.7
* refactor(tray): 将托盘速率显示限制为仅 macOS
* chore(style): 统一托盘速率设置相关代码风格
* refactor(tray): 统一 speed 任务调度并移除循环内配置轮询
* chore(tauri): enable createUpdaterArtifacts for updater support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* refactor(tray): refine macOS tray speed formatting and two-line alignment
* refactor(tray): move to utils
* refactor(tray): improve macOS speed display formatting, alignment, and structure
* chore: 降级 Node.js 版本至 21.7.1
* refactor(tray): 优化 macOS 托盘速率流与显示逻辑
* refactor(tray): 将速率任务重构为独立控制器并切换至 /traffic 流
* refactor(tray): 缩短速率宽度
* refactor(tray): 收敛测速流抽象并修正停止清理时序
* docs(changelog): 更新变更日志
* refactor(tray): simplify speed formatting logic and remove redundant functions
* refactor(tray): optimize speed display logic and reduce redundant attribute initialization
* refactor(tray): enhance traffic event parsing and improve stale event handling
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com >
2026-04-09 14:40:32 +00:00
Tunglies
b8fbabae04
fix: frontend memory leaks — Monaco dispose, TQ cache eviction, useEffect cleanup
...
- Dispose Monaco editor instances on dialog close to prevent cycle leak
- Replace gcTime: Infinity with finite TTLs and evict orphaned subscription queryKeys
- Add missing useEffect cleanup for timers, move setTimeout out of useMemo
2026-04-05 23:10:45 +08:00
Tunglies
a73fafaf9f
refactor: migrate SWR to TanStack Query v5 ( #6713 )
...
Replace swr with @tanstack/react-query v5 across all hooks, providers,
and components. Introduce singleton QueryClient, WS subscription pattern
via useQuery+useEffect, and enforce component-layer cache access contract.
2026-04-03 08:15:51 +00:00
wonfen
51578c03b0
fix: URL test url
2026-04-03 12:13:04 +08:00
Tunglies
7a06a5a069
fix: remove dead localStorage writes and hardcoded key
...
- Remove unused `dns_settings_enabled` localStorage writes in
setting-clash.tsx — state is sourced from verge config, these
writes were never read anywhere.
- Replace hardcoded `'last_check_update'` localStorage read in
system-info-card.tsx with exported `readLastCheckTime()` from
the useUpdate hook, keeping the key in a single source of truth.
2026-03-29 02:06:08 +08:00
Tunglies
99bbd7ee5a
fix(home): unify last check update timestamp across settings and home page ( #6605 )
...
The settings page "Check for updates" did not update the homepage
"last check update time" because each page managed the timestamp
independently. Centralizes the timestamp in the useUpdate hook
via SWR + localStorage so both pages share a single data source.
Closes https://github.com/clash-verge-rev/clash-verge-rev/issues/6605#issuecomment-4147144987
2026-03-29 01:56:34 +08:00
wonfen
68ca01cfea
refactor: streamline proxy availability checks and remove redundant methods
2026-03-17 09:25:16 +08:00
wysha-object and Slinetrac
4ceb7e6043
feat: Allow toggling pause of traffic stats animation on blur ( #6463 )
...
* feat: Allow toggling pause of traffic stats animation on blur
* fix: React Hook useCallback has a missing dependency
* chore: i18n
---------
Co-authored-by: Slinetrac <realakayuki@gmail.com >
2026-03-16 08:17:12 +00:00
Slinetrac
c672a6fef3
refactor: lint ( #6511 )
...
* refactor: lint
* chore: remove eslint-plugin/config-prettier
2026-03-15 07:40:11 +00:00
Slinetrac
837508c02c
feat(monaco): reintroduce meta-json-schema ( #6509 )
...
* refactor(editor): make EditorViewer controlled and unify document state handling
* fix(monaco-yaml): add patchCreateWebWorker
* feat(monaco): reintroduce meta-json-schema
* fix(editor): reset document state on target change
2026-03-15 06:04:59 +00:00
Slinetrac
0bbf9407d8
feat(tun): validate route-exclude-address as CIDR ( #6440 )
...
* feat(tun): validate route-exclude-address as CIDR
* refactor(network): replace ipaddr.js helpers with cidr-block and validator
* docs: Changelog
2026-03-07 09:18:35 +00:00
wonfen
321017413d
chore: replace node test with cp.cloudflare.com
2026-02-21 14:28:27 +08:00
wonfen
ec6f259794
chore: replace node test with 1.0.0.1
2026-02-19 11:55:09 +08:00
wonfen
ddf455508f
chore: replace node test with 104.16.132.229
2026-02-14 04:41:14 +08:00
wonfen
cf9f235270
chore: replace node test with 8888
2026-02-12 14:52:36 +08:00
wonfen
afa591c279
chore: replace node test with 1.1.1.1
2026-02-07 04:21:01 +08:00
b17dd39f31
feat(tunnels): add tunnels viewer UI with add/delete support ( #6052 )
...
* feat(settings): add tunnels viewer UI and management logic
* docs: Changelog.md
* refactor(notice): remove redundant t() call
* refactor(tunnels): make proxy optional and follow current configuration by default
* refactor(tunnels): save after close dialog
* feat(tunnel): update check
* refactor(tunnels): merge import
* refactor(tunnels): use ipaddr.js
* docs: Changelog.md
* refactor(tunnels): enhance validation
* feat: add tunnels ti PATCH_CONFIG_INNER
* fix: sanitize invalid proxy references in tunnels
* refactor: use smartstring alias String
* docs: Changelog.md
* perf: optimize tunnels proxy validation and collection logic
---------
Co-authored-by: Slinetrac <realakayuki@gmail.com >
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com >
2026-01-29 09:32:37 +00:00
Tunglies
c57a962109
refactor: replace useSWR with custom hooks for update and network interfaces ( #6195 )
2026-01-27 12:52:20 +00:00
Tunglies
c7462716e5
refactor: reduce duplicated separately useSWR ( #6153 )
...
* refactor: reduce duplicated seperatlly useSWR
* refactor: streamline useSWR integration and improve error handling
2026-01-25 07:14:45 +00:00
Sline
93e7ac1bce
feat(webdav): cache connection status and adjust auto-refresh behavior ( #6129 )
2026-01-25 06:49:12 +00:00
Sline and Tunglies
440f95f617
feat(misc-viewer): optional delay check interval ( #6145 )
...
Co-authored-by: Tunglies <tunglies.dev@outlook.com >
2026-01-25 06:48:16 +00:00
Sline
fd98caccd2
revert: use-app-data ( #6088 )
...
* Revert "refactor(app-data): split monolithic context into focused SWR hooks (#5576 )"
This reverts commit 8e8182f707 .
# Conflicts:
# src/components/home/clash-info-card.tsx
# src/components/home/clash-mode-card.tsx
# src/components/home/current-proxy-card.tsx
# src/components/home/home-profile-card.tsx
# src/components/proxy/provider-button.tsx
# src/components/proxy/proxy-chain.tsx
# src/components/proxy/proxy-groups.tsx
# src/components/proxy/use-render-list.ts
# src/components/rule/provider-button.tsx
# src/components/setting/mods/sysproxy-viewer.tsx
# src/hooks/use-clash-data.ts
# src/hooks/use-current-proxy.ts
# src/hooks/use-shared-swr-poller.ts
# src/hooks/use-system-proxy-state.ts
# src/pages/rules.tsx
* docs: Changelog.md
2026-01-16 18:32:31 +08:00
Tunglies
a5f494bda2
fix: ensure external control source settings take effect immediately #6103
2026-01-16 18:27:21 +08:00
Slinetrac
b16cbd5379
feat(backup): restore starts automatically with loading overlay without closing dialog
2026-01-16 12:32:36 +08:00
Tunglies
e0c35c5ee3
fix: unexpected port in use error when change ports
2026-01-15 17:40:06 +08:00
Sline
a49000712d
feat(tun-viewer): route-exclude-address GUI support ( #6053 )
2026-01-10 10:50:44 +08:00
Slinetrac
13855b9bc2
perf(tun-viewer): run enhanceProfiles in background to avoid save blocking
2026-01-08 14:03:00 +08:00
Slinetrac
a981be80ef
refactor(base): expand barrel exports and standardize imports
2026-01-06 15:02:10 +08:00
Sline
ee5e5ee8a6
feat(sysproxy-viewer): add visual editor for bypass list with chips display ( #6007 )
2026-01-04 14:58:50 +08:00
Slinetrac
c18821288e
feat(sysproxy-viewer): make proxy bypass validation optional #4012
2026-01-03 17:10:10 +08:00
Slinetrac
c80c659180
fix(dns-viewer): disable spellcheck on DNS viewer text fields #5948
...
Closes #5948
2025-12-30 13:44:56 +08:00
Slinetrac
b53f54f3f4
fix(i18n): remove invalid i18n key usage
2025-12-27 09:24:15 +08:00
歳納七夏
2417d064e1
feat: allow disabling proxy groups in tray icon ( #5946 )
...
* feat: allow disabling proxy groups in tray icon
* feat: allow disabling proxy groups in tray icon (update i11n)
* feat: allow disabling proxy groups in tray icon (fix)
* feat: allow disabling proxy groups in tray icon (less nesting)
* feat: allow disabling proxy groups in tray icon (changelog)
2025-12-26 16:29:05 +08:00
Sline
65b4d8713d
refactor: windows autostart ( #5941 )
...
* refactor(windows-autostart): switch to scheduled tasks with user/admin split
* fix(schtasks): decode stdout/stderr using Windows OEM/ANSI code pages
* refactor(ui): remove admin auto-launch warning and clean i18n
* feat(windows): user-level auto-launch via task XML
* docs: Changelog.md
2025-12-26 14:42:21 +08:00
Slinetrac
0992556b4a
feat(update-viewer): support rendering HTML in update markdown #5932
...
Closes #5932
2025-12-23 20:48:14 +08:00
Sukka and Slinetrac
8e48e4ed10
chore(eslint): add eslint-plugin-react-compiler ( #5918 )
...
* chore(eslint): add `eslint-plugin-react-compiler`
* refactor: fix eslint warnings and avoid in-render mutations
---------
Co-authored-by: Slinetrac <realakayuki@gmail.com >
2025-12-22 12:51:20 +08:00
Slinetrac
23e551e384
feat(tray): add optional inline outbound modes in tray menu #5881
...
Closes #5881
2025-12-21 10:33:19 +08:00