3x-ui/frontend/src
biohazardous-man 97f88fb1a9
feat(sub): modern xray JSON format with unified finalmask editor (#4912)
* feat(sub): add finalmask support to JSON subscriptions

* feat(sub): modern xray JSON format with unified finalmask editor

Drop the legacy JSON subscription format entirely and always emit the
modern xray shape:

- Flatten proxy outbounds (no vnext/servers) for vless/vmess/trojan/
  shadowsocks; hysteria was already flat.
- Express fragment/noise via streamSettings.finalmask instead of the
  legacy direct_out freedom dialer + dialerProxy sockopt.

The global finalmask (tcp/udp masks + quicParams) is stored as a single
setting (subJsonFinalMask) and merged into every generated stream,
replacing the separate subJsonFragment/subJsonNoises/subJsonQuicParams
settings.

Reuse the existing FinalMaskForm (used by inbound/outbound) for the
settings UI via a small bridge component; add a showAll prop so all
TCP/UDP/QUIC sections render for the global case. This supersedes the
hand-rolled Fragment/Noises/quicParams tabs with the full mask editor
(all mask types).

Note: this is a breaking change — JSON subscriptions now require a
recent xray client on the consumer side.

* fix

---------

Co-authored-by: biohazardous-man <biohazardous-man@users.noreply.github.com>
Co-authored-by: MHSanaei <ho3ein.sanaei@gmail.com>
2026-06-04 23:51:48 +02:00
..
api fix(online): scope per-inbound online to inbounds that carried traffic 2026-06-03 16:19:00 +02:00
components feat(dashboard): richer System History & Xray Metrics charts 2026-06-03 11:25:45 +02:00
entries Migrate frontend models/api/utils to TypeScript and modernize AntD theming (#4563) 2026-05-25 14:34:53 +02:00
generated feat(sub): modern xray JSON format with unified finalmask editor (#4912) 2026-06-04 23:51:48 +02:00
hooks fix(xray): clear dirty state after saving unchanged config 2026-06-02 02:08:06 +02:00
i18n Frontend rewrite: React + TypeScript with AntD v6 (#4498) 2026-05-23 15:21:45 +02:00
layouts fix(sidebar): set fixed sider width to 220 2026-06-03 21:52:48 +02:00
lib feat(sub): modern xray JSON format with unified finalmask editor (#4912) 2026-06-04 23:51:48 +02:00
models feat(sub): modern xray JSON format with unified finalmask editor (#4912) 2026-06-04 23:51:48 +02:00
pages feat(sub): modern xray JSON format with unified finalmask editor (#4912) 2026-06-04 23:51:48 +02:00
schemas feat(sub): modern xray JSON format with unified finalmask editor (#4912) 2026-06-04 23:51:48 +02:00
styles chore(ui): remove cards jump on hover (#4755) 2026-06-01 16:32:12 +02:00
test feat(tls): add ocspStapling to certificate config 2026-06-03 17:49:36 +02:00
utils fix(i18n): add 1-year expiration to language cookie (#4890) 2026-06-04 21:38:15 +02:00
env.d.ts feat(postgres): in-panel backup/restore and consistent CLI backend 2026-05-31 17:53:34 +02:00
main.tsx Migrate frontend models/api/utils to TypeScript and modernize AntD theming (#4563) 2026-05-25 14:34:53 +02:00
queryClient.ts feat(frontend): TanStack Query + React Router migration & in-panel API docs (#4541) 2026-05-24 21:34:52 +02:00
routes.tsx feat(clients,groups): client groups + sub-links export + dedicated groups page 2026-05-27 17:30:55 +02:00