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
AetherWing
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 bf189bb1444f90196c99262284915c9b5f131fa6.
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
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
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 593751eda2c1c6c4c274792578ee98f75cdde8e4.
2025-12-27 12:07:56 +08:00
Tunglies
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
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
Tunglies
70236f781c
refactor: simplify uid assignment in PrfItem from_merge and from_script methods
2025-11-06 10:19:05 +08:00
Tunglies
ea41e71f72
refactor: replace EncryptionGuard with with_encryption for better async context handling
2025-11-05 16:56:04 +08:00
Tunglies
8c3e9c9ea9
feat: implement encryption guard for secure data handling in YAML operations
2025-11-05 15:05:19 +08:00
Tunglies
3e2f605e77
fix: improve error handling and logging in various modules
2025-11-05 02:11:43 +08:00
Tunglies
97769cf93a
feat: add methods to retrieve current subscription details in PrfItem and refactor profile handling in IProfiles
2025-11-04 12:03:03 +08:00
Tunglies
0306f73841
fix: replace update_tray_display with update_menu for consistency across tray updates
2025-11-04 12:03:03 +08:00
Tunglies
0a03867352
fix: optimize ownership handling in patch macro for better performance
2025-11-04 12:03:03 +08:00
Tunglies
bae584b1ab
perf: optimize profile handle memory usage
2025-11-04 10:05:17 +08:00
Tunglies
a5e6a35dea
fix: update IVerge struct to skip serializing optional fields and adjust types for latency timeout and proxy layout column
2025-11-04 08:16:02 +08:00
Tunglies
2287ea5f0b
Refactor configuration access to use latest_arc() instead of latest_ref()
...
- Updated multiple instances in the codebase to replace calls to latest_ref() with latest_arc() for improved performance and memory management.
- This change affects various modules including validate, enhance, feat (backup, clash, config, profile, proxy, window), utils (draft, i18n, init, network, resolve, server).
- Ensured that all references to configuration data are now using the new arc-based approach to enhance concurrency and reduce cloning overhead.
refactor: update imports to explicitly include ClashInfo and Config in command files
2025-11-04 06:06:20 +08:00
Tunglies
501def6695
refactor: update patch_config method to accept a reference to IProfiles
2025-11-03 08:46:37 +08:00
Tunglies
dce349586c
refactor: simplify profile retrieval and remove unused template method
2025-11-03 03:17:33 +08:00
Tunglies
fb5bf72fb9
feat: add function to retrieve profile name by UID and improve error logging for profile updates
2025-11-02 20:07:47 +08:00
Tunglies
4a7859bdae
refactor: replace hardcoded DNS config filename with constant reference ( #5280 )
...
* refactor: replace hardcoded DNS config filename with constant reference
* refactor: remove redundant import of constants in IClashTemp template method
* refactor: add conditional compilation for DEFAULT_REDIR based on OS
* refactor: simplify default TPROXY port handling and remove unused trace_err macro
* refactor: simplify default TPROXY port fallback logic
2025-11-01 22:50:19 +08:00