v5.3.0...v5.4.0 Minor Bug fixes & Performance Boost
🚀 Enhancements
- xray-inbounds: Add input for X-Padding Bytes in xhttp settings (5ab5a756)
- logs: Enhance log structure with unique IDs and improve log parsing (dc39867c)
- node-checker: Enhance node health check logic for core status handling (6c907baa)
- node-operations: Add force start option for node connections (c73cfbef)
- notification: Add single worker handling for notification deduplication (7de03662)
- nats: Add is_kv_miss function and improve error handling in HostManager and CoreManager (8ed559bc)
- db: Implement WAL mode for SQLite to improve concurrency and error handling (2adc22a5)
- db: Enhance safe_execute for deadlock handling and improve user stats retrieval (5bc61913)
- migrations: Widen leftover INTEGER identity columns to BIGINT (9f711708)
- hosts: Update noise settings to support array packets and enhance form handling (16eafe3c)
- subscription: Add normalize_and_remove_none_values function for cleaning dictionaries (cb3eedc4)
- subscriptions: Support ECH for Mihomo and sing-box (#847)
🔥 Performance
- db: Bound multi-worker connection pools (#789)
- bulk: Batch user reloads and aggregate reset usage (#854)
- users: Avoid materializing reset history in lists (#850)
- nodes: Avoid loading reset history when selecting due nodes (#860)
- nodes: Avoid materializing reset history in lists (#851)
- Bound NATS user-sync KV work and cut /sub plus usage-job CPU (#893)
🩹 Fixes
- kv_cas: Optimize kv_list_keys to use server-side filtering with watch() (3dd0ebdc)
- router: Sanitize Telegram launch hash to prevent 404 errors (a3855093)
- node: Handle concurrent node startup to avoid race conditions (75cc2c1a)
- hosts: Add cipher_suites to host data mapping (234ab68c)
- runtime: Scope trusted TLS to outbound clients (#849)
- leader: Change log level from info to debug for non-leader scheduler message (176efab4)
- node: Optimize node update process to reuse existing objects when configuration is unchanged (#869)
- core-editor: Preserve valid Hysteria2 outbounds (#868)
- node: Recover from slow start timeouts (#866)
- core-editor: Persist inbound finalmask QUIC edits (#871)
- migrations: Clarify sequence widening handling in PostgreSQL bigint migration (5158518c)
- finalmask: Support integer array packet input and remove rand noise type (2e3a4887)
- subscription: Update normalize_and_remove_none_values to exclude empty lists from cleaned output (9c554e01)
- subscription: Give v2ray clients an explicit share-link rule (#880)
- locales: Correct wording in groups existing warning message (808ad6cc)
- Tag generator for hysteria and shadowsocks protocol (7d935c37)
💅 Refactors
- manager, xray, crypto: Improve state serialization and type handling (84f106f0)
- node_checker: Simplify lease check logic in _start_already_in_progress function (834dc88d)
- node_checker, node_operations: Enhance logging and notification handling (7ca8fdc6)
- http: Simplify orvalFetcher to align with orval v8+ signature (2ac70f00)
- node-checker: Improve error handling for core status and enhance health check logic (5d035f65)
- models: Add IdMixin to JWT and ClientTemplate classes (b198b5df)
- finalmask: Simplify noise settings layout and remove unnecessary conditions (00153715)
- logs: Enhance log components for better layout and performance (59dccc8d)
- xray: Streamline balancer, inbound, outbound, and routing sections (26cf1e61)
- user: Enhance user model properties and update traffic reset handling (fa879f00)
- ui: Enhance dropdown, select, command, and popover components for improved responsiveness (b7be10ee)
🏡 Chore
- deps-dev: Bump ruff from 0.16.4 to 0.16.5 (#832)
- deps-dev: Update psycopg[binary] requirement (#863)
- deps-dev: Bump orval from 7.4.1 to 8.22.0 in /dashboard (#848)
- deps-dev: Bump ruff from 0.16.5 to 0.16.6 (#873)
- dependencies: Update @pasarguard/core-kit to version 0.2.9 and enhance verifyPeerCertByName handling (31142a59)
✅ Tests
- hosts: Align FinalMask noise fixture with Xray (#889)
❤️ Contributors
- Mohammad immohammad20000@protonmail.com
- X0sina
- Sina (@x0sina)
- Hoseyn (@dr-hoseyn)
- Iaroslav (@Rerowros)