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
Tunglies
16c3dcc616
fix(proxy): check if proxy port is in use #5891
2025-12-20 19:11:27 +08:00
Slinetrac
5afe11e55b
fix(monaco): disable MUI Dialog focus enforcement for Monaco editor #5885
...
Closes #5885
2025-12-20 16:12:45 +08:00
Cactus and Slinetrac
57b17ab8d3
feat: add navigation collapse functionality to layout ( #5815 )
...
* feat(layout): add collapsible navbar toggle in UI settings
* refactor(layout): adjust collapsed navbar styles
* docs: Changelog.md
---------
Co-authored-by: Slinetrac <realakayuki@gmail.com >
2025-12-19 18:15:20 +08:00
Sline
fc84dc561c
feat(notice): persist toast position preference ( #5621 )
...
* feat(notice): persist toast position preference
* docs: Changelog.md
2025-12-19 18:04:23 +08:00
Sline
bd8eccdcea
feat(backup): add local backup import flow ( #5669 )
...
* feat(backup): add local backup import flow
* refactor(backup): robustify history listing and propagate import error details
* docs: Changelog.md
2025-12-19 17:46:31 +08:00
Slinetrac
b6af7b7440
fix(tun): set auto-redirect default to false to improve cross-distro compatibility #5845
...
Closes #5845
2025-12-17 16:20:06 +08:00
Slinetrac
bae65a523a
chore: rename files to kebab-case and update imports
2025-12-09 13:52:42 +08:00
Sline
afee21dae4
refactor: unify Mihomo WS subscription with shared hook ( #5719 )
...
* refactor: unify Mihomo WS subscription with shared hook
* refactor: relocate clash log hook and streamline services
* docs: Changelog.md
2025-12-04 14:58:03 +08:00
Slinetrac
3cf51de850
refactor: reorganize component and hook structure; remove unused modules
2025-12-04 12:51:22 +08:00
Slinetrac
32a5044026
fix(updater): compute real download progress and stabilize progress bar states
2025-12-02 11:06:10 +08:00
Slinetrac
45d4f0e89c
chore: remove meta-json-schema #5656 #5478
2025-11-29 15:10:41 +08:00
Slinetrac
affdfc045e
fix(backup-config-viewer): add top margin to WebDAV address field to prevent floating label from overlapping dialog title
...
Closes #5608
2025-11-26 17:13:05 +08:00
Sline
caca8b2bc4
refactor: debugLog for frontend ( #5587 )
2025-11-25 10:01:04 +08:00
Sline
8e8182f707
refactor(app-data): split monolithic context into focused SWR hooks ( #5576 )
...
* refactor(app-data): split monolithic context into focused SWR hooks
* refactor(swr): unify polling and consolidate proxy/config/provider data flow
2025-11-24 16:18:31 +08:00
Tunglies
44adf55975
fix(proxy): sync system proxy switch state with background highlight #5240 , #5439 , #5421 , #4651 , #4536
...
Fixed race condition where button state and background color would desync
during rapid toggles or slow backend responses.
Root causes:
- Button used actualState while background used configState
- toggleSystemProxy returned immediately via setTimeout(0), releasing lock
before backend operation completed
- 100ms delay in updateProxyStatus caused visual flash
Changes:
- Unified state source: both button and background now use actualState
- Made toggleSystemProxy truly async with proper await chain
- Wrapped toggle function with useLockFn to serialize operations
- Reduced state refresh delay from 100ms to 50ms
- Fixed GuardState lock release timing for async operations
- Added proper error rollback with state refresh on failure
Resolves issue where proxy toggle button would show as off while
background remained green, or vice versa.
2025-11-23 12:17:52 +08:00