Features
- UI: Added regex-capable server search in the main window
- UI: Added import/delete progress dialogs with spinner, current server remark, and cancel support
- Routing: Added full Custom Routing support with profile management, rule editing, tray integration, enable/disable state, and JSON preview (only compatible with Xray-core)
- Protocol: Added complete SOCKS support, including GUI editor, Xray outbound generation, and
socks://,socks5://,socks5h://URI import/export - URI: Added
hysteria2+realm://import/export support - Hysteria2: Added
Geckoobfs configuration support - CLI: Added Clear recovery command to clear application settings without launching the full UI
Fixes
- macOS: Fixed JSON editor window controls by @vint2k in #158
- macOS: Fixed monochrome tray icon state styling by @vint2k in #159
- Subscription: Fixed subscription update handling to preserve base64 results and set User-Agent by @useruserdev in #160
- Server Editor: Fixed false "changes take effect next time" prompts when no values were changed
- Assets: Removed stale writability cache for asset folder checks
Improvements
- UI: Added a unified modern light/dark application theme
- UI: Improved editor layouts for TLS, Reality, VMess, VLESS, TUN, SOCKS, and hysteria2
- UI: Migrated server and subscription tables to model/view based
QTableView - Core: Refactored proxy core launching around a unified launch-spec design
- Speed Test: Reworked download speed testing through a scheduler-based design
- Icons: Refreshed toolbar/status icons
- Packaging: Added
pyproject.tomlmetadata for modern Python / uv workflows - Docs: Clarified that Windows TUN mode requires the AMD64 wintun.dll by @humatic-ai in #157
Dependencies
- Python 3.13.14
- Go 1.26.4: Xray-core v26.6.1
- Go 1.26.4: hysteria2 v2.9.2
- Go 1.26.4: tun2socks rebuilt with latest go
- Removed
qdarkstyledependency
Project issues and discussions reopened.
Full changes
Features
- UI: Added regex-capable server search box in the main window
- UI: Added progress dialogs with spinner, current remark, and cancel support for importing/deleting servers
- UI: Added Generate UUID buttons for VMess/VLESS ID fields
- Routing: Added full Custom Routing support with routing profiles, rule editing, tray menu integration, enable/disable state, JSON preview, and Xray routing documentation link
- Routing: Added support for editing most practical Xray RuleObject fields, including domain, IP, ports, source/local match, user, inbound tag, process, protocol, outbound tag, balancer tag, VLESS route, and rule tag
- Protocol: Added complete SOCKS support, including GUI editor, Xray outbound generation, import/export, and
socks://,socks5://,socks5h://URI parsing - URI: Added
hysteria2+realm://URI scheme parsing/export support - Hysteria2: Added
Geckoobfs UI support with packet size configuration - CLI: Added Clear command to clear Qt/settings backend data without launching the full UI
Fixes
- macOS: Fixed JSON editor window controls by @vint2k in #158
- macOS: Fixed monochrome tray icon state styling by @vint2k in #159
- Subscription: Fixed subscription update logic to preserve decoded base64 results and set User-Agent by @useruserdev in #160
- macOS: Improved modal JSON editor behavior
- Assets: Removed lru_cache from asset-folder writability checks so writability is not stale
- Server: Fixed false "changes take effect next time" prompts when opening VLESS/VMess editors without modifying anything
- Core: Improved robustness around core process lifecycle handling and speed-test scheduling
- Settings: Fixed missing default values for some settings
- Other minor fixes
Improvements
- UI: Migrated server and subscription tables from
QTableWidgetto model/view basedQTableView - UI: Server table sorting now reorders the underlying model/storage directly, so sorted order persists
- UI: Added unified modern light/dark application stylesheet and removed dependency on
qdarkstyle - UI: Improved network state indicator with modern icon-based status display and failure color styling
- UI: Added
AppQTableViewandAppQSpinBoxapp-specific widget wrappers - UI: Improved toolbar, menu, disabled-action, button icon spacing, menu bar, table, combo box, spin box, and editor styling
- UI: Reworked Add/Delete buttons in several windows into toolbar actions and context menus
- UI: Reworked routing dialogs to use async
open()flows where appropriate - UI: Improved compact editor layouts for TLS, Reality, VMess, VLESS, TUN settings, SOCKS, and Hysteria2 obfs pages
- UI: Improved window sizing, centering, and macOS modal-dialog behavior
- Core: Refactored proxy core launching around a unified launch-spec structure
- Speed Test: Reworked download speed testing through a scheduler-based design
- Translation: Added safety pruning for invalid Qt objects in translation pools
- Translation: Added duplicate target-translation collision checks
- Assets: Added a full bootstrap icon set, white icon variants, and refreshed application icon usage
- Docs: Documented the Windows TUN requirement for AMD64 wintun.dll by @humatic-ai in #157
- Codebase: Added missing
from __future__ import annotationsin project files - Packaging: Added
pyproject.tomlmetadata and Black configuration withskip-string-normalization