1370 Commits

Author SHA1 Message Date
Slinetrac
882f1a2a4a
Revert "feat: imporve the layout of proxies page (#5647)"
This reverts commit 8c1caf8555beaba8b3b9e514f7d8fc60a6368219.
2025-11-29 20:40:45 +08:00
Slinetrac
45d4f0e89c
chore: remove meta-json-schema #5656 #5478 2025-11-29 15:10:41 +08:00
DengHanjie
8c1caf8555
feat: imporve the layout of proxies page (#5647)
* feat: imporve the layout of proxies page to avoid navigator overlapping items (issue #5556)

* feat(proxy): remove left padding
2025-11-29 11:08:58 +08:00
Sline
683667f8ae
fix(ui): prevent light flash on dark startup (#5637)
* fix(ui): prevent light flash on dark startup

* fix(window): apply initial dark/light theme to prevent white flash

* refactor(boot): optimize config fetch and theme fallback

* fix: system theme detection

* fix(window): remove black flash before loader by aligning initial paint with theme
2025-11-28 15:15:17 +08:00
Slinetrac
99dda5496e
fix(i18n): prevent zh flash and normalize language caching #5632 2025-11-28 10:38:42 +08:00
oomeow
9ce5d27d6e
Revert "chore: frontend format check"
This reverts commit 90b850154d1081bcd5c5b4f815b23a82a65d0fea.
2025-11-27 21:50:25 +08:00
oomeow
90b850154d
chore: frontend format check 2025-11-27 21:08:04 +08:00
renovate[bot]
3cd6e88c37
chore(deps): update dependency prettier to ^3.7.0 (#5625)
* chore(deps): update dependency prettier to ^3.7.0

* style: prettier

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Slinetrac <realakayuki@gmail.com>
2025-11-27 17:25:34 +08:00
Slinetrac
a572708fd8
fix(search): prevent crash on invalid regex input in search box
Closes #5609
2025-11-26 18:40:22 +08:00
Slinetrac
cbd8c89097
fix(connection-table): set boxSizing to border-box for header and cells
Closes #5611
2025-11-26 17:49:17 +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
Tunglies
adb969d370
fix(ip-info-card): update IP detection to refresh only when necessary 2025-11-26 14:41:12 +08:00
Tunglies
ecc272aa20
feat: integrate tauri-plugin-clipboard-manager and add system info commands (#5593) 2025-11-25 16:58:25 +08:00
Sline
b83ef994f8
refactor(traffic-monitor): Move traffic sampling/compression to a dedicated Web Worker (#5588)
* refactor(traffic-monitor): Move traffic sampling/compression to a dedicated Web Worker

* refactor(traffic-monitor): introduce shared sampler, safe fallback, and decoupled range handling

* refactor(traffic-monitor): add optional subscribe flag and fix range handling

* fix(traffic-monitor): age out idle samples and prevent ref-count updates after unmount
2025-11-25 11:43:45 +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
Tunglies
ddd24eb3ac
fix: prevent drag listeners from blocking navigation clicks in sidebar #5567
Separated dnd-kit drag handlers (attributes/listeners) from ListItemButton
to ListItemIcon only. Previously, long-press or rapid clicks on nav items
would trigger drag detection and cancel the click event, causing the item
to visually highlight but fail to navigate.

Changes:
- Moved sortable attributes/listeners to icon elements only
- ListItemButton now handles pure navigation clicks without interference
- Drag handle cursor ('grab') remains on icons when sortable is enabled

Fixes issue where sidebar tabs would "go dark" without actual route change.
2025-11-23 11:47:27 +08:00
Slinetrac
687530a9cd
fix(sysproxy): remove redundant 172.29.0.0/16 entry #4351
Closes #4351
2025-11-22 19:05:57 +08:00
Sline
4ff186497c
feat(tun): auto-redirect GUI support for linux (#5565)
* feat(tun): auto-redirect GUI support for linux

* refactor(tun-viewer): unify Linux-only auto-redirect row layout
2025-11-22 18:58:57 +08:00
Slinetrac
45020fceda
refactor(proxies): reorder chain-mode toggle for immediate UI feedback 2025-11-22 17:06:35 +08:00
renovate[bot]
51760a5b95
chore(deps): update npm dependencies (#5561)
* chore(deps): update npm dependencies

* fix: types

* chore: replace vite-plugin-monaco-editor-esm with utils/monaco

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Slinetrac <realakayuki@gmail.com>
2025-11-22 16:33:34 +08:00
Slinetrac
d110e462aa
Revert "chore(deps): update npm dependencies (#5558)"
This reverts commit ddcd4a8192eda762327d8c8fd3cf4e77b81a82af.
2025-11-22 13:49:17 +08:00
renovate[bot]
ddcd4a8192
chore(deps): update npm dependencies (#5558)
* chore(deps): update npm dependencies

* fix: correct monaco typescript reference in editor viewer

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
2025-11-22 08:39:08 +08:00
Slinetrac
c38dd5da14
fix(unlock): normalize and dedupe unlock items 2025-11-21 20:22:57 +08:00
Tunglies
803f749063
Revert "chore(deps): update npm dependencies (#5554)"
This reverts commit da0106b1e8c7620a5cc4b3d534dc7dfc96f0f35f.
2025-11-21 18:13:22 +08:00
renovate[bot]
da0106b1e8
chore(deps): update npm dependencies (#5554)
* chore(deps): update npm dependencies

* fix: types

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Slinetrac <realakayuki@gmail.com>
2025-11-21 12:36:17 +08:00
Slinetrac
fcc1d4f9b5
chore: remove vitest 2025-11-20 21:42:11 +08:00
Sline
bf06cbc87d
refactor: replace @mui/x-data-grid with @tanstack/react-table (#5544) 2025-11-20 17:41:34 +08:00
Slinetrac
be97a27ba3
fix: Monaco syntax highlighting broken by CSS injection #5440 2025-11-20 15:16:25 +08:00
Slinetrac
2bb9f648ba
fix(app-data-provider): dashboard state sync 2025-11-20 13:23:50 +08:00
Slinetrac
6ab597db8f
fix: prevent filename from overlapping with action icons in backup records #5525
Closes #5525
2025-11-19 17:29:11 +08:00
Sline
f439e93a2b
feat(hotkey): add global reactivate_profiles shortcut (#5527)
* feat(hotkey): add global reactivate_profiles shortcut

* feat(profile): expose validation state for reactivation shortcuts
2025-11-19 17:06:23 +08:00
Slinetrac
94b07b51d6
chore: rename Youtube to YouTube
Closes #5526
2025-11-19 17:04:19 +08:00
Slinetrac
ec7f912eae
fix(home-profile-card): use profiles label for home shortcut 2025-11-18 18:50:53 +08:00
Slinetrac
e7812396df
feat(logs): support reverse chronological order #5513
Closes #5513
2025-11-18 17:39:56 +08:00
Slinetrac
a5de24a545
fix(webdav): prevent dialog refresh loop and stabilize busy-state handling 2025-11-17 18:16:13 +08:00
Slinetrac
635f63e9e5
feat: explicit paste button 2025-11-17 10:07:38 +08:00
Slinetrac
f315a98afd
fix: monaco editor line count limit 2025-11-17 07:41:37 +08:00
Slinetrac
cfd4532440
fix(home/traffic): ensure traffic chart stretches on Windows maximize 2025-11-16 15:42:14 +08:00
Slinetrac
272c2f3467
Revert "fix(editor): restore syntax highlighting for JS/CSS in Monaco editor"
This reverts commit 55ac25b1a69f51c48def07caccdacc45211d2fbf.
vite-plugin-monaco-editor-esm has handled it
2025-11-15 16:46:11 +08:00
Slinetrac
55ac25b1a6
fix(editor): restore syntax highlighting for JS/CSS in Monaco editor 2025-11-15 15:51:03 +08:00
Slinetrac
dbd46f2b76
fix: ruleEditor i18n keys 2025-11-13 21:45:04 +08:00
oomeow
18b3db46b0
chore: update tauri-plugin-mihomo deps 2025-11-13 20:24:24 +08:00
oomeow
1125dc0562
feat: support closed connections (#5244)
* feat: support closed connections

* fix: clear closed connections

* feat: show footer

* feat: show closed connection detail

* docs: update Changelog.md

* chore: update
2025-11-13 19:50:23 +08:00
Tunglies
9c24b3089c
fix(editor): update editorRef initialization and handleChange logic for better type safety #5442 2025-11-13 09:42:03 +08:00
Tunglies
d0d35da2f1
fix(editor): update theme mode for MonacoEditor to use 'light' instead of 'vs' in multiple components #5440 2025-11-13 08:39:10 +08:00
Sline
2a2de29224
feat: tray menu enhance (#5412)
* feat(tray): move outbound modes into a dedicated submenu

* refactor: Enable 'Show Proxy Groups Inline' by default

* refactor(tray): move `copyEnv` to `more` submenu
2025-11-12 14:10:20 +08:00
Sline
afb3842776
feat(canvas): add adaptive FPS and pause rendering on window blur (#5409) 2025-11-11 20:15:07 +08:00
Tunglies
33f575ed4d
refactor: update icon handling in tray methods to accept IVerge reference and improve logging #5379 (#5387)
* refactor: update icon handling in tray methods to accept IVerge reference and improve logging #5379

* refactor: simplify icon retrieval logic in Tray implementation
2025-11-10 19:06:37 +08:00