Tunglies
23d7dc86d5
refactor: streamline asynchronous handling in config and resolve setup
2025-08-29 06:16:42 +08:00
Tunglies
355a18e5eb
refactor(async): migrate from sync-blocking async execution to true async with unified AsyncHandler::spawn ( #4502 )
...
* feat: replace all tokio::spawn with unified AsyncHandler::spawn
- 🚀 Core Improvements:
* Replace all tokio::spawn calls with AsyncHandler::spawn for unified Tauri async task management
* Prioritize converting sync functions to async functions to reduce spawn usage
* Use .await directly in async contexts instead of spawn
- 🔧 Major Changes:
* core/hotkey.rs: Use AsyncHandler::spawn for hotkey callback functions
* module/lightweight.rs: Async lightweight mode switching
* feat/window.rs: Convert window operation functions to async, use .await internally
* feat/proxy.rs, feat/clash.rs: Async proxy and mode switching functions
* lib.rs: Window focus handling with AsyncHandler::spawn
* core/tray/mod.rs: Complete async tray event handling
- ✨ Technical Advantages:
* Unified task tracking and debugging capabilities (via tokio-trace feature)
* Better error handling and task management
* Consistency with Tauri runtime
* Reduced async boundaries for better performance
- 🧪 Verification:
* Compilation successful with 0 errors, 0 warnings
* Maintains complete original functionality
* Optimized async execution flow
* feat: complete tokio fs migration and replace tokio::spawn with AsyncHandler
🚀 Major achievements:
- Migrate 8 core modules from std::fs to tokio::fs
- Create 6 Send-safe wrapper functions using spawn_blocking pattern
- Replace all tokio::spawn calls with AsyncHandler::spawn for unified async task management
- Solve all 19 Send trait compilation errors through innovative spawn_blocking architecture
🔧 Core changes:
- config/profiles.rs: Add profiles_*_safe functions to handle Send trait constraints
- cmd/profile.rs: Update all Tauri commands to use Send-safe operations
- config/prfitem.rs: Replace append_item calls with profiles_append_item_safe
- utils/help.rs: Convert YAML operations to async (read_yaml, save_yaml)
- Multiple modules: Replace tokio::task::spawn_blocking with AsyncHandler::spawn_blocking
✅ Technical innovations:
- spawn_blocking wrapper pattern resolves parking_lot RwLock Send trait conflicts
- Maintain parking_lot performance while achieving Tauri async command compatibility
- Preserve backwards compatibility with gradual migration strategy
🎯 Results:
- Zero compilation errors
- Zero warnings
- All async file operations working correctly
- Complete Send trait compliance for Tauri commands
* feat: refactor app handle and command functions to use async/await for improved performance
* feat: update async handling in profiles and logging functions for improved error handling and performance
* fix: update TRACE_MINI_SIZE constant to improve task logging threshold
* fix(windows): convert service management functions to async for improved performance
* fix: convert service management functions to async for improved responsiveness
* fix(ubuntu): convert install and reinstall service functions to async for improved performance
* fix(linux): convert uninstall_service function to async for improved performance
* fix: convert uninstall_service call to async for improved performance
* fix: convert file and directory creation calls to async for improved performance
* fix: convert hotkey functions to async for improved responsiveness
* chore: update UPDATELOG.md for v2.4.1 with major improvements and performance optimizations
2025-08-26 01:49:51 +08:00
Tunglies
537d27d10b
fix: clippy errors with new config ( #4428 )
...
* refactor: improve code quality with clippy fixes and standardized logging
- Replace dangerous unwrap()/expect() calls with proper error handling
- Standardize logging from log:: to logging\! macro with Type:: classifications
- Fix app handle panics with graceful fallback patterns
- Improve error resilience across 35+ modules without breaking functionality
- Reduce clippy warnings from 300+ to 0 in main library code
* chore: update Cargo.toml configuration
* refactor: resolve all clippy warnings
- Fix Arc clone warnings using explicit Arc::clone syntax across 9 files
- Add #[allow(clippy::expect_used)] to test functions for appropriate expect usage
- Remove no-effect statements from debug code cleanup
- Apply clippy auto-fixes for dbg\! macro removals and path statements
- Achieve zero clippy warnings on all targets with -D warnings flag
* chore: update Cargo.toml clippy configuration
* refactor: simplify macOS job configuration and improve caching
* refactor: remove unnecessary async/await from service and proxy functions
* refactor: streamline pnpm installation in CI configuration
* refactor: simplify error handling and remove unnecessary else statements
* refactor: replace async/await with synchronous locks for core management
* refactor: add workflow_dispatch trigger to clippy job
* refactor: convert async functions to synchronous for service management
* refactor: convert async functions to synchronous for UWP tool invocation
* fix: change wrong logging
* refactor: convert proxy restoration functions to async
* Revert "refactor: convert proxy restoration functions to async"
This reverts commit b82f5d250b .
* refactor: update proxy restoration functions to return Result types
* fix: handle errors during proxy restoration and update async function signatures
* fix: handle errors during proxy restoration and update async function signatures
* refactor: update restore_pac_proxy and restore_sys_proxy functions to async
* fix: convert restore_pac_proxy and restore_sys_proxy functions to async
* fix: await restore_sys_proxy calls in proxy restoration logic
* fix: suppress clippy warnings for unused async functions in proxy restoration
* fix: suppress clippy warnings for unused async functions in proxy restoration
2025-08-18 02:02:25 +08:00
Tunglies
764ef48fd1
refactor(Draft): Replace latest() with latest_ref() and data() with data_mut() in multiple files for improved mutability handling and consistency across the codebase ( #3987 )
...
* feat: add benchmarking for draft operations and new draft management structure
* Refactor Config Access: Replace `latest()` with `latest_ref()` and `data()` with `data_mut()` in multiple files for improved mutability handling and consistency across the codebase.
* refactor: remove DraftNew implementation and related benchmarks for cleaner codebase
2025-07-04 22:43:23 +08:00
Tunglies
689042df60
refactor: use Box to store large config objects and add memory usage tests
...
- Refactored config-related structs to use Box for storing large objects (e.g., IRuntime, IProfiles, PrfItem) to reduce stack memory usage and improve performance.
- Updated related methods and assignments to handle Boxed types correctly.
- Added and improved unit tests to compare memory usage between Boxed and non-Boxed config objects, demonstrating the memory efficiency of Box.
- Test output now shows the size difference between stack-allocated and heap-allocated (Box) config objects.
2025-06-06 14:54:48 +08:00
Tunglies
b6a6f5f434
Add AsyncHandler for wrapping task spawning
2025-04-11 17:30:30 +08:00
Tunglies
4831d88467
rm(lightweight): unused logging
2025-03-29 13:05:58 +08:00
Tunglies
9ebde802d4
Update alpha workflow to trigger on src directory changes
2025-03-29 12:35:49 +08:00
Tunglies
e8e16f7d57
refactor(logging): replace log_err! with structured logging_error! calls
...
refactor(cm-service): better error handling from Backend to Frontend
2025-03-28 03:39:34 +08:00
Tunglies
d91653b218
feat: add config log type and improve window logging
2025-03-26 16:43:26 +08:00
Tunglies
b57c6e408a
chore: git hooks for linter and formatter
2025-03-13 12:51:20 +08:00
wonfen
a5acdc04e3
perf: Improve config validation error messages and handling
2025-02-25 13:47:29 +08:00
wonfen
34f450fcdb
feat: Improve core change configuration validation and error handling
2025-02-24 07:34:03 +08:00
wonfen
23f75598e5
feat: Enhance configuration validation and error handling during app startup
2025-02-24 06:21:32 +08:00
huzibaca
e40ea38112
chore: remove useless hooks
...
the window is not closed, it is minimized, so the position still exists
2024-10-30 10:06:54 +08:00
huzibaca
b809b9bb80
fix: linux file permissions problem
...
check-config configuration file moved from temp_dir to home_dir, resolved
2024-10-30 09:08:44 +08:00
MystiPanda
fb4648d2af
feat: global merge and script
2024-07-01 08:25:03 +08:00
MystiPanda
b85929772e
refactor: use async instead of block_on
2024-06-29 19:02:37 +08:00
wonfen
01be65a624
chore: delete clash core, update CI, change profile name, change URL test link
2023-11-22 02:56:47 +08:00
GyDi
bc8be2460f
feat: support builtin script for enhanced mode
2022-11-21 21:05:00 +08:00
GyDi
bedd3abf8a
refactor: done
2022-11-18 18:18:41 +08:00
GyDi
84c12dee80
refactor: wip
2022-11-17 17:07:13 +08:00
GyDi
f5f865a139
refactor: wip
2022-11-16 01:26:41 +08:00
GyDi
902aed671a
refactor: wip
2022-11-15 01:33:50 +08:00