v3.0.2...v3.1.0 Add Up Time & Proxy Support For Nodes
🚀 Enhancements
- Add ID-based user and admin API routes (#410)
- client-template: Add functionality to clear host subscription template overrides on deletion (f2550d26)
- migrations: Add check-migrations target to Makefile and integrate into CI workflow (9bba0ebe)
- db: Introduce SqliteCompatibleBigInteger type and refactor ID column handling (c6cfd99e)
- dashboard: Add skeleton shimmer animation and enhance page transition handling (aafc89b2)
- user: Optimize expired user cleanup deletion path (458b3290)
- dashboard: Implement stable random username generation for preview users in bulk creation (be128e4f)
- dashboard: Enhance loading states with skeleton components for user and admin data tables (35ef830a)
- subscription: Add user subscription retrieval API by user ID and client type (a1788b6d)
- dashboard: Replace loading placeholders with Skeleton components across various pages and components (49650ec9)
- jwt: Update subscription token versioning and enhance payload validation for backward compatibility (ec7e1a5b)
- bulk: Enhance data limit input handling and UI adjustments for better user experience (b0294521)
- filters: Add subscription URL handling and enhance search functionality with username resolution (fb101c59)
- subscription: Enhance application editing with undo functionality and improved UI elements (323a4157)
- wireguard: Implement stateful peer IP allocator and optimize bulk reallocation (87e2a7bf)
- system: Add uptime tracking and display in dashboard statistics (7aae547e)
- Update initial pattern for clash meta (54186eeb)
- nodes: Add version indicators to node lists (52095904)
- xray: Show prerelease update options (aa7bc3e2)
- Node uptime (c662f92b)
- dashboard: Add uptime display for node statistics (dea8a63a)
- bulk: Add function to retrieve WireGuard peer IP users for bulk operations (83d888ee)
- dashboard: Introduce TimeUnitSelect component and refactor bulk flow and user modals to utilize time units for expiration settings (97d4ee44)
- node: Proxy support (de185ff0)
- node-modal: Add proxy URL field and update related components for proxy support (65fb5cf8)
- node: Implement core version update dialog and enhance proxy URL handling (4ecd73eb)
- dashboard: Add grid selection toolbar with select all functionality and visible row count display (5d4d697e)
- dashboard: Add DNS field to wireguard overrides in HostModal component (d77cf437)
🩹 Fixes
- platforms: Correct Windows spelling, enhance user agent parsing for new platforms, and update OS detection logic (72c810d4)
- host-modal: Add form reset functionality with default values and improve modal behavior on open (a631aee5)
- host-modal: Enhance ArrayInput styling and scroll behavior for better user experience (4fb88290)
- bulk: Apply expire date range filters independently from expired status (ee87487a)
- subscription: Refactor subscription fetching
DOWNLOAD_ONLY_PROTOCOLSlogic to use new URL building and fetching methods (2302abf5) - filters: Implement ignore flag for debounced search updates to improve filter responsiveness (2a3feacd)
- Clash template dns (7373c2d0)
- sortable-application: Prevent event propagation on button clicks to enhance user interaction (7751311c)
- locales: Update application descriptions and link terminology for clarity across multiple languages (a096fdf4)
- Separate semaphore (c0e20bb3)
- Make Semaphore block smaller (1c6de10e)
- system: Include uptime in system stats retrieval (70038b8d)
- Asyncio.ensure_future to get ips (6d1f250b)
- dashboard: Clean up admin and core config modals (058e3647)
- wireguard: Reallocate duplicate peer IPs in bulk repair (99b1f628)
- Test dependency (d0c7fbe9)
- Node test (052b20d5)
- Comparing different enum values (1f212c39)
- dashboard: Simplify core configuration handling in node component (4fc9f2a9)
- dashboard: Improve node statistics to include non connected nodes and list status UI (4e010951)
- crud: Ensure consistent ordering by adding CoreConfig.id to order_by clause (a40652b2)
- system: Update IP retrieval methods to handle asyncio context correctly (9b9a4383)
- advanced-search-modal: Enhance advance search functionality with timeout reset (fba7ae77)
- Remove the gap between label and input in admin dialog (018b8ef0)
- node: None as default for proxy url (820cda83)
- clash: Ws host (e63af03c)
- node: Limit status transitions after usage reset and modify (8e739b42)
- dashboard: Update type annotations for better clarity and consistency across components (2b2b8f4b)
- Clash headers (068da98b)
- clash: Refine HTTP headers handling by excluding 'Host' and ensuring correct assignment (210d438b)
- subscription: Remove unused extension parameter from SubscriptionOperation (dc8f9f3d)
- nodes: Preserve node dialogs during auto refresh (4b6f4d58)
💅 Refactors
- bulk: Replace BulkUser with BulkUserFilter and adjust filtering logic for user attributes (a0b1455e)
- wireguard: Optimize user group and inbound loading for bulk reallocation (8f712f4d)
- dashboard: Improve layout and spacing in AreaCostumeChart and AdminModal components (69cd28bb)
🏡 Chore
- dashboard: Update button styles to use rounded corners for improved UI consistency (ff194d83)
- dashboard: Update node actions menu to use WifiSync icon for reconnect (4d2fa802)
- Replace httpx with Aiohttp (#419)
- deps-dev: Bump ruff from 0.15.11 to 0.15.12 (#425)
- Use urllib for sync fetch functions (cbe72288)
❤️ Contributors
- X0sina
- M03ED (@M03ED)
- Mohammadmahdi Mohammadi
- Mohammad immohammad20000@protonmail.com
- Random Guy (@M03ED)