Ship AIVPN smart protocol picker and bump to v3.0.0.

Heuristic selection (stealth/balanced/speed) for invites, guest create, and user connections.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
orohimaru2
2026-08-09 18:11:24 +03:00
co-authored by Cursor
parent 01196c066a
commit abbd160dd8
12 changed files with 587 additions and 52 deletions
+8 -1
View File
@@ -197,7 +197,7 @@
const xuiDefaultInbound = {{ xui_default_inbound | int }};
const xuiDefaultPanelId = {{ (xui_default_panel_id or '') | tojson }};
const VPN_PROTO_ORDER = ['awg2', 'awg', 'awg_legacy', 'wireguard', 'xray', 'telemt', 'hysteria', 'naiveproxy', 'mieru'];
const PROTO_TITLES = {
const PROTO_TITLES = {
awg2: 'AmneziaWG 2.0',
awg: 'AmneziaWG',
awg_legacy: 'AWG Legacy',
@@ -207,6 +207,7 @@
hysteria: 'Hysteria 2',
naiveproxy: 'NaiveProxy',
mieru: 'Mieru',
aivpn: 'AIVPN (auto)',
xui: '3x-ui VLESS',
};
@@ -264,6 +265,12 @@
return;
}
const aivpnOpt = document.createElement('option');
aivpnOpt.value = 'aivpn';
aivpnOpt.textContent = _('aivpn_protocol_option') || 'AIVPN (auto)';
if (preferProtocol === 'aivpn') aivpnOpt.selected = true;
sel.appendChild(aivpnOpt);
installed.forEach(key => {
const opt = document.createElement('option');
opt.value = key;