fix: resolve dashboard tile unselection, fuzzer probe parsing and complete translations

This commit is contained in:
Dushnilin
2026-09-16 09:45:06 +03:00
parent 86d6e92ce7
commit 4d6892e733
10 changed files with 127 additions and 78 deletions
+12
View File
@@ -1364,6 +1364,18 @@ const dictionary = {
"Subnet %s is a Cloudflare Anycast range used by Discord Voice. Only UDP voice traffic (ports 50000-65535, 3478, 19294-19344, 5000-5020) is routed through this section; web traffic (TCP 80/443) goes direct.": "Подсеть %s — диапазон Cloudflare Anycast, используемый Discord Voice. Только голосовой UDP-трафик (порты 50000-65535, 3478, 19294-19344, 5000-5020) направляется через этот раздел; веб-трафик (TCP 80/443) идет напрямую.",
"Add URLs or local paths to .lst / .txt lists containing domains and subnets.": "Добавьте URL или локальные пути к спискам .lst / .txt, содержащим домены и подсети.",
"Add URLs or local paths to .lst / .txt lists containing domains. IP entries are ignored.": "Добавьте URL или локальные пути к спискам .lst / .txt, содержащим домены. IP-записи игнорируются.",
"🔍 Analyzing DPI blocking patterns...": "🔍 Анализ паттернов блокировки DPI...",
"🧬 Adaptive Smart Fuzzing (Genetic / Prior Seeds)": "🧬 Адаптивный умный фаззинг (генетический / по базовым шаблонам)",
"🛡️ Stage 2: Stability Verification": "🛡️ Этап 2: Проверка стабильности",
"FPTN Access Token": "Токен доступа FPTN",
"FPTN Bypass Method": "Метод обхода FPTN",
"FPTN Preferred Server": "Предпочитаемый сервер FPTN",
"FPTN SNI": "SNI для FPTN",
"Optional: override bypass method (e.g. quic, tcp)": "Опционально: переопределить метод обхода (напр. quic, tcp)",
"Optional: override TLS SNI for FPTN connection": "Опционально: переопределить TLS SNI для подключения FPTN",
"Optional: preferred FPTN server address": "Опционально: предпочитаемый адрес сервера FPTN",
"stability (3x)": "стабильность (3x)",
"Stage 1: Exploration Scan": "Этап 1: Разведочное сканирование",
};
function escapePoString(str) {
+7 -7
View File
@@ -2933,7 +2933,7 @@
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16027",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2069",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5713",
"src/tachyon/methods/custom/getDashboardSections.ts:1860",
"src/tachyon/methods/custom/getDashboardSections.ts:1864",
"src/tachyon/tabs/dashboard/partials/renderSections.ts:335",
"src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:172"
]
@@ -8836,7 +8836,7 @@
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16038",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2069",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5713",
"src/tachyon/methods/custom/getDashboardSections.ts:1863",
"src/tachyon/methods/custom/getDashboardSections.ts:1867",
"src/tachyon/tabs/dashboard/partials/renderSections.ts:338",
"src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:46",
"src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:183"
@@ -11162,8 +11162,8 @@
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:3108",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:3109",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:327",
"src/tachyon/methods/custom/getDashboardSections.ts:1713",
"src/tachyon/methods/custom/getDashboardSections.ts:1858",
"src/tachyon/methods/custom/getDashboardSections.ts:1717",
"src/tachyon/methods/custom/getDashboardSections.ts:1862",
"src/tachyon/tabs/dashboard/partials/renderSections.ts:333",
"src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:166"
]
@@ -12646,8 +12646,8 @@
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5713",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:3114",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:333",
"src/tachyon/methods/custom/getDashboardSections.ts:1713",
"src/tachyon/methods/custom/getDashboardSections.ts:1862",
"src/tachyon/methods/custom/getDashboardSections.ts:1717",
"src/tachyon/methods/custom/getDashboardSections.ts:1866",
"src/tachyon/tabs/dashboard/partials/renderSections.ts:337",
"src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:178"
]
@@ -14266,7 +14266,7 @@
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5713",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:3131",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:354",
"src/tachyon/methods/custom/getDashboardSections.ts:1864",
"src/tachyon/methods/custom/getDashboardSections.ts:1868",
"src/tachyon/tabs/dashboard/partials/renderSections.ts:339",
"src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:188"
]
+9 -9
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: TACHYON\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-16 05:36+0300\n"
"PO-Revision-Date: 2026-09-16 05:36+0300\n"
"POT-Creation-Date: 2026-09-16 06:44+0300\n"
"PO-Revision-Date: 2026-09-16 06:44+0300\n"
"Last-Translator: Dushnilin <dushnilin@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
@@ -1845,7 +1845,7 @@ msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16027
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2069
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5713
#: src/tachyon/methods/custom/getDashboardSections.ts:1860
#: src/tachyon/methods/custom/getDashboardSections.ts:1864
#: src/tachyon/tabs/dashboard/partials/renderSections.ts:335
#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:172
msgid "Conflict"
@@ -5477,7 +5477,7 @@ msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16038
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2069
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5713
#: src/tachyon/methods/custom/getDashboardSections.ts:1863
#: src/tachyon/methods/custom/getDashboardSections.ts:1867
#: src/tachyon/tabs/dashboard/partials/renderSections.ts:338
#: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:46
#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:183
@@ -6906,8 +6906,8 @@ msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:3108
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:3109
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:327
#: src/tachyon/methods/custom/getDashboardSections.ts:1713
#: src/tachyon/methods/custom/getDashboardSections.ts:1858
#: src/tachyon/methods/custom/getDashboardSections.ts:1717
#: src/tachyon/methods/custom/getDashboardSections.ts:1862
#: src/tachyon/tabs/dashboard/partials/renderSections.ts:333
#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:166
msgid "Running"
@@ -7808,8 +7808,8 @@ msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5713
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:3114
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:333
#: src/tachyon/methods/custom/getDashboardSections.ts:1713
#: src/tachyon/methods/custom/getDashboardSections.ts:1862
#: src/tachyon/methods/custom/getDashboardSections.ts:1717
#: src/tachyon/methods/custom/getDashboardSections.ts:1866
#: src/tachyon/tabs/dashboard/partials/renderSections.ts:337
#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:178
msgid "Stopped"
@@ -8813,7 +8813,7 @@ msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5713
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:3131
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:354
#: src/tachyon/methods/custom/getDashboardSections.ts:1864
#: src/tachyon/methods/custom/getDashboardSections.ts:1868
#: src/tachyon/tabs/dashboard/partials/renderSections.ts:339
#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:188
msgid "Unknown"
+14 -14
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: TACHYON\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-16 08:36+0300\n"
"PO-Revision-Date: 2026-09-16 08:36+0300\n"
"POT-Creation-Date: 2026-09-16 09:44+0300\n"
"PO-Revision-Date: 2026-09-16 09:44+0300\n"
"Last-Translator: Dushnilin\n"
"Language-Team: none\n"
"Language: ru\n"
@@ -138,7 +138,7 @@ msgid "🔄 Reset to Factory Defaults"
msgstr "🔄 Сбросить к заводским настройкам"
msgid "🔍 Analyzing DPI blocking patterns..."
msgstr ""
msgstr "🔍 Анализ паттернов блокировки DPI..."
msgid "🔍 Combinatorial Deep Fuzzing (~150-300+)"
msgstr "🔍 Комбинаторный глубокий фаззинг (~150-300+)"
@@ -156,7 +156,7 @@ msgid "🧠 Synthesizing..."
msgstr "🧠 Генерация..."
msgid "🧬 Adaptive Smart Fuzzing (Genetic / Prior Seeds)"
msgstr ""
msgstr "🧬 Адаптивный умный фаззинг (генетический / по базовым шаблонам)"
msgid "🚀 Initializing benchmark in sandbox..."
msgstr "🚀 Инициализация бенчмарка в песочнице..."
@@ -180,7 +180,7 @@ msgid "🛡️ SECURE: Public IP is concealed behind the proxy outbound."
msgstr "🛡️ ЗАЩИЩЕНО: Публичный IP-адрес скрыт за исходящим прокси."
msgid "🛡️ Stage 2: Stability Verification"
msgstr ""
msgstr "🛡️ Этап 2: Проверка стабильности"
msgid "🟣 Twitch Suite (Live Stream + HLS CDN)"
msgstr "🟣 Twitch (Прямой эфир + HLS CDN)"
@@ -2190,16 +2190,16 @@ msgid "Found"
msgstr "Найдено"
msgid "FPTN Access Token"
msgstr ""
msgstr "Токен доступа FPTN"
msgid "FPTN Bypass Method"
msgstr ""
msgstr "Метод обхода FPTN"
msgid "FPTN Preferred Server"
msgstr ""
msgstr "Предпочитаемый сервер FPTN"
msgid "FPTN SNI"
msgstr ""
msgstr "SNI для FPTN"
msgid "France (fr)"
msgstr "Франция (fr)"
@@ -3579,13 +3579,13 @@ msgid "Optional values must be attached with '=' here; a separate token would be
msgstr "Опциональные значения должны быть присоединены через '=' здесь; отдельный токен будет игнорироваться nfqws2."
msgid "Optional: override bypass method (e.g. quic, tcp)"
msgstr ""
msgstr "Опционально: переопределить метод обхода (напр. quic, tcp)"
msgid "Optional: override TLS SNI for FPTN connection"
msgstr ""
msgstr "Опционально: переопределить TLS SNI для подключения FPTN"
msgid "Optional: preferred FPTN server address"
msgstr ""
msgstr "Опционально: предпочитаемый адрес сервера FPTN"
msgid "Optionally specify individual devices not in a profile. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the IP changes."
msgstr "При необходимости укажите отдельные устройства вне профилей. MAC-адреса (напр. AA:BB:CC:DD:EE:FF) работают даже при смене IP."
@@ -4773,10 +4773,10 @@ msgid "SSH"
msgstr "SSH"
msgid "stability (3x)"
msgstr ""
msgstr "стабильность (3x)"
msgid "Stage 1: Exploration Scan"
msgstr ""
msgstr "Этап 1: Разведочное сканирование"
msgid "Standalone ByeDPI autostart is enabled"
msgstr "Автозапуск отдельной службы ByeDPI включен"
@@ -128,9 +128,9 @@ type ChildType =
| 'priority_level';
const DASHBOARD_SECTION_CACHE_DIR = '/var/run/tachyon/section-cache';
const CLASH_API_FETCH_TIMEOUT_MS = 1200;
const CLASH_API_FETCH_TIMEOUT_MS = 2500;
let directClashApiFailedAt = 0;
const DIRECT_CLASH_API_COOLDOWN_MS = 60_000;
const DIRECT_CLASH_API_COOLDOWN_MS = 10_000;
export function resetDirectClashApiState() {
directClashApiFailedAt = 0;
@@ -1274,7 +1274,11 @@ function buildProxyGroupOutbounds(
...priorityCodes,
]);
const selectorNow = selector?.value?.now;
const selectorNow =
selector?.value?.now ||
(selectorCodes.length > 0 ? selectorCodes[0] : undefined) ||
urlTestCodes[0] ||
priorityCodes[0];
const outbounds = uniqueCodes(groupCodes).flatMap((code) => {
const item = proxyByCode.get(code);