Releases: PasarGuard/panel
Releases · PasarGuard/panel
Release list
v5.2.1
v5.2.0...v5.2.1
🚀 Enhancements
- xray: Add duplicate inbound functionality with unique tagging (85af81b0)
- finalmask: Enhance Salamander settings of hysteria (d5700262)
🩹 Fixes
- dashboard: Resolve duplicate react instance issue in vite config (3dd4c291)
- Remove UUIDEncoder class from code (668e8fc6)
- dashboard: Improve tab navigation styling in settings (2a67d57a)
- code-editor: Update class names for improved styling in non-fullscreen mode (234f5810)
💅 Refactors
- Update fragment settings handling and normalize legacy fields (d0e042ca)
🏡 Chore
- Format code (eb2ccd8c)
❤️ Contributors
- X0sina bulletsina77@gmail.com
- Mohammad immohammad20000@protonmail.com
v5.2.0
v5.1.0...v5.2.0
🚀 Enhancements
- core: Add REALITY target scanner (#695)
- dashboard: Add skeleton loader for wireguard subnets and remove manual refresh (12b3f979)
- wireguard: Add free IPs preview and improve subnet display (f091cb0f)
- xray: Add Xray 26.7.11 FinalMask xmc settings to hosts/inbound/subscription (UI too). Add sessionID compatibility + add 2 new fields: sessionIDTable + sessionIDLength (and the corresponding UI). (#671)
- cleanup: Add multiple statuses with more conditions (5fbba5a1)
- Add new finalmask params to hosts (ed88fd6b)
- Add load_usage_logs parameter to node retrieval functions and update related calls (40752553)
- Introduce FinalMaskFragmentSettings and update related components (03abad8d)
- Enhance user subscription statistics and date handling (008df4e8)
- Implement ML-DSA-65 validation and enhance REALITY settings (b687ac6c)
- Add subscription client details modal and enhance statistics display (34bfc404)
- Enhance chart components with period selection and area chart hints (6d6ebdc6)
- Enhance inbound creation process in XrayInboundsSection (8674bc5e)
- Add deprecation warning for
noiseandfragmentsettings across multiple locales (f453eb29) - Add clear VLESS encryption functionality and localization updates (e7d28d95)
🔥 Performance
- crud: Eliminate N+1 queries by eagerly loading relations (#724)
🩹 Fixes
- subscription: Emit sni instead of servername for hysteria2 in clash-meta config (#699)
- Update download_settings host changes without re-saving the main host (#712)
- dashboard: Fix default option persistence and display in host modal transport selects (74a5cb54)
- xray: Read fingerprint and pinnedPeerCertSha256 from inbound (137a904c)
- user: Update group_ids validator to enforce non-null list (41c34eba)
- tests: Update bulk add wireguard group test to ensure users belong to a group at creation (16731612)
- jwt: Encode signature strings before digest comparison (83b20bd7)
- xray: Improve inbound security field layout and add fingerprint full-width support (6696b97c)
- login: Improve auth token validation and session management (25a928d0)
- Fix ambiguous expire column error in DaysDiff compilation (1da73ab6)
- Remove duplicate handleAddLayer redeclaration in UdpLayersForm (b52c4b6a)
- Update HWID settings and related descriptions (26c86e9e)
- Update user date query parameters to default to None (363821d9)
- Update HWID requirement for manual subscriptions in tests (b6a44f5e)
- User subscription statistics and enhance date handling (34937ffe)
- Update class name for inbound security action grid item in XrayInboundsSection (8d6b0a19)
💅 Refactors
- wireguard: Auto ip allocation (#713)
- Move reality scan service to API module and update null checks (2462f942)
🏡 Chore
- deps-dev: Bump ruff from 0.15.21 to 0.15.22 (#707)
- deps-dev: Bump ruff from 0.15.22 to 0.16.0 (#720)
- Make codebase pass ruff 0.16 (#721)
- Update CONTRIBUTING.md (5b5ae698)
- deps-dev: Bump ruff from 0.16.0 to 0.16.1 (#740)
❤️ Contributors
- Mohammad immohammad20000@protonmail.com
- M03ED (@M03ED)
- Default imMohammad20000@ProtonMail.com
- x0sina (@x0sina)
- FunLay123 (@FunLay123)
- Random Guy (@M03ED)
- Parsa222 (@parsa222)
- Nemu-x (@Nemu-x)
v5.2.0-rc.1
v5.1.0...v5.2.0-rc.1 Add REALITY Target Scanner & Xray-core Latest Updates
🚀 Enhancements
- core: Add REALITY target scanner (#695)
- dashboard: Add skeleton loader for wireguard subnets and remove manual refresh (12b3f979)
- wireguard: Add free IPs preview and improve subnet display (f091cb0f)
- xray: Add Xray 26.7.11 FinalMask xmc settings to hosts/inbound/subscription (UI too). Add sessionID compatibility + add 2 new fields: sessionIDTable + sessionIDLength (and the corresponding UI). (#671)
- cleanup: Add multiple statuses with more conditions (5fbba5a1)
🔥 Performance
- crud: Eliminate N+1 queries by eagerly loading relations (#724)
🩹 Fixes
- subscription: Emit sni instead of servername for hysteria2 in clash-meta config (#699)
- Update download_settings host changes without re-saving the main host (#712)
- dashboard: Fix default option persistence and display in host modal transport selects (74a5cb54)
- xray: Read fingerprint and pinnedPeerCertSha256 from inbound (137a904c)
- user: Update group_ids validator to enforce non-null list (41c34eba)
- tests: Update bulk add wireguard group test to ensure users belong to a group at creation (16731612)
- jwt: Encode signature strings before digest comparison (83b20bd7)
- xray: Improve inbound security field layout and add fingerprint full-width support (6696b97c)
- login: Improve auth token validation and session management (25a928d0)
- Fix ambiguous expire column error in DaysDiff compilation (1da73ab6)
💅 Refactors
- wireguard: Auto ip allocation (#713)
🏡 Chore
- deps-dev: Bump ruff from 0.15.21 to 0.15.22 (#707)
- deps-dev: Bump ruff from 0.15.22 to 0.16.0 (#720)
- Make codebase pass ruff 0.16 (#721)
- Update CONTRIBUTING.md (5b5ae698)
❤️ Contributors
- Default imMohammad20000@ProtonMail.com
- X0sina bulletsina77@gmail.com
- Sina (@x0sina)
- FunLay123 (@FunLay123)
- M03ED (@M03ED)
- Mohammad immohammad20000@protonmail.com
- Random Guy (@M03ED)
- Parsa222 (@parsa222)
- Nemu-x (@Nemu-x)
v5.1.0
v5.0.3...v5.1.0 Add APIKeys & Add finalmask to the hosts
🚀 Enhancements
- subscription: Add custom variables support for subscription formatting (4b06a008)
- admin: Add custom variables support for admin profiles (910ae60f)
- subscription: Add HWID limit hint and update logic for zero limit (c828a1ab)
- notification: Add recovered node notification event (956898ee)
- node: Improve user sync filtering logic and enable flush by default (5e2bef8c)
- settings: Add custom variables support to general settings (437fbab1)
- hwid: Extract and centralize HWID limit resolution logic (e9a55f26)
- admin: Add reminder deduplication for notification thresholds (4d1877f0)
- api: Enable offline OpenAPI schema generation for orval (344d1eb3)
- api_keys: Implement API key management with CRUD operations and permissions (#549)
- core-editor: Add cancel button and refine unsaved-changes dialogs (d78feae7)
- core-editor: Add cancel button and improve unsaved-changes UX (5f0d49ea)
- core-editor: Add cancel button and refine unsaved-changes dialogs" (14645ee7)
- subscription: Add InHive to default sing-box rule (#658)
- Subscription: Add support for HEAD method (dac94f19)
- Add final_mask_settings to hosts (#451)
- authentication: Refactor get_current function and add require_permission_for_request (d38c4c07)
- Add final mask to wireguard url (d483d323)
- Add final mask builder for inbound and outbound in config generator (564bc429)
- core-editor: Add inbound fallbacks and FinalMask controls (7116f6af)
- subscription: Recognize InHive → xray (full config), not sing_box (#658 follow-up) (#689, #658)
🔥 Performance
- Eliminate copy.deepcopy from core state management and notifications (#616)
🩹 Fixes
- proxy: Add ConfigDict validation to ShadowsocksSettings model (d2af82ec)
- subscription: Ensure HWID header is required when limit is set (c81da5f6)
- user: Improve HWID limit handling during user creation and modification (58b5772e)
- user: Simplify HWID limit handling by using explicit None checks (5ee7b5f2)
- subscription: Correct exception handling syntax and simplify HWID registration logic (69890b38)
- app: Extract subscription path validation into standalone function (03773997)
- user-usage-notifications: Clear data usage notification reminders after data usage was reset (#645)
- Generating open api schema (26cd24d5)
- Format (b4cc4e2c)
- telegram bot: Better exception handling when starting/stoping (#585, #646)
- Detect admins.id type at runtime in api_keys migration (dd934ecd)
- admin: Remove redundant db refresh and role attribute access (cc9294e2)
- user: Preserve user status constraints during reset and re-enable operations (c604f161)
- subscription: Preserve DNS overrides in WireGuard subscription payload (2aa51cf8)
- operation: Add host lookup import (23cf90f9)
- wireguard: Validate interface_name does not contain spaces (dc2c8173)
- notification: Allow nullable group_ids and add status field to group notifications (e02dba8f)
- wireguard: Improve interface_name validation to disallow invalid characters (78394154)
- manager: Enhance logging for core reconstruction failures (8ef5542a)
- wireguard, xray: Change tag separator from space to underscore for consistency in generated names (27cf6ce6)
- Revert tag separator to space for xray (d798b4e6)
- Prevent Hysteria inbounds without TLS (20c7c810)
- Moved the final_mask_settings extraction logic to the top (4818ff77)
- Crash when finalmask clicked (a9eae1de)
- node-sync: Bound bulk user sync payloads (6a6f582c)
- XMuxSettings camelCase deserialization (#589)
💅 Refactors
- subscription: Improve subscription token handling and parsing logic (996a2149)
- dashboard: Consolidate user usage API calls and simplify admin filtering (45afe590)
- admin-filter-combobox: Improve scroll pagination and simplify admin selection (60d43ccb)
- xray-inbounds: Improve masquerade type handling and JSON serialization (d92a2070)
- admin: Centralize admin sync operations (f27ce691)
- operation: Centralize host refresh logic in CoreOperation (f8399ce7)
- wireguard: Improve peer IP reallocation logic and version comparison (bfb79ed6)
🏡 Chore
- deps-dev: Bump ruff from 0.15.17 to 0.15.18 (#629)
- deps-dev: Bump pytest from 9.1.0 to 9.1.1 (#639)
- deps-dev: Bump ruff from 0.15.18 to 0.15.19 (#644)
- deps-dev: Bump ruff from 0.15.19 to 0.15.20 (#656)
- Expand .dockerignore to exclude dev and build artifacts (95ddf9f0)
- Format code (e1111b52)
- templates: Replace old issue templates with new structured formats for bug reports and feature requests (9ff10fbf)
- deps-dev: Bump ruff from 0.15.20 to 0.15.21 (#691)
- Format code (aa66c5be)
🎨 Styles
- users: Hide dropdown separator on mobile devices (33145fff)
❤️ Contributors
- Evgeniy (@Ieqzya)
- Twilgate suetin.nikitan@gmail.com
- X0sina bulletsina77@gmail.com
- Default imMohammad20000@ProtonMail.com
- Mohammad (@0ashleym)
- M03ED (@M03ED)
- Normal-developer mohammadimahdi294@gmail.com
- Qmel (@qmel)
- Wahh3b-lgtm wahh3b@gmail.com
v5.1.0-rc.1
v5.0.3...v5.1.0-rc.1 Add APIKeys & Add finalmask to the hosts
🚀 Enhancements
- subscription: Add custom variables support for subscription formatting (4b06a008)
- admin: Add custom variables support for admin profiles (910ae60f)
- subscription: Add HWID limit hint and update logic for zero limit (c828a1ab)
- notification: Add recovered node notification event (956898ee)
- node: Improve user sync filtering logic and enable flush by default (5e2bef8c)
- settings: Add custom variables support to general settings (437fbab1)
- hwid: Extract and centralize HWID limit resolution logic (e9a55f26)
- admin: Add reminder deduplication for notification thresholds (4d1877f0)
- api: Enable offline OpenAPI schema generation for orval (344d1eb3)
- api_keys: Implement API key management with CRUD operations and permissions (#549)
- core-editor: Add cancel button and refine unsaved-changes dialogs (d78feae7)
- core-editor: Add cancel button and improve unsaved-changes UX (5f0d49ea)
- core-editor: Add cancel button and refine unsaved-changes dialogs" (14645ee7)
- subscription: Add InHive to default sing-box rule (#658)
- Subscription: Add support for HEAD method (dac94f19)
- Add final_mask_settings to hosts (#451)
- authentication: Refactor get_current function and add require_permission_for_request (d38c4c07)
🔥 Performance
- Eliminate copy.deepcopy from core state management and notifications (#616)
🩹 Fixes
- proxy: Add ConfigDict validation to ShadowsocksSettings model (d2af82ec)
- subscription: Ensure HWID header is required when limit is set (c81da5f6)
- user: Improve HWID limit handling during user creation and modification (58b5772e)
- user: Simplify HWID limit handling by using explicit None checks (5ee7b5f2)
- subscription: Correct exception handling syntax and simplify HWID registration logic (69890b38)
- app: Extract subscription path validation into standalone function (03773997)
- user-usage-notifications: Clear data usage notification reminders after data usage was reset (#645)
- Generating open api schema (26cd24d5)
- Format (b4cc4e2c)
- telegram bot: Better exception handling when starting/stoping (#585, #646)
- Detect admins.id type at runtime in api_keys migration (dd934ecd)
- admin: Remove redundant db refresh and role attribute access (cc9294e2)
- user: Preserve user status constraints during reset and re-enable operations (c604f161)
- subscription: Preserve DNS overrides in WireGuard subscription payload (2aa51cf8)
- operation: Add host lookup import (23cf90f9)
- wireguard: Validate interface_name does not contain spaces (dc2c8173)
- notification: Allow nullable group_ids and add status field to group notifications (e02dba8f)
- wireguard: Improve interface_name validation to disallow invalid characters (78394154)
- manager: Enhance logging for core reconstruction failures (8ef5542a)
💅 Refactors
- subscription: Improve subscription token handling and parsing logic (996a2149)
- dashboard: Consolidate user usage API calls and simplify admin filtering (45afe590)
- admin-filter-combobox: Improve scroll pagination and simplify admin selection (60d43ccb)
- xray-inbounds: Improve masquerade type handling and JSON serialization (d92a2070)
- admin: Centralize admin sync operations (f27ce691)
- operation: Centralize host refresh logic in CoreOperation (f8399ce7)
- wireguard: Improve peer IP reallocation logic and version comparison (bfb79ed6)
🏡 Chore
- deps-dev: Bump ruff from 0.15.17 to 0.15.18 (#629)
- deps-dev: Bump pytest from 9.1.0 to 9.1.1 (#639)
- deps-dev: Bump ruff from 0.15.18 to 0.15.19 (#644)
- deps-dev: Bump ruff from 0.15.19 to 0.15.20 (#656)
- Expand .dockerignore to exclude dev and build artifacts (95ddf9f0)
- Format code (e1111b52)
🎨 Styles
- users: Hide dropdown separator on mobile devices (33145fff)
❤️ Contributors
- M03ED (@M03ED)
- Mohammad (@0ashleym)
- X0sina bulletsina77@gmail.com
- Default imMohammad20000@ProtonMail.com
- Twilgate suetin.nikitan@gmail.com
- Normal-developer mohammadimahdi294@gmail.com
- Qmel (@qmel)
- Wahh3b-lgtm wahh3b@gmail.com
v5.0.3
[log]
v5.0.2...v5.0.3
🚀 Enhancements
- hwid-settings: Add manual subscription HWID requirement option (de0424bb)
🩹 Fixes
- subscription: Ensure user HWID limit is greater than zero for subscription validation (390d19e5)
- locales: Update HWID-related text for Russian and Chinese translations (1c598ef0)
- version-banner: Replace hasPermission with isOwner for admin checks in VersionUpdateBanner (3289a525)
- subscription: Update application handling to respect HWID visibility settings (1867b9a9)
❤️ Contributors
- X0sina
- Mohammad immohammad20000@protonmail.com
v5.0.2
v5.0.1...v5.0.2
🚀 Enhancements
- Add HWID mode to admin roles and update related logic (e516a1aa)
- Add database operational error handler and related tests (79d49350)
- dashboard: Update data usage chart to use admin-specific API endpoints (74394b55)
- xray: Preserve unmodeled top-level sections in compiled config (b795de9e)
- xray: Refactor hysteria UDP mask handling for streamAdvanced support (884e3c29)
- core-editor: Improve wireguard form UX and config validation (687d3561)
- xray-adapter: Preserve inbound sockopt from raw config (c23122ba)
- dashboard: Improve scroll behavior in tag picker and admin role modals (ea17f39c)
- subscription: Add HWID requirement toggle for manual subscriptions (c9e28687)
- subscription: Add HWID configuration checks for subscription validation (dd704f26)
- subscription: Implement HWID-based filtering for subscription applications (3aecd51a)
- subscription: Add HWID-enabled visibility settings for applications (4bd9c020)
- admin-roles: Add on-hold timeout limits and validation to user roles (f53f5926)
- core-editor: Enhance WireGuard and Xray forms with auto-generated tags and random port generation (4a576854)
- core-editor: Convert generated tags to uppercase in WireGuard and Xray forms (01579776)
🩹 Fixes
- subscription: Encode spaces as %20 not + in share links (#587)
- Allow fragment and noises for wireguard and shadowsocks (c8853de0)
- Allow camouflage settings for wireguard (bcec02c7)
- Send data to backend (a8950404)
- Add default policy to client templates (f8055fd0)
- Add retry on timeout error (19251e80)
- xray: Refactor certificate serveOnNode handling (66821957)
- dashboard: Improve decimal input blur handling and device limit validation (964f39db)
- notification, app-factory: Improve error handling for database and notification channels (d97f2682)
- wireguard: Generate wireguard keys when user get revoked (e71e91ea)
- HWID: Apply HWID fallback only when forced (5228ea21)
- admin-roles: Enhance admin role permissions validation and normalization (bffd020f)
💅 Refactors
- subscription: Remove unused accept_header parameter from subscription operations (02cece39)
📖 Documentation
- i18n: Remove "(bytes)" unit suffix from data limit labels (75411e6c)
🏡 Chore
❤️ Contributors
- Mohammad immohammad20000@protonmail.com
- M03ED (@M03ED)
- X0sina
- FunLay123 (@FunLay123)
v5.0.1
v5.0.0...v5.0.1
🚀 Enhancements
- setup: Add password validation to owner setup endpoints (068879ed)
- xray: Normalize Hysteria UDP masks into finalmask structure (acd2e6f1)
- telegram: Add QR code generation for subscription URLs (aaafff13)
- migrations: Add WireGuard settings configuration check to proxy settings migration (d77565c4)
- admin roles: Add disable_users_when_disabled flag and update related logic (a28fa332)
- indexes: Add hot path indexes for user and subscription updates (a000507f)
- validators: Add MAX_ON_HOLD_EXPIRE_DURATION_SECONDS and enforce limits in user models (69542c94)
- record_usages: Implement batching for user stats UPSERTs and add tests for MySQL chunking (f6009266)
- users-table: Display user ID in username row (3325ea49)
- dashboard: Split system stats API usage (0cb3ab87)
- wireguard: Ensure unique public keys for users and add related tests (c7c58717)
- users-search: Add user ID search capability to advance search (8058f643)
- admins: Add confirmation prompts for admin enable/disable actions (2fcb55cf)
- users-modal: Optimize status-only updates to skip unnecessary modify call (e0b47b83)
- links: Add
pinSHA256for client compatibility (2d862500)
🩹 Fixes
- models: Handle empty string values in numeric field normalization (4fc869cf)
- admin-roles: Improve multi-select scrolling with ScrollArea component (ad01e96b)
- operation: Improve bulk node update error handling (96cbe03a)
- telegram: Improve QR code generation for subscription URLs (2634345b)
- telegram: Refactor subscription QR code handling with improved error recovery (34c0a61b)
- Correct email in get_user_ip_list (724bfc20)
- Read sni from tls inbound (00ed2d85)
- dashboard: Node log severity parsing (5e716b7a)
- core editor: Remove Hysteria inbound auth from core editor (c46638c5)
- subscription: Finalmask fm= link param mangled by + encoding (#583)
- Replace replace function with dumps built-in parameter (92bacc24)
💅 Refactors
- admin roles: Rename disable_users flags to disconnect_users for clarity (03922c4d)
- system: Rename SystemStats to SystemResourceStats and separate user metrics into SystemUsersStats (fb5d2ceb)
- xray-editor: Simplify outbound mutation and observation selector sync (203321c6)
- dashboard: Standardize system stats type and simplify component logic (adf36b77)
🏡 Chore
- env: Remove example ALLOWED_ORIGINS configuration (45ad0262)
- Format code (768e01d6)
- Remove debug print (9bcb079f)
- (dashboard: Format code (4e5d3edf)
- backend: Format code (36e0d143)
🎨 Styles
- users-table: Adjust online time text font size (45e0270d)
❤️ Contributors
- Mohammad immohammad20000@protonmail.com
- Mark mark.dev.frontend@gmail.com
- X0sina bulletsina77@gmail.com
- M03ED (@M03ED)
v5.0.0
v4.0.2...v5.0.0
🚀 Enhancements
- XHTTPTransportConfig: Add field validator to normalize numeric fields (74bb1c34)
- admin-rbac: Implement role-based admin permissions, limits, and owner setup flow (#507)
- owner-upgrade: Implement admin to owner upgrade functionality and fix delete owner request to accept query instad of body (579c1ee7)
- owner-upgrade: Add owner existence check before upgrading admin to owner (85b1cf91)
- user: Add user retrieval by usernames and IDs, enforce admin quota during bulk creation (a9123ae4)
- setup: Add OwnerDeleteRequest model and update delete_owner endpoint to use request body (6cce71f0)
- admin-role: Add HWID policy to admin roles (#521)
- models: Implement CreatedAtUTCMixin for automatic timestamping in Admin, User, and related models (872ab4c5)
- admin-roles: Add HWID policy inheritance and update role terminology (8a4cbb22)
- user-modal: Replace DecimalInput with native Input for HWID limit field (01c4d9c4)
- admin: Add role eager loading and admin details helper for usage warnings (baf28748)
- setup: Add admin-to-owner promotion functionality (a55c3443)
- core-editor: Improve xray outbound editing with observation filtering and state preservation (b41dfb48)
- core-editor: Upgrade core-kit and xray-config-kit with observation filtering (a942bf66)
- core-editor: Expand VLESS Vision flow support to include xHTTP with TLS (4a4a8262)
- core-editor: Add intelligent random inbound port generation (b80937bc)
- core-editor: Add VLESS reverse proxy support with validation (d26d6794)
- admin: Enhance admin modification security and add password change notifications (e5ae7dee)
- core-editor: Enhance shadowsocks password generation validation (6c351664)
- dashboard: Enforce RBAC across resource actions and templates (740ddcc9)
- nodes: Show update indicators in list view (2aee4275)
- admin-roles: Add duplicate role action (7c6c7a52)
- core-editor: Add Hysteria Salamander obfuscation support (09b4fc94)
- xray: Add Unix socket detection for inbound listeners (c3143772)
- group: Convert inbound_ids and inbound_tags to hybrid properties with expressions (db132e37)
- user: Send notifications for created users in bulk user creation (df3c77db)
- xray: Restrict shadowsocks encryption methods in core editor (4ab1d0e4)
- admin, user, sync: Enhance admin role loading and user sync logic (55443560)
- user: Enforce role-based restrictions for manual user creation and modification (09deac7e)
- dashboard: Add documentation routing for template pages (97b162b4)
- dashboard: Improve string tag picker popover layout and scrolling (c3219b4b)
- users: Add regenerate all proxy credentials functionality (a0ec9f1a)
- user: Add user status toggle functionality and endpoints (b6d1e304)
- users: Add user disabled status toggle API and update user modal logic (1c9a93e4)
🩹 Fixes
- record_usages: Streamline upsert parameter construction and enhance user filtering logic (10c010af)
- Block unlimited users for admins with max limits (a0be261f)
- admin: Prevent admins from modifying their own accounts and enforce role-based restrictions (2221939b)
- Remove users params (5538735b)
- subscription: Mihomo xHTTP options (#509)
- models: Enforce string type for numeric range fields in xHTTP and xMux settings (9179f527)
- subscription: Simplify HWID limit check logic (afd61c9a)
- node: Handle default core config and refresh cache before sync (b84c347e)
- dashboard: Align HWID switches inline with setting cards (d4c52ef6)
- Node user email format (4abd3d26)
- Prevent telegram_id=0 check in modify (5fa60087)
- node: Avoid reconnecting nodes on transient xray stats failures (fa1709cb)
- core-editor: Drop key on empty field (536a10f5)
- dashboard: Normalize empty HWID limit fields (21b74e88)
- users: Copy numeric user ID from actions menu (c6d2191c)
- admin: Use permissions instead of role IDs for admin edits (ba4cd1e6)
- dashboard: Hide separators for single-action menus (abd9a2eb)
- admin-roles: Sort admin roles by created date (e4ca5806)
- migration: Use explicit false values for operator permissions (c4877a34)
- dashboard: Show unlimited template limits clearly (d53f974e)
- dashboard: Refine modal loading skeletons (3fd02a91)
- admin-roles: Prevent delete dialog clicks reopening role modal (64ded6a7)
- bulk: Batch bulk group inserts to avoid asyncpg 32767 param limit (3e10bd1c)
- hosts: Assign unique priority to duplicated hosts and improve permission handling (3aa6a54d)
- xray: Improve port validation for Unix socket listeners (6cb0d038)
- telegram: Add admin context to group operations in user handlers (1ceeed12)
- dashboard: Correct owner delete setup flow (1e719f7d)
- record usages: Skip stale users when recording node usage (0307259b)
- record usages: Insert node usage only for existing users (2948b55f)
- Cast node usage upsert values for postgres (e058972c)
- Build node usage upsert with sqlalchemy (3468ebe5)
- Handle cases where admin may be None in user sync logic (beeae403)
- record usages: Mysql deprecated values usage in record usages upsert (8351e5e5)
- migrations: Enable transaction per migration and transactional DDL (e33d5c8f)
- tests: Update usernames in user sync tests for clarity (45a3d488)
- notification: Format used traffic for admin creation and modification messages (a0702955)
- hosts: Error for sni ip objecets (88bdd6a5)
- admins: Update role assignment logic for sudo admins based on count (92424be1)
- jobs: Improve mysql error handling for deadlocks and lock timeouts (b371964b)
- sync: Enhance admin sync logic to handle blocked users more effec...
v5.0.0-rc.2
v5.0.0-rc.1...v5.0.0-rc.2
🩹 Fixes
- dashboard: Correct owner delete setup flow (1e719f7d)
- record usages: Skip stale users when recording node usage (0307259b)
- record usages: Insert node usage only for existing users (2948b55f)
- Cast node usage upsert values for postgres (e058972c)
- Build node usage upsert with sqlalchemy (3468ebe5)
- Handle cases where admin may be None in user sync logic (beeae403)
- record usages: Mysql deprecated values usage in record usages upsert (8351e5e5)
- migrations: Enable transaction per migration and transactional DDL (e33d5c8f)
💅 Refactors
- Add scope_action parameter to get_validated_user_by_id for HWID and User operations (54ed934a)
- Simplify remove expired users condition checks (c927c54b)
- Remove IdMixin from multiple models for cleaner inheritance (56d126fe)
❤️ Contributors
- M03ED (@M03ED)
- X0sina (@X0sina )
- Mohammad immohammad20000@protonmail.com