wonfen
294955cb8c
feat: add fake-ip-range6
2026-06-28 13:08:55 +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
Tunglies
35c534ae1c
refactor: lazylock for profile regex
2026-06-10 16:38:39 +08:00
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
761209bbbc
refactor: backend ( #7102 )
...
* refactor(tray): move tray log opening to utils helper
* refactor(enhance): move owned config through pipeline
* refactor(enhance): move sequence values in use_seq
* refactor(enhance): move values while sorting fields
* refactor(enhance): move values when lowercasing owned config
* refactor(backend): move owned config values in utilities
* refactor(tray): borrow hotkey accelerators
* refactor(core): borrow proxy config strings
* fix(backend): preserve config patch semantics
* refactor(enhance): clarify config transform names
2026-05-26 10:47:03 +00:00
Tunglies
ec9ef0f85e
fix: report legacy TLS subscription failures
2026-05-25 22:22:24 +08:00
Tunglies
8efbf9e7fd
fix: clippy errors for rust 1.97
2026-05-21 12:48:48 +08:00
Tunglies
edf5246e7f
fix: mask subscription URLs in backend logs
2026-05-17 13:13: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
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
830c0773dc
refactor: migrate backoff crate to backon ( #6718 )
...
Replace backoff 0.4.0 with backon 1.6.0 for retry logic.
2026-04-03 13:21:04 +00:00
oomeow
27217a4b76
fix: tray not update when delete profile ( #6549 )
2026-03-19 17:39:44 +00: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
Tunglies
c7f5bc4e0d
perf(profiles): optimize item removal by uid in profiles management
2026-02-04 12:57:59 +08:00
Tunglies
a8e51cc6bb
fix: improve subscription URL handling by fixing query parameter parsing
2026-02-03 10:26:50 +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
511fab9a9d
Revert "perf: improve config processing ( #6091 )"
...
This reverts commit bf189bb144 .
2026-01-26 23:36:57 +08:00
Tunglies
13dc3feb9f
perf: migrate fs method to async ( #6071 )
...
* perf(profiles): migrate file handling to async and improve error handling
* refactor(profiles): simplify cleanup_orphaned_files and adjust CleanupResult structure
2026-01-25 07:20:12 +00:00
Tunglies
bf189bb144
perf: improve config processing ( #6091 )
...
* perf: improve config processing
* perf: enhance profile reordering logic and adjust logging level
* perf: add PartialEq derive to PrfSelected and PrfExtra structs for improved comparison
* perf: refactor PrfOption merge logic and streamline update_item method in IProfiles
* perf: simplify current_mapping and profiles_preview methods in IProfiles for improved readability
* perf: optimize filename matching logic in IProfiles by using a static regex
2026-01-25 07:13:38 +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
Tunglies
5e976c2fe1
chore: inline crate clash-verge-types to module for better maintenance ( #6142 )
2026-01-23 14:00:51 +00:00
Tunglies
57d4149807
fix(config): improve runtime config fallback handling
2026-01-11 15:27:54 +08:00
Slinetrac
c18821288e
feat(sysproxy-viewer): make proxy bypass validation optional #4012
2026-01-03 17:10:10 +08:00
Sline and Tunglies
c8aeae3f83
crate(i18n): add clash-verge-i18n crate and integrate localization support ( #5961 )
...
* crate(i18n): add clash-verge-i18n crate and integrate localization support
* refactor(service): remove redundant reinstall_service functions for Windows, Linux, and macOS
* chore(i18n): align i18n key
* feat(i18n): unify scan roots and add backend Rust/YAML support to cleanup script
* chore(i18n): add scripts to package.json
* fix(tray): initialize i18n locale before setup
* refactor(i18n): move locale initialization into Config::init_config
* fix(i18n): refresh systray tooltip on language change and correct docs reference
* fix(tray): remove unnecessary locale synchronization to improve performance
---------
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com >
2025-12-27 15:03:19 +08:00
Slinetrac
5aba848741
Revert "crate(i18n): add clash-verge-i18n crate and integrate localization support ( #5959 )"
...
This reverts commit 593751eda2 .
2025-12-27 12:07:56 +08:00
Tunglies and Slinetrac
593751eda2
crate(i18n): add clash-verge-i18n crate and integrate localization support ( #5959 )
...
* crate(i18n): add clash-verge-i18n crate and integrate localization support
* refactor(service): remove redundant reinstall_service functions for Windows, Linux, and macOS
* chore(i18n): align i18n key
* feat(i18n): unify scan roots and add backend Rust/YAML support to cleanup script
* chore(i18n): add scripts to package.json
---------
Co-authored-by: Slinetrac <realakayuki@gmail.com >
2025-12-27 11:33:58 +08:00
Tunglies
9c6f5bc991
fix(profiles): add cleanup of orphaned files and adjust logging level
2025-12-26 17:17:18 +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
Slinetrac
23e551e384
feat(tray): add optional inline outbound modes in tray menu #5881
...
Closes #5881
2025-12-21 10:33:19 +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
Tunglies
2ca8e6716d
style: adjust rustfmt max_width to 120
2025-12-06 10:31:31 +08:00
Tunglies
6897ead070
perf: change patch_config parameter from Mapping to &Mapping for efficiency
2025-11-30 20:44:21 +08:00
oomeow
6456c597ed
perf: spawn clean task ( #5595 )
...
* perf: spawn task
* perf: spawn task to save draft date
* perf: store proxy client
* chore: update
* perf: reduce handle quit on macOS
* chore: clippy
* docs: update Changelog.md
* chore: update
2025-11-28 21:12:34 +08:00
Tunglies
ecc272aa20
feat: integrate tauri-plugin-clipboard-manager and add system info commands ( #5593 )
2025-11-25 16:58:25 +08:00
Tunglies
c82cefe80e
feat: add clash-verge-types crate and integrate IRuntime struct
2025-11-22 15:33:24 +08:00
Tunglies
ee9e9182dc
perf: update current_* methods to return references instead of owned Strings and decrease unnecessary arc clone
2025-11-21 12:17:35 +08:00
Tunglies
131cd6c3b8
fix(config): restart and quit application or shutdown system can not remember user's behavior #5347 , #5359 , #5430
2025-11-20 16:03:43 +08:00
Tunglies
3ec7c6d2b8
feat(profiles): add profile preview structure and update profile menu handling
2025-11-18 19:08:07 +08:00
Tunglies
056af768e5
feat: initialize workspace with clash-verge-draft and clash-verge-logging crates ( #5489 )
...
- Add Cargo.toml for workspace management, including dependencies and profiles.
- Create clash-verge-draft crate with basic structure, including a benchmark for Draft functionality.
- Implement Draft management with shared state and asynchronous modifications.
- Add tests for Draft functionality to ensure correctness.
- Create clash-verge-logging crate for logging utilities with structured log types and macros.
- Update src-tauri to use new crates and remove unnecessary configurations.
- Refactor existing code to utilize the new Draft and logging functionalities.
2025-11-17 11:51:50 +08:00
Tunglies
0866b93175
feat(logging): introduce clash-verge-logging crate for management ( #5486 )
...
* feat(logging): introduce clash-verge-logging crate for management
- Added a new crate `clash-verge-logging` with dependencies on `log`, `tokio`, `compact_str`, and `flexi_logger`.
- Implemented logging types and macros for structured logging across the application.
- Replaced existing logging imports with the new `clash_verge_logging` crate in various modules.
- Updated logging functionality to support different logging types and error handling.
- Refactored code to improve logging consistency and maintainability.
* fix(logging): update import paths for clash_verge_logging in linux.rs and dns.rs
* fix(logging): update import statement for clash_verge_logging in windows.rs
2025-11-17 10:42:57 +08:00
Tunglies
dbb4877be6
refactor(Draft): management as crate ( #5470 )
...
* feat: implement draft functionality with apply and discard methods, and add benchmarks and tests
* Refactor Draft management and integrate Tokio for asynchronous operations
- Introduced a new `IVerge` struct for configuration management.
- Updated `Draft` struct to use `Arc<RwLock>` for better concurrency handling.
- Added asynchronous editing capabilities to `Draft` using Tokio.
- Replaced synchronous editing methods with asynchronous counterparts.
- Updated benchmark tests to reflect changes in the `Draft` API.
- Removed redundant draft utility module and integrated its functionality into the main `Draft` implementation.
- Adjusted tests to validate new behavior and ensure correctness of the `Draft` management flow.
2025-11-16 00:33:21 +08:00
Tunglies
a6cb903fe6
refactor: simplify function return types and remove unnecessary wraps
2025-11-15 08:56:58 +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
838e401796
feat(auto-backup): implement centralized auto-backup manager and UI ( #5374 )
...
* feat(auto-backup): implement centralized auto-backup manager and UI
- Introduced AutoBackupManager to handle verge settings, run a background scheduler, debounce change-driven backups, and trim auto-labeled archives (keeps 20); wired into startup and config refresh hooks
(src-tauri/src/module/auto_backup.rs:28-209, src-tauri/src/utils/resolve/mod.rs:64-136, src-tauri/src/feat/config.rs:102-238)
- Extended verge schema and backup helpers so scheduled/change-based settings persist, create_local_backup can rename archives, and profile/global-extend mutations now trigger backups
(src-tauri/src/config/verge.rs:162-536, src/types/types.d.ts:857-859, src-tauri/src/feat/backup.rs:125-189, src-tauri/src/cmd/profile.rs:66-476, src-tauri/src/cmd/save_profile.rs:21-82)
- Added Auto Backup settings panel in backup dialog with dual toggles + interval selector; localized new strings across all locales
(src/components/setting/mods/auto-backup-settings.tsx:1-138, src/components/setting/mods/backup-viewer.tsx:28-309, src/locales/en/settings.json:312-326 and mirrored entries)
- Regenerated typed i18n resources for strong typing in React
(src/types/generated/i18n-keys.ts, src/types/generated/i18n-resources.ts)
* refactor(setting/backup): restructure backup dialog for consistent layout
* refactor(ui): unify settings dialog style
* fix(backup): only trigger auto-backup on valid saves & restore restarts app safely
* fix(backup): scrub console.log leak and rewire WebDAV dialog to actually probe server
* refactor: rename SubscriptionChange to ProfileChange
* chore: update i18n
* chore: WebDAV i18n improvements
* refactor(backup): error handling
* refactor(auto-backup): wrap scheduler startup with maybe_start_runner
* refactor: remove the redundant throw in handleExport
* feat(backup-history-viewer): improve WebDAV handling and UI fallback
* feat(auto-backup): trigger backups on all profile edits & improve interval input UX
* refactor: use InputAdornment
* docs: Changelog.md
2025-11-10 13:49:14 +08:00
Tunglies
4eeb883464
refactor: update imports to use as _ for unused identifiers across multiple files
2025-11-09 22:15:37 +08:00
oomeow
76bf91ff8a
fix: import profile panic ( #5346 )
...
* fix: import profile panic
docs: update UPDATELOG.md
chore: update
* perf: spawn import profile
2025-11-07 22:46:30 +08:00
Tunglies
5a8e83cd49
refactor: change function definitions to const for improved performance and clarity
2025-11-06 10:47:25 +08:00
Tunglies
671ac2ebed
refactor: replace type references with Self in various structs and methods for consistency
2025-11-06 10:19:06 +08:00