π MTProto, WARP Rotation, Subscription Outbounds & a Typed API
- π‘οΈ MTProto (FakeTLS) β new protocol served through a managed
mtgsidecar, no external setup required. - π WARP IP rotation β rotate WARP egress IPs manually or automatically on a schedule, with API requests routed through the panel proxy.
- π Subscription-based outbounds β import outbounds straight from a subscription URL, with automatic refresh.
- π¨ Customizable subscription pages β bring-your-own templates for the subscription landing page.
- π Typed API & OpenAPI β components, schemas, and response examples generated directly from the Go structs;
/panel/settingand/panel/xrayconsolidated under/panel/api. - πΈοΈ Multi-hop nodes β correct traffic attribution across chained sub-nodes, synchronized
access.logclient IPs across nodes, and a distinct purple indicator when the panel is online but the Xray core has failed. - π Per-group traffic β used traffic now shown for each group in the groups table.
β οΈ Breaking:
/panel/settingand/panel/xraymoved under/panel/api. Update any integrations that call those paths.
π New
- feat(mtproto): add MTProto (FakeTLS) protocol via managed mtg sidecar (#5076)
- feat: add manual and automatic WARP IP rotation (#5099) @rqzbeh
- feat: synchronize access.log client IPs across nodes (#5098) @rqzbeh
- feat: add support for subscription-based outbounds with auto-update (#5037) @rqzbeh
- feat: customizable subscription page templates (#5079) @rqzbeh
- feat(nodes): multi-hop node attribution for chained sub-nodes (#4983, #5005)
- feat(nodes): distinct purple indicator when panel is online but Xray core failed (#5040) @rqzbeh
- feat(groups): show used traffic per group in groups table
- feat(api-docs): generate OpenAPI components/schemas from Go structs
- feat(api-docs): generate response examples from Go structs; fix SS2022 PSK regen (#4996)
- feat(x-ui.sh): add migrateDB command for SQLite .db β .dump (#4910)
β‘ Update & improvement
- refactor(api)!: move /panel/setting and /panel/xray under /panel/api
- fix(subClashService): improve merging of clash rules in YAML (#5054) @shazzreab
- fix(update.sh): allow skipping ssl setup when updating (#5071)
- chore: bump frontend version and deps
- i18n(tr): improve Turkish translation consistency and terminology (#5066)
- docs(i18n): add Turkish translation for README (#5067)
- docs(i18n): refine Turkish translation and network terminology (#5092)
- i18n: translate sockopt / REALITY-target / Freedom strings for all locales (#4988)
π Bug fixed
- fix: propagate inbound traffic reset to nodes (#5103) @rqzbeh
- fix: route WARP API requests through panel proxy (#5101) @rqzbeh
- fix(db): additional cross-DB and node-traffic edge cases (migration scan + node reset time) (#5045) @rqzbeh
- fix(postgres): make node traffic sync robust after public API inbound updates (#5038) @rqzbeh
- fix(node-sync): merge client enable with boolean AND for PostgreSQL
- fix(xray): sync routing rules when outbound tag is renamed (#5006) @nima1024m
- fix(panel): normalize XHTTP/sockopt/Reality wire output and validate REALITY target (#4988) @nima1024m
- fix(sub): emit VLESS encryption in Clash configs (#5053) @fs438187
- fix(sub): restore standard base64 for Shadowrocket sub link (#5001)
- fix(sub): don't project public inbounds through a fallback master
- fix(inbounds): drop unknown nodeId when importing an inbound
- fix(finalmask): validate fragment mask length so empty/zero-min can't crash xray
- fix(finalmask): treat sudoku customTables as array of tables
- fix(iplimit): skip stale access-log emails after client rename/delete
- fix(tgbot): apply bot settings on panel restart without full service restart
- fix(script): revoke also removes cert files and acme.sh tracking (#5009)
- fix: default hysteria tls to no utls fingerprint
- fix: correct arm architecture xray binary file name (#5060)
- fix(api-docs): target the panel base path in OpenAPI servers
- fix(ui): correct inline style syntax in client counts column on inbounds page (#5097)
- fix(ui): remove pointer cursor from non-interactive elements in cards (#5102)
- fix(inbound-form): wrap long labels and shorten RU pinned-cert label
- fix(mtproto): reap orphaned mtg, fix SysLog viewer, mtg log visibility, export remark
Reports
Full Changelog: v3.2.8...v3.3.0