New
- feat(postgres): in-panel backup/restore and consistent CLI backend
- feat(nodes): bulk panel self-update with live online indicator
- feat(inbounds): multi-select and bulk delete
- feat(inbounds): attach existing clients to an inbound in one click
- feat(clients): live online dot + last-online tooltip on offline
- feat(clients): enforce unique subId per client like email
- feat(clients/inbounds): IP log popups, clearer titles, tag-based inbound labels
- feat(finalmask): sync transport with upstream Xray core changes
- feat(outbound): sync DNS outbound config with Xray core changes
- feat(sub): add HEAD method support for subscription endpoints (#4684) @spokyle
- feat(inbounds): clearer client validation errors on save
Update & improvement
- refactor(frontend): reorganize source tree & break down oversized modals/tabs (#4698)
- chore: bump bundled Xray-core to v26.6.1
- refactor(inbounds): remove column sorter from inbound list
- i18n(nodes): translate basePath and apiToken labels
- Update Go module dependency versions
Bug fixed
- fix(outbounds): preserve TLS/Reality security on save
- fix(outbounds): lock hysteria to its QUIC transport + TLS, add version/masquerade
- fix(outbounds): prevent freedom save crash, complete its fields (#4686)
- fix(outbounds): parse wireguard:// links and fix ss:// query-string port
- fix(outbounds): support proxyProtocol on freedom outbound
- fix(xray): test UDP outbounds via xray probe + Vision testseed & Flow form fixes (#4657)
- fix(inbounds): preserve client data on delete and show traffic in detail
- fix(inbounds): auto-increment WireGuard peer IP
- fix(model): accept tun protocol in inbound validation
- fix(clients): store flow per-inbound for shared clients
- fix(clients): preserve UUID when toggling enable from clients page
- fix(clients): persist group for node-inbound clients
- fix: reject spaces, slashes and control chars in client email, subId and URI path
- fix(ssl): prompt before setting IP cert path for panel
- fix(qr): hide QR for post-quantum links on client QR page
- fix(sub): keep listen/bind IP out of subscription links and pages
- fix(ui): exit infinite spinner with a retry card on failed initial load
- fix(postgres): resync id sequences so adding clients no longer collides
- fix(postgres): stop FK constraint from blocking inbound delete
- fix(postgres): record client traffic when inbound_id is stale
Reports
Full Changelog: v3.2.0...v3.2.5