[v0.8.6] - 2026-10-02
🚀 Features & Enhancements
- Client Auto-Refresh Controls:
- Added configurable auto-refresh interval selector (5s to 60s) and toggle switch to the Clients management page (
/panel/clients), matching Inbounds refresh behavior and persisting user preferences inlocalStorage. - Guarded client polling with
isLoadingClientsto prevent concurrent overlapping fetches during active refreshes.
- Added configurable auto-refresh interval selector (5s to 60s) and toggle switch to the Clients management page (
- Mobile Responsive Optimizations:
- Hid "Disabled" and "Ended" (
depleted) status tag badges on client name and near the traffic progress bar on mobile viewports (max-width: 768px) to keep the compact mobile table clean and prevent row stretching. - Added spacing and margins between auto-refresh switches and controls across both clients and inbounds pages.
- Hid "Disabled" and "Ended" (
- REST API Documentation (
API.md):- Added full REST API reference documentation covering authentication, system endpoints, server settings, inbounds, clients, subscriptions, and database backups.
🐛 Bug Fixes & Stability
- Inbound Client & Database Synchronization:
- Fixed issue where deleted clients were resurrected on panel restart:
nodeClientService.deleteInTx(),RemoveLink(), andSetLinks()now strip deleted/unlinked client credentials frominbounds.settingsJSON (clientsandpeers), preventingMigrateLegacyClients()from re-importing them on startup. - Purged associated
client_trafficsrecords upon client deletion to prevent orphaned statistics. - Fixed client deletion abort in
DelInboundClientwhen no traffic record exists by ignoringgorm.ErrRecordNotFound. - Added automatic unlinking and linking of
NodeClientrecords inUpdateInboundwhen modifying clients through the inbound modal. - Fixed client visibility when adding clients via the legacy
/addClientAPI:AddInboundClientnow automatically links and synchronizes clients withnode_clientsandnode_client_links. - Fixed client deletion via API:
DelInboundClientandDelInboundClientByEmailnow fully delete or unlinkNodeClientrecords to prevent orphaned entries from remaining in the panel.
- Fixed issue where deleted clients were resurrected on panel restart:
- PWA Offline Asset & Logo Caching:
- Replaced corrupted base64 fallback icon in
offline.htmlwith verified, crisp 192x192 TX-UI application icon. - Updated Service Worker (
sw.js) to cache versionv3and added all application logo icons (tx-ui-dark.png, standard/maskable 192x192 and 512x512 icons, favicons,manifest.json) toPRECACHE_ASSETS. - Expanded asset interceptor to handle root
/favicon.icoandmanifest.jsonrequests with offline cache fallback.
- Replaced corrupted base64 fallback icon in
- Server Shutdown & Restart Cleanliness:
- Suppressed redundant
net.ErrClosed(use of closed network connection) error logs when stopping listeners in web and sub servers during panel restarts.
- Suppressed redundant
- Xray & Subscription Services Stability:
- Resolved panic risks and nil-pointer dereferences in subscription service generators (
subService.go,subJsonService.go) and Xray API client handlers. - Fixed Reality fingerprint generation in subscription links to prevent invalid empty values.
- Fixed gRPC authority handling in outbound and subscription links, properly omitting empty authority fields.
- Fixed Hysteria protocol field formatting and added FinalMask stream crash safeguards.
- Resolved panic risks and nil-pointer dereferences in subscription service generators (
- Theme & Switcher Fixes:
- Fixed light/dark theme toggle bug where
#appelement theme classes were not properly synchronized upon toggle. - Corrected checkbox background, border contrast, checked, and indeterminate/select-all states across dark mode themes (preventing transparent blue or blinding white indeterminate states).
- Fixed light/dark theme toggle bug where
🎨 UI & Theme Polish
- Corrected selected table row background color and hover states in dark mode themes.
- Improved spacing, modal widths, and responsive layouts across Client Modal, Bulk Add Modal, and Inbound Info Modal.
🌐 Internationalization (i18n)
- Synced all 13 supported locale translation files (
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), resolving missing keys such aspages.xray.outbound.port.
📦 Refactoring & CI
- Removed legacy
node_clients.htmltemplate and obsolete backward-compatibility routes/aliases in favor of the unified/panel/clientsarchitecture. - Updated Docker CI workflow (
docker-image.yml) with automated tagging and release pipelines. - Bumped panel version to
0.8.6.