- add retry path that restarts Mihomo on connection-related reload errors
- guard runtime config state by discarding on repeated failures and returning rich errors
* feat: local backup
* refactor(backup): make local backup helpers synchronous and clean up redundant checks
- Converted local backup helpers to synchronous functions to remove unused async warnings and align command signatures.
- Updated list/delete/export commands to call the sync feature functions directly without awaits while preserving behavior.
- Simplified destination directory creation to always ensure parent folders exist without redundant checks, satisfying Clippy.
* feat: add Clippy alias commands and improve build process for Clippy integration
* fix(lint-clippy): update Clippy run command to use working directory for src-tauri
* fix: specify type for mode and host variables to improve clarity and type safety
* fix: specify types for pac_url and host variables to enhance type safety
* fix: change type of pac_url from Url to String for consistency in handling PAC output
- Split the monolithic unlock checker into a module tree (mod.rs:9–133), wiring service-specific tasks while keeping exported Tauri commands untouched.
- Centralize shared data and helpers in types.rs (1–40) and utils.rs (1–21) for reusable timestamp and emoji logic.
- Move each provider’s logic into its own file (bilibili.rs, disney_plus.rs, netflix.rs, etc.), preserving behavior and making future additions or fixes localized.
* fix(shutdown): mark shutdown as exiting to stop background tasks
- lib.rs:570 → Flag app as exiting on ExitRequested, notify proxy guard, start cleanup immediately, with fallback in Exit event
- tray/mod.rs:190 → Add unified exit checks around tray init/updates to prevent UI recreation during shutdown
- event_driven_proxy.rs:252 → Ensure proxy guard skips all restore/re-enable work (including sysproxy.exe calls) once exit flag is set
* fix(shutdown): refine exit handling and proxy guard notifications
* fix(shutdown): add guard to run shutdown routine only once per lifecycle