- Add chunking and batching for admin email sending
- Fix gift card pagination and add per_page limits
- Update frontend prompts and complete language packs
- Only add HTTP transport when network_settings.header.type is not 'none'
- Use pure TCP (null transport) when header type is 'none' or unset
- Align with General protocol implementation and VMess specification
This prevents unnecessary HTTP transport layer when using pure TCP.
- Fix Trojan protocol to use 'server_name' instead of 'tls_settings.server_name'
- Fix Hysteria protocol to use 'tls.server_name' instead of 'tls_settings.server_name'
- Align with Server model configuration and General protocol implementation
- Resolves missing SNI domains in sing-box configuration generation
This fixes the inconsistency where SNI domains were missing for certain
protocols while working correctly in General protocol handler.
- Add command support for plugin management
- Optimize plugin management page layout
- Add email copy functionality for users
- Convert payment methods and Telegram Bot to plugin system
- Aligned user action buttons in dropdown for consistent UI.
- Added JSON and YAML support in plugin config form with Monaco Editor and resizable height.
- Improved formatTrafficSize to handle large numbers and prevent undefined units.
- Order detail now shows commission info when commission_status is 1 or 2.
- Unify protocol filter configuration to client.type.field (dot-path, three-segment) format, support strict whitelist mode
- Refactor AbstractProtocol and all protocol classes for more flexible and maintainable subscription delivery
- Change payment callback logic: use origin_url concatenation instead of return_url for more accurate redirects
- Add support for updating themes if a newer version is uploaded
- Hide config button for plugins without configuration items
- Auto refresh theme cache after panel update
- Fix issue where user used traffic cannot be set as a decimal
- Fix subscription issue for shadowrocket in v2board theme
- Add gift card redemption feature
- Resolve custom range selection issue in overview
- Allow log page size to be modified
- Add subscription path change notification
- Improve dynamic node rate feature
- Support markdown documentation display for plugins
- Reduce power reset service logging
- Fix backend version number not updating after update
Fix an issue where entering a non-existent invite code during registration would result in an unclear HTTP code 0 error. Now, the system properly validates the invite code and returns a clear error response if the code does not exist.