🌊 Remnawave Frontend v2.8.0
2.7.4...2.8.0
🚀 Enhancements
- Enhance HWID and SRH inspector tables (5475f11b)
- Replace renderSVG with QrCodeBuilder for QR code generation in user subscription links (c923ce13)
- Implement WASM crash handling and restart functionality in config editor (3e1ae44c)
- Query stats for multiple nodes (12441c7e)
- Add nodeUuid prop to BaseNodeForm and NodeVitalsCard components (e22a9666)
- Open node in infra billing (5f8f6c75)
- Mantine v9 (69350459)
- Add data-orientation attribute to CardSection in DataTableContent component (48468052)
- Enhance squad display in user table with OverflowList for better visibility (dcd398bc)
- Refactor HostCardWidget to use OverflowList for node display and update props interface (665fed6d)
- Enhance HostCardWidget with additional icon indicators and server description display (6a5ebd08)
- Add inbound tag display and excluded squads indicator to HostCardWidget (19ccd0f5)
- Add tooltips for icon indicators in HostCardWidget (7e975786)
- Move multiple hosts (8fa0e60d)
- Add verifyPeerCertByName field (afe26c1d)
- Add help icons to Pinned Peer Cert SHA256 and Verify Peer Cert By Name fields (b718bc3d)
- Add Mihomo IP Version selection to BaseHostForm and update related state in EditHostModalWidget (3d4d9e02)
- Table view mode for Hosts (d8b6d2b2)
- User metadata retrieval in UserIdentificationCard (f66826dd)
- Add node metadata retrieval and display in NodeDetailsCardWidget (10e8ec0c)
- Add note field to Node (6c4a69b5)
- Replace single tag with multiple tags in host components (3330d2e2)
- Integrate TagInputPill component for tag rendering in various forms (a4dec914)
- Add disclaimer overlay and state management for user acceptance (66e1ca08)
- Add proxy URL input in Node Vitals Card (0d97a489)
- Add new modal for bulk editing hosts (957bb9a6)
- Add used traffic percentage column to users table (4ad25393)
- Update nodes datatable cache key and add consumption multiplier column (aa4d10fe)
- Add additional options section in create node step 1 connection modal (a17ce785)
- Add node consumption multiplier feature (dc447d9b)
- i18n: Add keypair generator translation for generate action (40458755)
- User table filters templates (583bfa5d)
- Implement return-to functionality in OAuth2 callback and auth guard (298b476d)
- Add clone functionality for external squads (23305a84)
- Enhance empty state display in linked hosts drawer (37a85589)
- Scoped api tokens (742c3368)
- Branded title (6798b414)
- Add tooltip for copy and paste actions in API token modals and update translations (c266863f)
- Custom billing node (82bdc96c)
- Adapt navbar for hi-res (256d6920)
- Add active tag functionality to view preferences and enhance UI components (509dc94b)
- Add fullscreen functionality to editor widgets and update UI components (2d4ff6c5)
🩹 Fixes
- Update documentation links (8b67580c)
- Label traffic units as GiB (#345)
- infra-billing: Keep date-only picks in UTC so 1st-of-month records count (#354)
- Show xrayJson template name insted of bool in hosts table (eb120d3d)
- Increase size of disclaimer overlay (c5e9f4ce)
- Update proxy URL placeholder and handle empty proxy URL in edit node modal (61a40219)
- Adjust user agent column size in subscription requests table (2e61cd7e)
- Action icons in tables (008ed07d)
- Update VLESS UUID label in user info drawer and remove unused translation key (210bcceb)
- Prevent form reinitialization in EditNodeByUuidModalContent (418c9043)
- Increase modal size (f209001f)
- Incorrect save tags in host form, incorrect save state in node form (cd5adb00)
- Host form state (0898718d)
- Empty state in infra billing (3844edd2)
- Host edit form (2c2cb8f5)
- Correct button disabled state in base host form (62eec905)
- Adjust header height to accommodate safe area insets (f10be1c5)
- Add media query for header height adjustment (5e9e60a8)
- Standardize xHttpExtraParams naming convention (564c6939)
- Align table cell content to the left (0f3650a8)
- Conditionally render checkbox based on readOnly state (ba769cd3)
- Update settings header to use translation constant (d52a7d0b)
- Adjust table column sizes and alignment in user subscription requests table (3996906d)
- Update table density setting and remove unused toolbar properties in user HWID devices and subscription requests tables (535dd098)
- Update traffic limit column header to use translation key (a86e65ff)
- Debounce logic (2e03a467)
- Correct unit data assignment and adjust fraction digits in bytes conversion utility (53ab80ea)
- Increase maximum concurrent sessions from 5 to 10 (45e435a9)
- Adjust padding for AppShell.Main on high-resolution desktops (4ab16690)
- Handle JSON parsing errors in template editor actions (875018f2)
- Synchronize state on profile drawer open/close (5b23ca51)
- Missing provider name with custom billing node (80b41e0d)
- Lint (0762e5e1)
- Revert copyable field (9f42f9eb)
💅 Refactors
- Optimize SessionsExplorerCard component (fef14756)
- Improve item key computation and rendering logic in SessionsExplorerCard (3fbfee91)
- Migrate view mode management to view-preferences-store and remove obsolete enums for config profiles and nodes (01a9109a)
- Replace PiTagDuotone with TbStar icon in HostCardWidget and HostTagsInputWidget (de264cd7)
- Update user action components (d0977bda)
- Enhance user action components (0356fe06)
- Replace useMediaQuery with useIsMobile hook across components (031a81ba)
- Replace allowInsecure with pinnedPeerCertSha256 (71d61d62)
- host-card: Consolidate props interface and enhance edit functionality (aa45e00c)
- Update MainLayout to include new props (499c80df)
- Remove unused media query and simplify Notifications position (8523777e)
- BaseHostForm to use Autocomplete component (b1a2a0d2)
- User hwid devices modal (ac2b9f3c)
- User subscription requests modal (2305d769)
- Replace date ranges with utility function for consistency (312e5439)
- Rename publicKey to password in keypair generator (d183eec9)
- Replace date formatting logic with formatTimeUtil in DetailedUserInfoDrawerWidget (295346da)
- Restart node button (33631a4e)
- Host modals (588f9adf)
- Update reset user traffic logic (fc58e6b9)
- Infra billing desktop view (9a45f1ee)
- Restructure main layout and navigation components (f9f19c8a)
- Simplify layout structure (cd1848f3)
- Unsaved changes modal (5f732332)
- Traffic limit inputs, traffic limit table column (0c98811d)
- Replace Select with NativeSelect in traffic limit range filter (360ab21e)
- Rename prettyBytesUtil to prettifyBytesUtil across the codebase (f82e7f8b)
- Update UI components and improve styling in config profiles and dashboard drawers (a8438969)
- Enhance API token management UI (f6551ada)
- Hwid and srh inspector metrics (867b30cb)
- Enhance UI components (ca25c4f2)
- Improve UI layout for config profiles (4723b0a0)
- Node metrics (7952429e)
- Update dashboard layout and visual settings (a106d647)
🏡 Chore
- Update @remnawave/node-plugins to version 0.4.5 in package.json and package-lock.json (44fbd1cd)
- Simplify data usage translations and update monthly rolling label (5199aaaf)
- i18n: Update translations (#339)
- i18n: Update translations (#342)
- i18n: Update translations (#343)
- Bump version to 2.8.0 in package.json and package-lock.json, update @remnawave/backend-contract to 2.8.0 (26e488af)
- Update monaco-yaml dependency to version 5.5.0 (d8cf3dfb)
- i18n: Update translations (#346)
- i18n: Update translations (#347)
- Remove tsconfig references to tsconfig.node.json (9da0267e)
- Update package dependencies to latest versions (2851ec36)
- i18n: Update translations (#349)
- i18n: Update translations (#350)
- i18n: Update translations (#351)
- i18n: Update translations (#355)
- i18n: Update translations (#359)
- i18n: Update translations (#361)
- i18n: Update translations (#362)
- i18n: Update translations (#364)
- i18n: Update translations (#365)
- i18n: Update translations (#366)
- i18n: Update translations (#367)
- i18n: Update translations (#368)
- i18n: Update translations (#369)
- i18n: Update translations (#370)
- i18n: Update translations (#372)
- i18n: Update translations (#373)
- i18n: Update translations (#374)
- i18n: Update translations (#375)
- i18n: Update translations (#376)
- Update issue template links for bug reports and feature requests (6c20774e)
- i18n: Update translations (#377)
- Update dependencies (7f89161d)
- Update nodes datatable cache key to version 4 (11617263)
- i18n: Update translations (#378)
- i18n: Update translations (#379)
- i18n: Update translations (#380)
- Update dependencies (60fa6175)
- Update package dependencies and refactor router imports to use 'react-router' (762c0b7f)
- Update lock file (445a8f4d)
- i18n: Update translations (#381)
- i18n: Update translations (#382)
- i18n: Update translations (#383)
- i18n: Update translations (#384)
- Update package dependencies (53cf1c49)
- i18n: Update translations (#385)
- Update package dependencies and improve table column formatting (19e378b3)
- Remove unused global script from index.html (3231121c)
- Update brand logo URL description (ddf35bbd)
- i18n: Update translations (#386)
- Import Lottie setup utility in main entry file (12adc891)
- i18n: Update translations (#388)
- i18n: Update translations (#389)
- i18n: Update translations (#390)
- i18n: Update translations (#391)
- i18n: Update translations (#392)
- i18n: Update translations (#393)
- i18n: Update translations (#394)
- Update package dependencies to latest versions (45724b54)
- i18n: Update translations (#395)
- i18n: Update translations (#396)
- Migrate to oxlint (f049cb5a)
- Format (1d9d26a1)
- Add import-reformat commit to blame ignore list (da6c339d)
- Update ignore patterns in oxfmtrc to exclude additional locale directories (a3adec73)
- i18n: Update translations (#397)
- i18n: Update translations (#398)
- i18n: Update translations (#399)
- i18n: Update translations (#400)
- i18n: Update translations (#401)
- Update @remnawave/backend-contract (940218b6)
- i18n: Update translations (#402)
- i18n: Update translations (#403)
- Update dependencies (293e24de)
- Release v2.8.0 (f1a4b1be)
🎨 Styles
- Update ActionIcon variants and colors in user action group and card title components (ca9dbbcb)
📦 Artifacts
- remnawave-frontend.zip - archive with built frontend
🔍 Details
- Commit: f1a4b1b
- Branch: 2.8.0
- Build time: 2026-06-29T19:02:00+03:00
What's Changed
- chore(i18n): update translations by @github-actions[bot] in #339
- chore(i18n): update translations by @github-actions[bot] in #342
- chore(i18n): update translations by @github-actions[bot] in #343
- fix: label traffic units as GiB by @Katze-942 in #345
- chore(i18n): update translations by @github-actions[bot] in #346
- chore(i18n): update translations by @github-actions[bot] in #347
- chore(i18n): update translations by @github-actions[bot] in #349
- chore(i18n): update translations by @github-actions[bot] in #350
- chore(i18n): update translations by @github-actions[bot] in #351
- chore(i18n): update translations by @github-actions[bot] in #355
- fix(infra-billing): keep date-only picks in UTC so 1st-of-month records count by @TopPro104 in #354
- chore(i18n): update translations by @github-actions[bot] in #359
- chore(i18n): update translations by @github-actions[bot] in #361
- chore(i18n): update translations by @github-actions[bot] in #362
- chore(i18n): update translations by @github-actions[bot] in #364
- chore(i18n): update translations by @github-actions[bot] in #365
- chore(i18n): update translations by @github-actions[bot] in #366
- chore(i18n): update translations by @github-actions[bot] in #367
- chore(i18n): update translations by @github-actions[bot] in #368
- chore(i18n): update translations by @github-actions[bot] in #369
- chore(i18n): update translations by @github-actions[bot] in #370
- chore(i18n): update translations by @github-actions[bot] in #372
- chore(i18n): update translations by @github-actions[bot] in #373
- chore(i18n): update translations by @github-actions[bot] in #374
- chore(i18n): update translations by @github-actions[bot] in #375
- chore(i18n): update translations by @github-actions[bot] in #376
- chore(i18n): update translations by @github-actions[bot] in #377
- chore(i18n): update translations by @github-actions[bot] in #378
- chore(i18n): update translations by @github-actions[bot] in #379
- chore(i18n): update translations by @github-actions[bot] in #380
- chore(i18n): update translations by @github-actions[bot] in #381
- chore(i18n): update translations by @github-actions[bot] in #382
- chore(i18n): update translations by @github-actions[bot] in #383
- chore(i18n): update translations by @github-actions[bot] in #384
- chore(i18n): update translations by @github-actions[bot] in #385
- chore(i18n): update translations by @github-actions[bot] in #386
- chore(i18n): update translations by @github-actions[bot] in #388
- chore(i18n): update translations by @github-actions[bot] in #389
- chore(i18n): update translations by @github-actions[bot] in #390
- chore(i18n): update translations by @github-actions[bot] in #391
- chore(i18n): update translations by @github-actions[bot] in #392
- chore(i18n): update translations by @github-actions[bot] in #393
- chore(i18n): update translations by @github-actions[bot] in #394
- chore(i18n): update translations by @github-actions[bot] in #395
- chore(i18n): update translations by @github-actions[bot] in #396
- chore(i18n): update translations by @github-actions[bot] in #397
- chore(i18n): update translations by @github-actions[bot] in #398
- chore(i18n): update translations by @github-actions[bot] in #399
- chore(i18n): update translations by @github-actions[bot] in #400
- chore(i18n): update translations by @github-actions[bot] in #401
- chore(i18n): update translations by @github-actions[bot] in #402
- chore(i18n): update translations by @github-actions[bot] in #403
New Contributors
- @Katze-942 made their first contribution in #345
- @TopPro104 made their first contribution in #354
Full Changelog: 2.7.4...2.8.0