[v0.9.1] - 2026-10-17
🚀 Features & Enhancements
- Client HWID & Device Model Tracking via Subscription:
- Implemented automatic extraction and recording of client device Hardware ID (
HWID), device/phone model, operating system, and proxy client application from subscription requests. - URL Query Parameters: Supported explicit parameters:
?hwid=...(aliases:?device_id=...,?deviceId=...,?client_id=...,?uid=...) and?model=...(aliases:?device=...,?device_model=...,?phone=...,?deviceName=...). - Custom HTTP Headers: Added support for
X-HWID,X-Device-Id,X-Device-ID,X-Client-HWID,HWID,X-Device-Model,X-Model,X-Device-Name, andDevice-Model. - Zero-Config Intelligent User-Agent Resolver:
- Apple iOS / iPadOS: Maps internal hardware identifiers (e.g.,
iPhone15,2→iPhone 14 Pro,iPhone16,1→iPhone 15 Pro, iPads, etc.) and resolves Darwin/CFNetwork kernel versions to exact iOS versions (Darwin/24→iOS 18,Darwin/23→iOS 17, etc.). - Android Devices: Accurately parses Samsung Galaxy model numbers (e.g.,
SM-S928B→Samsung Galaxy S24 Ultra), Google Pixel series, Xiaomi, Redmi, POCO, OnePlus, and Android OS versions. - Desktop Platforms: Distinguishes Windows PC (
Windows 10/11, etc.), macOS (Intel & Apple Silicon), and Linux. - Client Applications: Built-in support for V2Box, Streisand, Throne, Happ/HappProxy, v2rayNG, Exclave, Hiddify/HiddifyNext, Shadowrocket, Sing-box (SFA/SFM/SFW), Clash/ClashMeta/Clash Verge/FlClash/Stash, NekoBox/NekoRay, Surge, Loon, Quantumult X, Karing, FoXray, and a generic
<AppName>/<Version>fallback.
- Apple iOS / iPadOS: Maps internal hardware identifiers (e.g.,
- Database Persistence: Extended
model.NodeClientwith device metadata and createdmodel.ClientDevicetable for retaining multi-device session history with automatic GORM SQLite migration. - REST API Endpoints: Added
GET /panel/api/clients/:id/devicesandPOST /panel/api/clients/:id/clearDevices.
- Implemented automatic extraction and recording of client device Hardware ID (
- Modern Device & Subscription UI in Client Detail Modal:
- Built a modern 2×2 Bento Grid layout for the Client Detail Modal:
- Device Model Card: Prominently shows detected or reported device model (or clean
Nonestatus). - Device HWID Card: Features a compact code pill for the hardware ID with a one-click copy button.
- Client App & OS Card: Displays styled pill badges for client application and operating system.
- Last Subscription Sync Card: Shows formatted sync timestamp alongside an IP pill badge.
- Device Model Card: Prominently shows detected or reported device model (or clean
- Theme-aware vector SVG icons eliminating missing font square glyphs across all operating systems and browsers.
- Connected devices history table displaying each device's model, app/OS, IP, HWID (with copy button), and last seen timestamp.
- Clear Devices action with instant UI state reset and confirmation toast.
- Client search filter upgraded to search by
deviceModelanddeviceHwid.
- Built a modern 2×2 Bento Grid layout for the Client Detail Modal:
🐛 Bug Fixes & Refinements
- Connected Devices Deduplication & Consolidation:
- Fixed duplicate device entries in the connected devices list caused by IP changes, cellular/Wi-Fi transitions, and app updates.
- Implemented multi-tier device deduplication (
DeduplicateDevicesandMatchesDeviceInfo) prioritizing HWID, specific hardware model, client app family, and OS. - Added automatic database duplicate pruning during subscription check-ins to cleanly consolidate historical records.
- Client Detail Modal UI Cleanup:
- Removed subscription URL device parameter hint banner (
deviceParamHint) to streamline the client detail interface.
- Removed subscription URL device parameter hint banner (
- mKCP & QUIC Congestion Localization:
- Fixed
Failed to localize message: message "pages.inbounds.stream.kcp.congestion" not found in languageby definingpages.inbounds.stream.kcp.congestionandpages.inbounds.stream.finalmask.congestionacross all 13 supported languages (en_US,zh_CN,zh_TW,fa_IR,ru_RU,uk_UA,tr_TR,pt_BR,es_ES,ja_JP,vi_VN,id_ID,ar_EG). - Localized Congestion switches in mKCP inbound form (
stream_kcp.html) and outbound stream settings (outbound.html).
- Fixed
- Inbound & Client Creation Separation:
- Adding an inbound now defaults to 0 clients without creating dummy or random users, enforcing clean separation between inbound management and client management.
- Protocol templates (
VLESS,VMess,Trojan,Shadowsocks,WireGuard,Hysteria,MASQUE) updated to initialize with empty client arrays. - Inbounds table now displays an orange "Add Client" badge when an inbound has 0 clients.
- Added "Add Client" and "Add Bulk" row menu actions directly in the inbounds table.
- Updated client deletion logic to permit deleting the last client of an inbound.
- Guarded link and subscription QR exports with warning toasts when an inbound has no clients.
- Shadowsocks-2022 Validation & FinalMask Upstream Sync:
- Implemented validation for Shadowsocks-2022 multi-user passwords and single-user keys (
2022-blake3-aes-128-gcm,2022-blake3-aes-256-gcm,2022-blake3-chacha20-poly1305) adhering to base64 length constraints. - Synchronized FinalMask transport stream configuration fields across inbounds (
stream_finalmask.html,stream_finalmask_fields.html), outbounds, and database inbound models. - Added Cloudflare WARP MASQUE transport stream settings and modal generation.
- Added Mojang Minecraft server profile generator service for authentic masquerade configurations.
- Implemented validation for Shadowsocks-2022 multi-user passwords and single-user keys (
- Xray-core Alignment (v26.9.9 to v26.10.10 and Latest Main Commit):
- Upgraded core dependency to latest
xray-core(0f3d884786f9/ v26.10.10 release) alongside updatedreality(83f621788ca8),gopher-lua, andx509roots/fallbackmodules ingo.modandvendor/. - Updated default Xray-core download URLs in
DockerInit.shand release workflow (release.yml) fromv26.9.30tov26.10.10.
- Upgraded core dependency to latest
- TLS Built-in RootCAs &
useSystemCAControl:- Aligned with Xray-core's default behavior of using built-in Mozilla RootCAs to protect against maliciously injected root certificates in the OS.
- Added
useSystemCAtoggle switch across Inbound TLS settings (tls_settings.html) and Outbound TLS settings (outbound.html). - Added serialization and state management in both inbound and outbound TLS stream models (
inbound.js,outbound.js).
- Lua Script Support for Dynamic Routing & DNS:
- Integrated Lua script execution panels for both Routing and DNS in Xray template settings (
xray.html). - Added
routingScriptanddnsScriptcomputed bindings for full bidirectional template serialization. - Added
Server ID(id) input to the DNS server modal (dns_modal.html), allowing DNS servers to be easily referenced from Lua resolution scripts.
- Integrated Lua script execution panels for both Routing and DNS in Xray template settings (
- Noise FinalMask Lua Script Support:
- Added Lua
scriptfield to Noise FinalMask stream settings across inbounds (stream_finalmask.html), outbounds (outbound.html), and frontend models (inbound.js,outbound.js).
- Added Lua
- XDNS FinalMask Schema Compatibility & Normalization:
- Built automatic backend normalization (
NormalizeStreamSettingsinxray.goandinbound.go) converting legacy string array domain and resolver configurations to Xray v26.10.10's structureddomainsandresolversschema (names,addrs,worker, etc.), ensuring existing database entries load seamlessly without JSON unmarshaling errors.
- Built automatic backend normalization (
- MASQUE Protocol & Transport Enhancements:
- Added WARP configuration options (Private Key, Public Key, Address) to MASQUE transport stream settings in
outbound.jsandoutbound.html. - Added
hotAddUserToInboundAPI support taking advantage ofxray api aducompatibility for Hysteria and MASQUE.
- Added WARP configuration options (Private Key, Public Key, Address) to MASQUE transport stream settings in
🐛 Bug Fixes & Stability
- Fixed Missing Font Glyphs: Replaced font icon calls with inline SVGs for device indicators in the modal.
- Client Modal Shadowsocks Guard: Fixed client modal crash when adding the first Shadowsocks client to an inbound with 0 clients.
- Local GCC Compilation on Windows: Resolved missing
ld.exelinker issue under scoop GCC toolchain.
🌐 Localization
- Added translation strings for
useSystemCA,routingScript,dnsScript, andnoiseScriptacross all 13 supported languages (ar_EG,en_US,es_ES,fa_IR,id_ID,ja_JP,pt_BR,ru_RU,tr_TR,uk_UA,vi_VN,zh_CN,zh_TW). - Added translations for device info, client separation notice, and 0-client warnings in English (
en_US), Chinese (zh_CN), and Persian (fa_IR). - Synchronized FinalMask stream settings and WARP MASQUE translations across all 13 supported languages.