From 939d9418a2c3f813a131a9b5b7fc513012e8ebe6 Mon Sep 17 00:00:00 2001 From: Dushnilin Date: Sat, 29 Aug 2026 13:57:17 +0300 Subject: [PATCH] release: 1.3.6 - Family Profiles, Mobile Responsiveness, Mixed Proxy fix & AI Doctor Fuzzer improvements --- fe-app-tachyon/locales/calls.json | 2621 ++++++++++------- fe-app-tachyon/locales/tachyon.pot | 2476 +++++++++------- fe-app-tachyon/locales/tachyon.ru.po | 459 ++- fe-app-tachyon/package-lock.json | 4 +- fe-app-tachyon/package.json | 2 +- fe-app-tachyon/src/partials/modal/styles.ts | 32 +- fe-app-tachyon/src/styles.ts | 42 + .../src/tachyon/methods/shell/index.ts | 5 +- .../shell/tests/componentAction.test.ts | 8 +- .../methods/shell/tests/fuzzerAction.test.ts | 4 +- .../partials/renderStrategyFuzzerModal.ts | 26 +- .../src/tachyon/tabs/updates/styles.ts | 9 +- .../resources/view/tachyon/main.js | 103 +- .../resources/view/tachyon/parental.js | 464 ++- .../resources/view/tachyon/tachyon.js | 16 +- luci-app-tachyon/po/ru/tachyon.po | 459 ++- luci-app-tachyon/po/templates/tachyon.pot | 2476 +++++++++------- tachyon/files/etc/config/tachyon | 28 + tachyon/files/usr/lib/config/validator.uc | 72 +- tachyon/files/usr/lib/core/common.uc | 21 + tachyon/files/usr/lib/nft/apply.uc | 188 +- .../files/usr/lib/service/parental_quota.uc | 52 +- tachyon/files/usr/lib/service/telegram.uc | 16 + tachyon/files/usr/lib/service/watchdog.uc | 26 +- tachyon/files/usr/lib/singbox/generator.uc | 113 +- tests/content_blocking.sh | 48 +- tests/mixed_port_selection.sh | 78 + tests/parental_control.sh | 75 +- 28 files changed, 6245 insertions(+), 3678 deletions(-) create mode 100644 tests/mixed_port_selection.sh diff --git a/fe-app-tachyon/locales/calls.json b/fe-app-tachyon/locales/calls.json index a41c43e4..7405e05e 100644 --- a/fe-app-tachyon/locales/calls.json +++ b/fe-app-tachyon/locales/calls.json @@ -53,8 +53,8 @@ "call": "+ Add Strategy", "key": "+ Add Strategy", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12509", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:803" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12668", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:851" ] }, { @@ -89,8 +89,8 @@ "call": "⚠️ Benchmark completed. No working bypass found for this target.", "key": "⚠️ Benchmark completed. No working bypass found for this target.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12848", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1197" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13131", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1388" ] }, { @@ -111,7 +111,7 @@ "call": "⚡ DPI Strategy Fuzzer", "key": "⚡ DPI Strategy Fuzzer", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10668", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10789", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:162" ] }, @@ -119,63 +119,71 @@ "call": "⚡ Fast (>1MB/s)", "key": "⚡ Fast (>1MB/s)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12142", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:383" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12299", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:429" ] }, { "call": "⚡ QUIC / HTTP/3 (UDP 443)", "key": "⚡ QUIC / HTTP/3 (UDP 443)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11970", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:187" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12099", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:198" ] }, { "call": "⚡ Quick Benchmark (Presets ~12-14)", "key": "⚡ Quick Benchmark (Presets ~12-14)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12007", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:232" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12136", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:243" ] }, { "call": "⚡ Strategy Fuzzer & Auto-Tuner", "key": "⚡ Strategy Fuzzer & Auto-Tuner", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13028", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1418" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13446", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1767" + ] + }, + { + "call": "✅ Auto-applied best strategy", + "key": "✅ Auto-applied best strategy", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13174", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1446" ] }, { "call": "✅ Benchmark completed! Optimal strategy identified.", "key": "✅ Benchmark completed! Optimal strategy identified.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12848", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1196" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13131", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1387" ] }, { "call": "✅ Working only", "key": "✅ Working only", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12133", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:374" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12290", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:420" ] }, { "call": "✈️ Telegram Suite (Web + Bot API)", "key": "✈️ Telegram Suite (Web + Bot API)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11967", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:184" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12096", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:195" ] }, { "call": "✔ Online", "key": "✔ Online", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8305", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8400", "src/tachyon/tabs/dashboard/initController.ts:1941" ] }, @@ -183,8 +191,8 @@ "call": "✔ Running", "key": "✔ Running", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8262", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8269", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8357", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8364", "src/tachyon/tabs/dashboard/initController.ts:1891", "src/tachyon/tabs/dashboard/initController.ts:1900", "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:498" @@ -194,7 +202,7 @@ "call": "✘ Offline", "key": "✘ Offline", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8305", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8400", "src/tachyon/tabs/dashboard/initController.ts:1941" ] }, @@ -202,8 +210,8 @@ "call": "✘ Stopped", "key": "✘ Stopped", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8262", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8269", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8357", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8364", "src/tachyon/tabs/dashboard/initController.ts:1891", "src/tachyon/tabs/dashboard/initController.ts:1900", "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:498" @@ -213,72 +221,80 @@ "call": "🌐 Custom Target URL...", "key": "🌐 Custom Target URL...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11971", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:188" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12100", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:199" ] }, { "call": "🎬 YouTube Suite (Web + 4K Stream)", "key": "🎬 YouTube Suite (Web + 4K Stream)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11952", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:169" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12081", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:180" ] }, { "call": "🏆 Apply Best Match", "key": "🏆 Apply Best Match", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12099", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:337" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12256", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:383" ] }, { "call": "🏴‍☠️ RuTracker Suite", "key": "🏴‍☠️ RuTracker Suite", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11969", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:186" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12098", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:197" ] }, { "call": "💬 Discord Suite (API + WSS + CDN)", "key": "💬 Discord Suite (API + WSS + CDN)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11957", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:174" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12086", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:185" ] }, { "call": "💾 Save Custom Patterns", "key": "💾 Save Custom Patterns", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12458", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:743" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12614", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:788" ] }, { "call": "📸 Instagram / Meta (Web + CDN)", "key": "📸 Instagram / Meta (Web + CDN)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11962", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:179" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12091", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:190" + ] + }, + { + "call": "🔄 Refresh", + "key": "🔄 Refresh", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12899", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1117" ] }, { "call": "🔄 Reset to Factory Defaults", "key": "🔄 Reset to Factory Defaults", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12470", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:756" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12626", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:801" ] }, { "call": "🔍 Combinatorial Deep Fuzzing (~40-80+)", "key": "🔍 Combinatorial Deep Fuzzing (~40-80+)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12012", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:237" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12141", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:248" ] }, { @@ -288,52 +304,68 @@ "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:753" ] }, + { + "call": "🗑️ Clear History", + "key": "🗑️ Clear History", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12904", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1122" + ] + }, { "call": "🧠 Synthesize with AI", "key": "🧠 Synthesize with AI", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12662", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12972", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:979", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1344" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12821", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13389", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1025", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1692" ] }, { "call": "🧠 Synthesizing...", "key": "🧠 Synthesizing...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12927", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1290" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13344", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1638" + ] + }, + { + "call": "🚀 Initializing benchmark in sandbox...", + "key": "🚀 Initializing benchmark in sandbox...", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13277", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1564" ] }, { "call": "🚀 Start Benchmark", "key": "🚀 Start Benchmark", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12227", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12874", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12921", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:483", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1229", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1283" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12382", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13165", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13337", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:527", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1434", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1630" ] }, { "call": "🛑 Stop Benchmark", "key": "🛑 Stop Benchmark", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12903", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12953", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1263", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1323" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13267", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13370", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1552", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1671" ] }, { "call": "🛠️ My Custom Strategies Only", "key": "🛠️ My Custom Strategies Only", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12014", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:239" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12143", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:250" ] }, { @@ -347,7 +379,7 @@ "call": "Accept routes", "key": "Accept routes", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3274" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3297" ] }, { @@ -362,7 +394,7 @@ "call": "Action failed", "key": "Action failed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9268", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9363", "src/tachyon/helpers/notifyActionFailure.ts:40" ] }, @@ -370,52 +402,54 @@ "call": "Action Mode", "key": "Action Mode", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:467" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:862" ] }, { "call": "Actions", "key": "Actions", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12202", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12575", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:455", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:879" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12357", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12734", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:499", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:926" ] }, { "call": "Active", "key": "Active", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7664", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15600", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16185", - "src/tachyon/tabs/dashboard/initController.ts:1127", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7759", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16018", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16603", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:349", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:355", "src/tachyon/tabs/monitoring/initController.ts:722", - "src/tachyon/tabs/monitoring/render.ts:20" + "src/tachyon/tabs/monitoring/render.ts:20", + "src/tachyon/tabs/dashboard/initController.ts:1127" ] }, { "call": "Active (Allowed)", "key": "Active (Allowed)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:379", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:399" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:752", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:772" ] }, { "call": "Active (Blocking)", "key": "Active (Blocking)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:379", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:399" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:752", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:772" ] }, { "call": "Active Bootstrap DNS", "key": "Active Bootstrap DNS", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9363", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9458", "src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:56" ] }, @@ -433,7 +467,7 @@ "call": "Active Connections", "key": "Active Connections", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8248", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8343", "src/tachyon/tabs/dashboard/initController.ts:1876" ] }, @@ -441,7 +475,7 @@ "call": "Active Main DNS", "key": "Active Main DNS", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9370", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9465", "src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:67" ] }, @@ -449,15 +483,22 @@ "call": "Active routes", "key": "Active routes", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11074", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11195", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:245" ] }, + { + "call": "Add a family profile", + "key": "Add a family profile", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:473" + ] + }, { "call": "Add a schedule rule", "key": "Add a schedule rule", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:473" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:487" ] }, { @@ -487,8 +528,8 @@ "call": "Add Custom DPI Strategy", "key": "Add Custom DPI Strategy", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12543", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:843" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12702", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:891" ] }, { @@ -533,11 +574,18 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3465" ] }, + { + "call": "Additional Individual Devices (IP / MAC)", + "key": "Additional Individual Devices (IP / MAC)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:810" + ] + }, { "call": "Additional marking rules found", "key": "Additional marking rules found", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9705", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9800", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:106" ] }, @@ -589,7 +637,7 @@ "call": "Adult content", "key": "Adult content", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:73" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:85" ] }, { @@ -610,14 +658,14 @@ "call": "Advertise exit node", "key": "Advertise exit node", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3257" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3280" ] }, { "call": "Advertise routes", "key": "Advertise routes", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3267" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3290" ] }, { @@ -660,7 +708,7 @@ "call": "AI Chat & Tachyon Assistant", "key": "AI Chat & Tachyon Assistant", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11818", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11939", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:235" ] }, @@ -668,7 +716,7 @@ "call": "AI Chat Assistant", "key": "AI Chat Assistant", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10658", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10779", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:152" ] }, @@ -676,8 +724,8 @@ "call": "AI Diagnostics & Strategy Rationale", "key": "AI Diagnostics & Strategy Rationale", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12680", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1000" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12839", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1046" ] }, { @@ -691,7 +739,7 @@ "call": "AI Doctor Diagnosis", "key": "AI Doctor Diagnosis", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14760", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15178", "src/tachyon/tabs/diagnostic/initController.ts:1563" ] }, @@ -699,9 +747,9 @@ "call": "AI Doctor failed", "key": "AI Doctor failed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14221", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14763", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14771", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14639", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15181", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15189", "src/tachyon/tabs/diagnostic/initController.ts:857", "src/tachyon/tabs/diagnostic/initController.ts:1569", "src/tachyon/tabs/diagnostic/initController.ts:1577" @@ -719,16 +767,16 @@ "call": "AI Doctor RAG", "key": "AI Doctor RAG", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11891", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:91" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12014", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:95" ] }, { "call": "AI DPI Engineer & Strategy Synthesizer", "key": "AI DPI Engineer & Strategy Synthesizer", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12702", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1025" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12861", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1071" ] }, { @@ -751,7 +799,7 @@ "call": "AI service error", "key": "AI service error", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11745", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11866", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:151" ] }, @@ -759,24 +807,24 @@ "call": "AI successfully synthesized custom strategies!", "key": "AI successfully synthesized custom strategies!", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12943", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1309" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13360", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1657" ] }, { "call": "AI Synthesis Error", "key": "AI Synthesis Error", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12966", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1338" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13383", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1686" ] }, { "call": "AI synthesis failed", "key": "AI synthesis failed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12965", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1337" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13382", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1685" ] }, { @@ -797,12 +845,12 @@ "call": "All", "key": "All", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12124", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15619", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16150", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12281", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16037", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16568", "src/tachyon/tabs/monitoring/initController.ts:681", "src/tachyon/tabs/monitoring/render.ts:40", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:365" + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:411" ] }, { @@ -816,16 +864,16 @@ "call": "All devices", "key": "All devices", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:201", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:225" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:589", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:598" ] }, { "call": "All Engines (Full Matrix)", "key": "All Engines (Full Matrix)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11927", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:140" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12056", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:151" ] }, { @@ -839,15 +887,15 @@ "call": "All Internet", "key": "All Internet", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:235", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:260" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:608", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:633" ] }, { "call": "All Internet (Complete internet cutoff)", "key": "All Internet (Complete internet cutoff)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:439" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:834" ] }, { @@ -875,8 +923,8 @@ "call": "All Routes", "key": "All Routes", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15627", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16123", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16045", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16541", "src/tachyon/tabs/monitoring/initController.ts:644", "src/tachyon/tabs/monitoring/render.ts:49" ] @@ -892,8 +940,8 @@ "call": "All services", "key": "All services", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11083", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11186", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11204", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11307", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:257", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:376" ] @@ -909,15 +957,15 @@ "call": "Allow / Enable ONLY in scheduled hours (White period)", "key": "Allow / Enable ONLY in scheduled hours (White period)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:473" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:868" ] }, { "call": "Allow in interval", "key": "Allow in interval", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:272", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:278" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:645", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:651" ] }, { @@ -931,21 +979,21 @@ "call": "Allow only", "key": "Allow only", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:340" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:713" ] }, { "call": "Allow only listed sites (Whitelist)", "key": "Allow only listed sites (Whitelist)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:634" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1029" ] }, { "call": "Allow only:", "key": "Allow only:", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:356" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:729" ] }, { @@ -980,14 +1028,21 @@ "call": "ALPN", "key": "ALPN", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2786" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2809" ] }, { "call": "Alter ID", "key": "Alter ID", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3020" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3043" + ] + }, + { + "call": "Always block these domains for all devices in this profile. Enter one domain per line or use category preset buttons.", + "key": "Always block these domains for all devices in this profile. Enter one domain per line or use category preset buttons.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:441" ] }, { @@ -1008,7 +1063,7 @@ "call": "Anonymized support report copied to clipboard", "key": "Anonymized support report copied to clipboard", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14296", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14714", "src/tachyon/tabs/diagnostic/initController.ts:970" ] }, @@ -1016,10 +1071,24 @@ "call": "Another component action is already running", "key": "Another component action is already running", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18770", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19188", "src/tachyon/tabs/updates/initController.ts:906" ] }, + { + "call": "Anti-Bypass (DoH)", + "key": "Anti-Bypass (DoH)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:306" + ] + }, + { + "call": "Anti-Bypass: Block Private DNS / DoH / DoT", + "key": "Anti-Bypass: Block Private DNS / DoH / DoT", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:429" + ] + }, { "call": "API Key for OpenAI (sk-...) or DeepSeek (optional for Ollama / LM Studio)", "key": "API Key for OpenAI (sk-...) or DeepSeek (optional for Ollama / LM Studio)", @@ -1031,16 +1100,16 @@ "call": "Applied", "key": "Applied", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12983", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1356" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13400", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1704" ] }, { "call": "Apply", "key": "Apply", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12817", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1158" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13099", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1348" ] }, { @@ -1061,15 +1130,22 @@ "call": "Apply Strategy To", "key": "Apply Strategy To", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12050", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:280" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12179", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:291" + ] + }, + { + "call": "Apply this schedule rule to all devices in the selected family profile(s).", + "key": "Apply this schedule rule to all devices in the selected family profile(s).", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:789" ] }, { "call": "Applying fix", "key": "Applying fix", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14426", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14844", "src/tachyon/tabs/diagnostic/initController.ts:1181" ] }, @@ -1077,7 +1153,7 @@ "call": "Applying...", "key": "Applying...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14424", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14842", "src/tachyon/tabs/diagnostic/initController.ts:1179" ] }, @@ -1085,18 +1161,25 @@ "call": "Arguments", "key": "Arguments", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12569", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:872" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12728", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:920" ] }, { "call": "Ask Tachyon AI Assistant a question...", "key": "Ask Tachyon AI Assistant a question...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11669", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11790", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:60" ] }, + { + "call": "Assigned Devices (MAC / IP)", + "key": "Assigned Devices (MAC / IP)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:378" + ] + }, { "call": "At least one Admin Chat ID is required", "key": "At least one Admin Chat ID is required", @@ -1130,28 +1213,28 @@ "key": "Auto", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2280", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7504", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7844", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10901", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7599", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7939", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11022", "src/tachyon/tabs/dashboard/initController.ts:923", "src/tachyon/tabs/dashboard/initController.ts:1355", - "src/tachyon/tabs/dashboard/partials/renderSections.ts:452", - "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:35" + "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:35", + "src/tachyon/tabs/dashboard/partials/renderSections.ts:452" ] }, { "call": "Auto Modes (--auto)", "key": "Auto Modes (--auto)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12432", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:715" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12588", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:760" ] }, { "call": "Auto refresh", "key": "Auto refresh", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10487", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10608", "src/partials/modal/renderModal.ts:286" ] }, @@ -1159,7 +1242,25 @@ "call": "Auto update", "key": "Auto update", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3177" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3200" + ] + }, + { + "call": "Auto-apply best strategy", + "key": "Auto-apply best strategy", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12204", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:321" + ] + }, + { + "call": "Auto-apply failed", + "key": "Auto-apply failed", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13179", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13184", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1451", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1456" ] }, { @@ -1202,7 +1303,7 @@ "call": "Auto-Heal Network Stack", "key": "Auto-Heal Network Stack", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14354", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14772", "src/tachyon/tabs/diagnostic/initController.ts:1094" ] }, @@ -1259,15 +1360,15 @@ "call": "Automatically runs a diagnostic probe against the target service, queries the built-in DPI Knowledge Base, and synthesizes 3-5 custom bypass strategies tailored to your ISP.", "key": "Automatically runs a diagnostic probe against the target service, queries the built-in DPI Knowledge Base, and synthesizes 3-5 custom bypass strategies tailored to your ISP.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12713", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1036" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12872", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1082" ] }, { "call": "Automatically select the fastest node in the current level", "key": "Automatically select the fastest node in the current level", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7924", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8019", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3157", "src/tachyon/tabs/dashboard/initController.ts:1458" ] @@ -1283,8 +1384,8 @@ "call": "Available", "key": "Available", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10971", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11161", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11092", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11282", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:125", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:346" ] @@ -1293,7 +1394,7 @@ "call": "Available actions", "key": "Available actions", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10564", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10685", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:58" ] }, @@ -1301,7 +1402,7 @@ "call": "Avg. latency", "key": "Avg. latency", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11163", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11284", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:348" ] }, @@ -1318,7 +1419,7 @@ "call": "Basic connectivity", "key": "Basic connectivity", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10918", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11039", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:58" ] }, @@ -1333,7 +1434,7 @@ "call": "Beginning of the schedule interval (e.g. 22:00)", "key": "Beginning of the schedule interval (e.g. 22:00)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:480" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:875" ] }, { @@ -1347,24 +1448,40 @@ "call": "Benchmark & Test", "key": "Benchmark & Test", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11888", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:88" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12011", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:92" + ] + }, + { + "call": "Benchmark History", + "key": "Benchmark History", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12895", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1113" ] }, { "call": "Benchmark stopped", "key": "Benchmark stopped", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12897", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1256" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13261", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1545" ] }, { "call": "Benchmarking in progress...", "key": "Benchmarking in progress...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12071", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:306" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12228", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:352" + ] + }, + { + "call": "Best Strategy", + "key": "Best Strategy", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12945", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1168" ] }, { @@ -1379,64 +1496,64 @@ "call": "Block", "key": "Block", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:341" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:714" ] }, { "call": "Block / Disable in scheduled hours (Standard)", "key": "Block / Disable in scheduled hours (Standard)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:472" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:867" ] }, { "call": "Block at DNS level", "key": "Block at DNS level", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:640" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1035" ] }, { "call": "Block in interval", "key": "Block in interval", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:274", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:278" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:647", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:651" ] }, { - "call": "Block internet access or specific proxy sections for individual devices based on time and days.", - "key": "Block internet access or specific proxy sections for individual devices based on time and days.", + "call": "Block internet access or specific proxy sections for family profiles or individual devices based on time and days.", + "key": "Block internet access or specific proxy sections for family profiles or individual devices based on time and days.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:467" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:481" ] }, { "call": "Block listed sites (Standard)", "key": "Block listed sites (Standard)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:633" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1028" ] }, { "call": "Block:", "key": "Block:", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:356" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:729" ] }, { "call": "Block: deny the listed sites. Allow only (whitelist): deny everything except the listed sites. Whitelist mode requires DNS-level blocking and applies to the schedule window.", "key": "Block: deny the listed sites. Allow only (whitelist): deny everything except the listed sites. Whitelist mode requires DNS-level blocking and applies to the schedule window.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:629" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1024" ] }, { "call": "Blocked resources", "key": "Blocked resources", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10919", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11040", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:59" ] }, @@ -1444,21 +1561,35 @@ "call": "Blocked Sites", "key": "Blocked Sites", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:329" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:702" ] }, { "call": "Blocked Sites (Domains)", "key": "Blocked Sites (Domains)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:539" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:934" + ] + }, + { + "call": "Blocks access to private/LAN IP addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, etc.) for selected users before applying routing mode.", + "key": "Blocks access to private/LAN IP addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, etc.) for selected users before applying routing mode.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2727" + ] + }, + { + "call": "Blocks port 853 (DNS-over-TLS) and prevents bypass via encrypted DNS or Private Relay on smartphones for devices in this profile.", + "key": "Blocks port 853 (DNS-over-TLS) and prevents bypass via encrypted DNS or Private Relay on smartphones for devices in this profile.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:430" ] }, { "call": "Bootstrap DNS", "key": "Bootstrap DNS", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9363", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9458", "src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:57" ] }, @@ -1480,8 +1611,8 @@ "call": "Browser FakeIP check could not be completed", "key": "Browser FakeIP check could not be completed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9743", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9762", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9838", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9857", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:51", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:79" ] @@ -1490,7 +1621,7 @@ "call": "Browser is not using FakeIP", "key": "Browser is not using FakeIP", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9762", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9857", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:82" ] }, @@ -1498,7 +1629,7 @@ "call": "Browser is using FakeIP correctly", "key": "Browser is using FakeIP correctly", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9762", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9857", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:81" ] }, @@ -1506,7 +1637,7 @@ "call": "Bug report downloaded", "key": "Bug report downloaded", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14910", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15328", "src/tachyon/tabs/diagnostic/initController.ts:1745" ] }, @@ -1528,12 +1659,12 @@ "call": "ByeDPI (ciadpi)", "key": "ByeDPI (ciadpi)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11926", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13007", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13007", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:139", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1389", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1390" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12055", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13424", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13424", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:150", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1737", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1738" ] }, { @@ -1571,7 +1702,7 @@ "call": "ByeDPI package is installed", "key": "ByeDPI package is installed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10015", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10110", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:71" ] }, @@ -1579,7 +1710,7 @@ "call": "ByeDPI package is not installed", "key": "ByeDPI package is not installed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10015", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10110", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:72" ] }, @@ -1587,7 +1718,7 @@ "call": "ByeDPI provider binary is available", "key": "ByeDPI provider binary is available", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10010", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10105", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:64" ] }, @@ -1595,7 +1726,7 @@ "call": "ByeDPI provider binary is not available", "key": "ByeDPI provider binary is not available", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10010", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10105", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:65" ] }, @@ -1603,7 +1734,7 @@ "call": "ByeDPI sing-box outbound is configured", "key": "ByeDPI sing-box outbound is configured", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10030", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10125", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:107" ] }, @@ -1611,7 +1742,7 @@ "call": "ByeDPI sing-box outbound is not configured", "key": "ByeDPI sing-box outbound is not configured", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10030", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10125", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:108" ] }, @@ -1668,7 +1799,7 @@ "call": "Cancel", "key": "Cancel", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14807", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15225", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7721", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:434", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:575", @@ -1681,14 +1812,14 @@ "call": "Cannot receive checks result", "key": "Cannot receive checks result", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9343", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9407", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9588", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9651", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9813", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9897", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9985", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13160", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9438", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9502", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9683", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9746", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9908", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9992", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10080", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13578", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:26", "src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:27", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:172", @@ -1724,7 +1855,7 @@ "call": "Certificate path", "key": "Certificate path", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2796" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2819" ] }, { @@ -1738,7 +1869,7 @@ "call": "Check again", "key": "Check again", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11596", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11717", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:865" ] }, @@ -1746,7 +1877,7 @@ "call": "Check all", "key": "Check all", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11546", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11667", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:793" ] }, @@ -1754,8 +1885,8 @@ "call": "Check completed!", "key": "Check completed!", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17980", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18494", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18398", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18912", "src/tachyon/tabs/updates/initController.ts:540", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:321" ] @@ -1774,8 +1905,8 @@ "call": "Check domain", "key": "Check domain", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11421", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11534", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11542", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11655", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:652", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:778" ] @@ -1784,7 +1915,7 @@ "call": "Check interval", "key": "Check interval", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7911", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8006", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2645", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3108", "src/tachyon/tabs/dashboard/initController.ts:1445" @@ -1794,7 +1925,7 @@ "call": "Check mode:", "key": "Check mode:", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11100", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11221", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:276" ] }, @@ -1802,7 +1933,7 @@ "call": "Check Services", "key": "Check Services", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10678", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10799", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:172" ] }, @@ -1817,7 +1948,7 @@ "call": "Check update", "key": "Check update", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18828", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19246", "src/tachyon/tabs/updates/initController.ts:975" ] }, @@ -1825,7 +1956,7 @@ "call": "Check URL", "key": "Check URL", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7909", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8004", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2671", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3095", "src/tachyon/tabs/dashboard/initController.ts:1443" @@ -1835,7 +1966,7 @@ "call": "Check YouTube", "key": "Check YouTube", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11761", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11882", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:170" ] }, @@ -1843,7 +1974,7 @@ "call": "Checking Connection...", "key": "Checking Connection...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8040", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8135", "src/tachyon/tabs/dashboard/initController.ts:1624" ] }, @@ -1851,7 +1982,7 @@ "call": "Checking for updates...", "key": "Checking for updates...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17809", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18227", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:112" ] }, @@ -1859,16 +1990,16 @@ "call": "Checking, please wait", "key": "Checking, please wait", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9333", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9397", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9578", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9639", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9722", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9803", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9887", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9975", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13148", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15167", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9428", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9492", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9673", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9734", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9817", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9898", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9982", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10070", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13566", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15585", "src/tachyon/tabs/diagnostic/initController.ts:2051", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:14", "src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:15", @@ -1907,7 +2038,7 @@ "call": "checks", "key": "checks", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5396", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5491", "src/tachyon/tabs/diagnostic/helpers/getCheckTitle.ts:2" ] }, @@ -1915,8 +2046,8 @@ "call": "Checks failed", "key": "Checks failed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9303", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9781", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9398", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9876", "src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:10", "src/tachyon/tabs/diagnostic/helpers/getMeta.ts:26" ] @@ -1925,9 +2056,9 @@ "call": "Checks passed", "key": "Checks passed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9292", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9738", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9792", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9387", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9833", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9887", "src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:23", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:43", "src/tachyon/tabs/diagnostic/helpers/getMeta.ts:13" @@ -1937,10 +2068,17 @@ "call": "Checks passed with manual DHCP", "key": "Checks passed with manual DHCP", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9315", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9410", "src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:27" ] }, + { + "call": "Child (🧒)", + "key": "Child (🧒)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:13" + ] + }, { "call": "China (cn)", "key": "China (cn)", @@ -1948,6 +2086,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9255" ] }, + { + "call": "Choose a visual icon for this profile", + "key": "Choose a visual icon for this profile", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:361" + ] + }, { "call": "Choose Hosts File...", "key": "Choose Hosts File...", @@ -1959,7 +2104,7 @@ "call": "Choose whether to restrict the entire internet or only specific Tachyon routing sections.", "key": "Choose whether to restrict the entire internet or only specific Tachyon routing sections.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:435" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:830" ] }, { @@ -1973,7 +2118,7 @@ "call": "Choose which routing sections to apply this schedule to.", "key": "Choose which routing sections to apply this schedule to.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:447" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:842" ] }, { @@ -2009,7 +2154,7 @@ "call": "Clear DNS cache", "key": "Clear DNS cache", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14347", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14765", "src/tachyon/tabs/diagnostic/initController.ts:1087" ] }, @@ -2017,7 +2162,7 @@ "call": "Client Address", "key": "Client Address", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3336" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3359" ] }, { @@ -2031,14 +2176,14 @@ "call": "Client DNS", "key": "Client DNS", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3348" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3371" ] }, { "call": "Client fingerprint", "key": "Client fingerprint", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2894" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2917" ] }, { @@ -2073,50 +2218,50 @@ "call": "Client Private Key", "key": "Client Private Key", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3396" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3419" ] }, { "call": "Client Public Key", "key": "Client Public Key", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3406" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3429" ] }, { "call": "Client VPN IP address (e.g. 10.0.0.2/32)", "key": "Client VPN IP address (e.g. 10.0.0.2/32)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3337" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3360" ] }, { "call": "Close", "key": "Close", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7782", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10466", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11019", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11601", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11811", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12239", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14751", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16324", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16367", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18075", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18110", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7877", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10587", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11140", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11722", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11932", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12394", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15169", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16742", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16785", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18493", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18528", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3660", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10239", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1803", "src/partials/modal/renderModal.ts:263", - "src/tachyon/tabs/dashboard/initController.ts:1267", - "src/tachyon/tabs/diagnostic/initController.ts:1553", "src/tachyon/tabs/monitoring/initController.ts:893", "src/tachyon/tabs/monitoring/initController.ts:948", + "src/tachyon/tabs/diagnostic/initController.ts:1553", + "src/tachyon/tabs/dashboard/initController.ts:1267", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:227", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:178", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:871", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:497", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:541", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:442", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:488" ] @@ -2125,8 +2270,8 @@ "call": "Close all connections", "key": "Close all connections", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15646", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15647", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16064", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16065", "src/tachyon/tabs/monitoring/render.ts:68", "src/tachyon/tabs/monitoring/render.ts:69" ] @@ -2135,8 +2280,8 @@ "call": "Close connection", "key": "Close connection", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16293", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16294", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16711", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16712", "src/tachyon/tabs/monitoring/initController.ts:860", "src/tachyon/tabs/monitoring/initController.ts:861" ] @@ -2145,8 +2290,8 @@ "call": "Closed", "key": "Closed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15609", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16191", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16027", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16609", "src/tachyon/tabs/monitoring/initController.ts:729", "src/tachyon/tabs/monitoring/render.ts:29" ] @@ -2190,8 +2335,8 @@ "call": "Command-line arguments string...", "key": "Command-line arguments string...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12505", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:798" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12664", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:846" ] }, { @@ -2205,7 +2350,7 @@ "call": "Component update available", "key": "Component update available", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6345", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6440", "src/tachyon/services/core.service.ts:43" ] }, @@ -2220,14 +2365,14 @@ "call": "Components", "key": "Components", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:539" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:553" ] }, { "call": "compressed", "key": "compressed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5986", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6081", "src/tachyon/helpers/singBoxVariant.ts:60" ] }, @@ -2235,7 +2380,7 @@ "call": "Concurrency", "key": "Concurrency", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3129" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3152" ] }, { @@ -2245,6 +2390,14 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7233" ] }, + { + "call": "confidence", + "key": "confidence", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13251", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1534" + ] + }, { "call": "Config File Path", "key": "Config File Path", @@ -2278,11 +2431,11 @@ "key": "Conflict", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2412", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5224", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13226", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5319", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13644", "src/tachyon/methods/custom/getDashboardSections.ts:1651", - "src/tachyon/tabs/dashboard/partials/renderSections.ts:620", - "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:141" + "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:141", + "src/tachyon/tabs/dashboard/partials/renderSections.ts:620" ] }, { @@ -2313,7 +2466,7 @@ "call": "Connected Devices", "key": "Connected Devices", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14507", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14925", "src/tachyon/tabs/diagnostic/initController.ts:1276" ] }, @@ -2328,7 +2481,7 @@ "call": "Connections are unavailable", "key": "Connections are unavailable", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16419", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16837", "src/tachyon/tabs/monitoring/initController.ts:1012" ] }, @@ -2336,7 +2489,7 @@ "call": "Connectivity probe failed", "key": "Connectivity probe failed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13255", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13673", "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:174" ] }, @@ -2344,22 +2497,22 @@ "call": "Consulting DPI Knowledge Base & AI...", "key": "Consulting DPI Knowledge Base & AI...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12934", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1299" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13351", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1647" ] }, { "call": "Content Mode", "key": "Content Mode", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:628" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1023" ] }, { "call": "Cookie packet junk size (S3)", "key": "Cookie packet junk size (S3)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3455" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3478" ] }, { @@ -2375,7 +2528,7 @@ "call": "Copy", "key": "Copy", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10459", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10580", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1753", "src/partials/modal/renderModal.ts:258" ] @@ -2384,7 +2537,7 @@ "call": "Copy log", "key": "Copy log", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17851", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18269", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:160" ] }, @@ -2394,7 +2547,7 @@ "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2317", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2318", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7714", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7809", "src/tachyon/tabs/dashboard/initController.ts:1192", "src/tachyon/tabs/dashboard/partials/renderSections.ts:498", "src/tachyon/tabs/dashboard/partials/renderSections.ts:499" @@ -2404,7 +2557,7 @@ "call": "Copy Support Report", "key": "Copy Support Report", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14713", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15131", "src/tachyon/tabs/diagnostic/initController.ts:1511" ] }, @@ -2412,7 +2565,7 @@ "call": "Could not compare FakeIP and control public IPs", "key": "Could not compare FakeIP and control public IPs", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9768", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9863", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:89" ] }, @@ -2427,7 +2580,7 @@ "call": "Current Diagnosis", "key": "Current Diagnosis", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14664", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15082", "src/tachyon/tabs/diagnostic/initController.ts:1452" ] }, @@ -2457,7 +2610,7 @@ "call": "Custom", "key": "Custom", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10921", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11042", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:61" ] }, @@ -2487,7 +2640,7 @@ "call": "Custom domains", "key": "Custom domains", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10920", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11041", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:60" ] }, @@ -2495,28 +2648,28 @@ "call": "Custom header for cookie packet", "key": "Custom header for cookie packet", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3480" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3503" ] }, { "call": "Custom header for data packet", "key": "Custom header for data packet", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3486" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3509" ] }, { "call": "Custom header for handshake initiation", "key": "Custom header for handshake initiation", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3468" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3491" ] }, { "call": "Custom header for handshake response", "key": "Custom header for handshake response", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3474" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3497" ] }, { @@ -2551,29 +2704,37 @@ "call": "Custom strategy added!", "key": "Custom strategy added!", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12528", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:826" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12687", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:874" ] }, { "call": "Daily Quota", "key": "Daily Quota", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:307" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:269", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:680" + ] + }, + { + "call": "Daily Screen Time Quota (minutes)", + "key": "Daily Screen Time Quota (minutes)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:397" ] }, { "call": "Daily time quota (minutes)", "key": "Daily time quota (minutes)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:516" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:911" ] }, { "call": "Dashboard", "key": "Dashboard", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:515" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:529" ] }, { @@ -2584,11 +2745,19 @@ "src/tachyon/tabs/dashboard/partials/renderSections.ts:50" ] }, + { + "call": "Date", + "key": "Date", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12941", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1164" + ] + }, { "call": "Days of Week", "key": "Days of Week", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:503" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:898" ] }, { @@ -2632,11 +2801,11 @@ "call": "Delete", "key": "Delete", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12630", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12789", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1828", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:615", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:621", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:940" + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:986" ] }, { @@ -2678,10 +2847,11 @@ ] }, { - "call": "Device / IP / MAC", - "key": "Device / IP / MAC", + "call": "dev.", + "key": "dev.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:194" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:218", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:565" ] }, { @@ -2716,10 +2886,17 @@ "call": "Device updated", "key": "Device updated", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14582", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15000", "src/tachyon/tabs/diagnostic/initController.ts:1359" ] }, + { + "call": "Devices (MAC / IP)", + "key": "Devices (MAC / IP)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:236" + ] + }, { "call": "Devices listed here are always routed through the assigned section, regardless of global rules.", "key": "Devices listed here are always routed through the assigned section, regardless of global rules.", @@ -2731,7 +2908,7 @@ "call": "DHCP has DNS server", "key": "DHCP has DNS server", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9317", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9412", "src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:37" ] }, @@ -2739,7 +2916,7 @@ "call": "DHCP is managed manually", "key": "DHCP is managed manually", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9317", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9412", "src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:36" ] }, @@ -2747,15 +2924,15 @@ "call": "Diagnostics", "key": "Diagnostics", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:503" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:517" ] }, { "call": "Direct", "key": "Direct", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10892", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10898", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11013", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11019", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2704", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:25", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:32" @@ -2772,7 +2949,7 @@ "call": "Direct Bypass", "key": "Direct Bypass", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14570", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14988", "src/tachyon/tabs/diagnostic/initController.ts:1346" ] }, @@ -2787,7 +2964,7 @@ "call": "Direct WAN", "key": "Direct WAN", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14564", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14982", "src/tachyon/tabs/diagnostic/initController.ts:1337" ] }, @@ -2795,7 +2972,7 @@ "call": "Disable autostart", "key": "Disable autostart", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10600", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10721", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:94" ] }, @@ -2817,8 +2994,10 @@ "call": "Disabled", "key": "Disabled", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:369", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:396" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:342", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:355", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:742", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:769" ] }, { @@ -2832,8 +3011,8 @@ "call": "Disorder Values (-d)", "key": "Disorder Values (-d)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12420", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:703" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12576", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:748" ] }, { @@ -2877,7 +3056,7 @@ "call": "DNS on router", "key": "DNS on router", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9375", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9470", "src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:75" ] }, @@ -2963,7 +3142,7 @@ "call": "DNS server pushed to the client configuration", "key": "DNS server pushed to the client configuration", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3349" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3372" ] }, { @@ -3049,7 +3228,7 @@ "call": "Do not panic, everything can be fixed, just...", "key": "Do not panic, everything can be fixed, just...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13105", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13523", "src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:26" ] }, @@ -3099,9 +3278,9 @@ "call": "Doctor failed", "key": "Doctor failed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14135", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14155", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14163", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14553", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14573", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14581", "src/tachyon/tabs/diagnostic/initController.ts:731", "src/tachyon/tabs/diagnostic/initController.ts:773", "src/tachyon/tabs/diagnostic/initController.ts:781" @@ -3111,9 +3290,9 @@ "call": "Doctor repair", "key": "Doctor repair", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14144", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14146", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14146", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14562", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14564", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14564", "src/tachyon/tabs/diagnostic/initController.ts:747", "src/tachyon/tabs/diagnostic/initController.ts:759", "src/tachyon/tabs/diagnostic/initController.ts:760" @@ -3123,7 +3302,7 @@ "call": "Does not resolve", "key": "Does not resolve", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9496", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9591", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:54" ] }, @@ -3174,7 +3353,7 @@ "call": "Domains to block for the selected devices. Leave empty to block all internet. Enter one domain per line, e.g. youtube.com. Use the preset buttons to quickly add common categories.", "key": "Domains to block for the selected devices. Leave empty to block all internet. Enter one domain per line, e.g. youtube.com. Use the preset buttons to quickly add common categories.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:540" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:935" ] }, { @@ -3195,8 +3374,8 @@ "call": "Downlink", "key": "Downlink", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8225", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8237", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8320", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8332", "src/tachyon/tabs/dashboard/initController.ts:1851", "src/tachyon/tabs/dashboard/initController.ts:1864" ] @@ -3205,7 +3384,7 @@ "call": "Download", "key": "Download", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10454", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10575", "src/partials/modal/renderModal.ts:253" ] }, @@ -3283,9 +3462,9 @@ "call": "Downloaded", "key": "Downloaded", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16317", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16364", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16503", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16735", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16782", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16921", "src/tachyon/tabs/monitoring/initController.ts:886", "src/tachyon/tabs/monitoring/initController.ts:945", "src/tachyon/tabs/monitoring/initController.ts:1134" @@ -3298,12 +3477,28 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1367" ] }, + { + "call": "DPI Detected", + "key": "DPI Detected", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13250", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1533" + ] + }, { "call": "DPI Engine", "key": "DPI Engine", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11940", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:155" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12069", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:166" + ] + }, + { + "call": "DPI Type", + "key": "DPI Type", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12944", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1167" ] }, { @@ -3350,11 +3545,25 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10029" ] }, + { + "call": "e.g. Kids", + "key": "e.g. Kids", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:372" + ] + }, + { + "call": "e.g. Kids (Alice & Tim), Teenager, School PC, Guests", + "key": "e.g. Kids (Alice & Tim), Teenager, School PC, Guests", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:369" + ] + }, { "call": "e.g. Kids Phone (Night YouTube)", "key": "e.g. Kids Phone (Night YouTube)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:409" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:782" ] }, { @@ -3383,7 +3592,8 @@ "call": "Enable", "key": "Enable", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:187", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:201", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:539", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7235", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2618" ] @@ -3420,7 +3630,7 @@ "call": "Enable authentication", "key": "Enable authentication", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2981" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3004" ] }, { @@ -3434,7 +3644,7 @@ "call": "Enable autostart", "key": "Enable autostart", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10610", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10731", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:104" ] }, @@ -3456,7 +3666,7 @@ "call": "Enable Direct WAN Bypass", "key": "Enable Direct WAN Bypass", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14355", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14773", "src/tachyon/tabs/diagnostic/initController.ts:1095" ] }, @@ -3613,31 +3823,40 @@ "call": "End of the schedule interval (e.g. 08:00). Supports spans crossing midnight.", "key": "End of the schedule interval (e.g. 08:00). Supports spans crossing midnight.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:492" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:887" ] }, { "call": "End Time (HH:MM)", "key": "End Time (HH:MM)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:491" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:886" + ] + }, + { + "call": "Enforce SafeSearch & YouTube Restricted Mode", + "key": "Enforce SafeSearch & YouTube Restricted Mode", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:418" ] }, { "call": "Engine", "key": "Engine", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12185", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12568", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:438", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:871" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12340", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12727", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12942", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:482", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:919", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1165" ] }, { "call": "Enter a complete sing-box inbound object", "key": "Enter a complete sing-box inbound object", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2727" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2750" ] }, { @@ -3661,7 +3880,7 @@ "call": "Enter a domain or IP to check (e.g. example.com)...", "key": "Enter a domain or IP to check (e.g. example.com)...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11414", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11535", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:644" ] }, @@ -3677,7 +3896,8 @@ "call": "Enter a whole number of minutes between 0 and 1440", "key": "Enter a whole number of minutes between 0 and 1440", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:529" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:410", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:924" ] }, { @@ -3750,7 +3970,7 @@ "call": "Every day", "key": "Every day", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:160" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:172" ] }, { @@ -3878,7 +4098,7 @@ "call": "Failed to apply fix", "key": "Failed to apply fix", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14442", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14860", "src/tachyon/tabs/diagnostic/initController.ts:1202" ] }, @@ -3886,18 +4106,34 @@ "call": "Failed to apply strategy", "key": "Failed to apply strategy", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4026", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12987", - "src/tachyon/methods/shell/index.ts:1149", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1360" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4036", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13404", + "src/tachyon/methods/shell/index.ts:1159", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1708" + ] + }, + { + "call": "Failed to auto-apply strategy", + "key": "Failed to auto-apply strategy", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4213", + "src/tachyon/methods/shell/index.ts:1411" + ] + }, + { + "call": "Failed to clear fuzzer history", + "key": "Failed to clear fuzzer history", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4251", + "src/tachyon/methods/shell/index.ts:1456" ] }, { "call": "Failed to close connection", "key": "Failed to close connection", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16692", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16706", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17110", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17124", "src/tachyon/tabs/monitoring/initController.ts:1400", "src/tachyon/tabs/monitoring/initController.ts:1415" ] @@ -3906,8 +4142,8 @@ "call": "Failed to close connections", "key": "Failed to close connections", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16721", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16733", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17139", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17151", "src/tachyon/tabs/monitoring/initController.ts:1434", "src/tachyon/tabs/monitoring/initController.ts:1447" ] @@ -3916,15 +4152,15 @@ "call": "Failed to communicate with AI provider", "key": "Failed to communicate with AI provider", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12969", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1341" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13386", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1689" ] }, { "call": "Failed to copy report to clipboard", "key": "Failed to copy report to clipboard", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14300", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14718", "src/tachyon/tabs/diagnostic/initController.ts:974" ] }, @@ -3944,16 +4180,24 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:527" ] }, + { + "call": "Failed to detect DPI type", + "key": "Failed to detect DPI type", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4190", + "src/tachyon/methods/shell/index.ts:1383" + ] + }, { "call": "Failed to execute", "key": "Failed to execute", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3280", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3283", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18579", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18579", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18639", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18811", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3284", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3287", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18997", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18997", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19057", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19229", "src/tachyon/methods/shell/index.ts:171", "src/tachyon/methods/shell/index.ts:178", "src/tachyon/tabs/updates/initController.ts:661", @@ -3966,7 +4210,7 @@ "call": "Failed to generate bug report", "key": "Failed to generate bug report", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14913", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15331", "src/tachyon/tabs/diagnostic/initController.ts:1748" ] }, @@ -3978,28 +4222,44 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8103" ] }, + { + "call": "Failed to get fuzzer history", + "key": "Failed to get fuzzer history", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4233", + "src/tachyon/methods/shell/index.ts:1433" + ] + }, { "call": "Failed to get fuzzer patterns", "key": "Failed to get fuzzer patterns", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4109", - "src/tachyon/methods/shell/index.ts:1274" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4119", + "src/tachyon/methods/shell/index.ts:1287" ] }, { "call": "Failed to get fuzzer status", "key": "Failed to get fuzzer status", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3984", - "src/tachyon/methods/shell/index.ts:1101" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3994", + "src/tachyon/methods/shell/index.ts:1111" ] }, { "call": "Failed to get fuzzer strategies", "key": "Failed to get fuzzer strategies", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4053", - "src/tachyon/methods/shell/index.ts:1201" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4063", + "src/tachyon/methods/shell/index.ts:1211" + ] + }, + { + "call": "Failed to load history", + "key": "Failed to load history", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12998", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1230" ] }, { @@ -4020,7 +4280,7 @@ "call": "Failed to parse target list.", "key": "Failed to parse target list.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11062", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11183", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:231" ] }, @@ -4035,7 +4295,7 @@ "call": "Failed to read operation log", "key": "Failed to read operation log", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3657", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3661", "src/tachyon/methods/shell/index.ts:664" ] }, @@ -4043,7 +4303,7 @@ "call": "Failed to receive response from AI service.", "key": "Failed to receive response from AI service.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11714", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11835", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:115" ] }, @@ -4051,8 +4311,8 @@ "call": "Failed to reset fuzzer patterns", "key": "Failed to reset fuzzer patterns", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4161", - "src/tachyon/methods/shell/index.ts:1336" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4171", + "src/tachyon/methods/shell/index.ts:1362" ] }, { @@ -4066,8 +4326,8 @@ "call": "Failed to restore native internet", "key": "Failed to restore native internet", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14741", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14832", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15159", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15250", "src/tachyon/tabs/diagnostic/initController.ts:1543", "src/tachyon/tabs/diagnostic/initController.ts:1651" ] @@ -4112,16 +4372,16 @@ "call": "Failed to save fuzzer patterns", "key": "Failed to save fuzzer patterns", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4135", - "src/tachyon/methods/shell/index.ts:1305" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4145", + "src/tachyon/methods/shell/index.ts:1320" ] }, { "call": "Failed to save patterns", "key": "Failed to save patterns", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12465", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:751" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12621", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:796" ] }, { @@ -4142,8 +4402,8 @@ "call": "Failed to start benchmark", "key": "Failed to start benchmark", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12919", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1281" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13335", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1628" ] }, { @@ -4157,16 +4417,16 @@ "call": "Failed to start fuzzer", "key": "Failed to start fuzzer", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3961", - "src/tachyon/methods/shell/index.ts:1075" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3971", + "src/tachyon/methods/shell/index.ts:1085" ] }, { "call": "Failed to start service check.", "key": "Failed to start service check.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11045", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11617", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11166", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11738", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:213", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:890" ] @@ -4189,8 +4449,8 @@ "call": "Failed to stop fuzzer", "key": "Failed to stop fuzzer", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3998", - "src/tachyon/methods/shell/index.ts:1116" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4008", + "src/tachyon/methods/shell/index.ts:1126" ] }, { @@ -4204,8 +4464,8 @@ "call": "Failed to switch proxy", "key": "Failed to switch proxy", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7325", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7331", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7420", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7426", "src/tachyon/tabs/dashboard/initController.ts:700", "src/tachyon/tabs/dashboard/initController.ts:706" ] @@ -4214,15 +4474,15 @@ "call": "Failed to synthesize AI strategies", "key": "Failed to synthesize AI strategies", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4086", - "src/tachyon/methods/shell/index.ts:1246" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4096", + "src/tachyon/methods/shell/index.ts:1256" ] }, { "call": "Failed to update device", "key": "Failed to update device", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14587", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15005", "src/tachyon/tabs/diagnostic/initController.ts:1364" ] }, @@ -4230,13 +4490,13 @@ "call": "Failed to update subscriptions", "key": "Failed to update subscriptions", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7031", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7031", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7046", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7079", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7082", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7982", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7985", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7126", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7126", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7141", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7174", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7177", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8077", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8080", "src/tachyon/tabs/dashboard/initController.ts:309", "src/tachyon/tabs/dashboard/initController.ts:310", "src/tachyon/tabs/dashboard/initController.ts:330", @@ -4257,7 +4517,7 @@ "call": "FakeIP and control checks use different public IPs", "key": "FakeIP and control checks use different public IPs", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9768", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9863", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:91" ] }, @@ -4265,7 +4525,7 @@ "call": "FakeIP and control checks use the same public IP", "key": "FakeIP and control checks use the same public IP", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9768", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9863", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:92" ] }, @@ -4273,7 +4533,7 @@ "call": "FakeIP works; public IP comparison is inconclusive", "key": "FakeIP works; public IP comparison is inconclusive", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9740", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9835", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:46" ] }, @@ -4281,14 +4541,35 @@ "call": "FakeTLS host", "key": "FakeTLS host", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3104" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3127" ] }, { "call": "Fallback on unknown DC", "key": "Fallback on unknown DC", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3186" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3209" + ] + }, + { + "call": "Family (🏠)", + "key": "Family (🏠)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:18" + ] + }, + { + "call": "Family Profile", + "key": "Family Profile", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:472" + ] + }, + { + "call": "Family Profiles", + "key": "Family Profiles", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:466" ] }, { @@ -4302,7 +4583,7 @@ "call": "Faster server search interval", "key": "Faster server search interval", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7929", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8024", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3168", "src/tachyon/tabs/dashboard/initController.ts:1464" ] @@ -4311,7 +4592,7 @@ "call": "Fastest", "key": "Fastest", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4546", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4641", "src/tachyon/methods/custom/getDashboardSections.ts:661" ] }, @@ -4319,7 +4600,7 @@ "call": "Filter by service:", "key": "Filter by service:", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11228", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11349", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:425" ] }, @@ -4334,8 +4615,8 @@ "call": "Filter:", "key": "Filter:", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12114", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:355" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12271", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:401" ] }, { @@ -4349,7 +4630,7 @@ "call": "Firewall WAN port", "key": "Firewall WAN port", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9560", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9655", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:136" ] }, @@ -4357,7 +4638,7 @@ "call": "Fix applied", "key": "Fix applied", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14436", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14854", "src/tachyon/tabs/diagnostic/initController.ts:1196" ] }, @@ -4365,7 +4646,7 @@ "call": "Fix resolv.conf", "key": "Fix resolv.conf", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14341", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14759", "src/tachyon/tabs/diagnostic/initController.ts:1081" ] }, @@ -4381,8 +4662,8 @@ "call": "Fixed", "key": "Fixed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14144", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14432", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14562", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14850", "src/tachyon/tabs/diagnostic/initController.ts:753", "src/tachyon/tabs/diagnostic/initController.ts:1192" ] @@ -4391,7 +4672,7 @@ "call": "Flush Conntrack Table", "key": "Flush Conntrack Table", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14358", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14776", "src/tachyon/tabs/diagnostic/initController.ts:1098" ] }, @@ -4399,16 +4680,16 @@ "call": "Fooling Methods (dpi-desync-fooling)", "key": "Fooling Methods (dpi-desync-fooling)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12389", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:670" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12545", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:715" ] }, { "call": "Fooling Methods (fooling)", "key": "Fooling Methods (fooling)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12340", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:619" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12496", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:664" ] }, { @@ -4425,6 +4706,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9495" ] }, + { + "call": "Forces SafeSearch on Google, Yandex, Bing, DuckDuckGo and Strict Restricted Mode on YouTube via DNS rewrite for all devices in this profile.", + "key": "Forces SafeSearch on Google, Yandex, Bing, DuckDuckGo and Strict Restricted Mode on YouTube via DNS rewrite for all devices in this profile.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:419" + ] + }, { "call": "Forces sing-box to tunnel DNS requests via DoQ with Encrypted Client Hello (ECH) for SNI hiding.", "key": "Forces sing-box to tunnel DNS requests via DoQ with Encrypted Client Hello (ECH) for SNI hiding.", @@ -4443,42 +4731,42 @@ "call": "Fri", "key": "Fri", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:26" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:38" ] }, { "call": "Friday", "key": "Friday", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:16" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:28" ] }, { "call": "Fronting IP", "key": "Fronting IP", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3149" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3172" ] }, { "call": "Fronting port", "key": "Fronting port", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3138" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3161" ] }, { "call": "Fronting proxy protocol", "key": "Fronting proxy protocol", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3159" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3182" ] }, { "call": "Full System Diagnostic", "key": "Full System Diagnostic", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11764", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11885", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:173" ] }, @@ -4503,11 +4791,18 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1285" ] }, + { + "call": "Gamer (🎮)", + "key": "Gamer (🎮)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:15" + ] + }, { "call": "Gaming", "key": "Gaming", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:63" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:75" ] }, { @@ -4521,7 +4816,7 @@ "call": "Generate bug report", "key": "Generate bug report", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10705", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10826", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:199" ] }, @@ -4553,7 +4848,7 @@ "call": "Generated inbound", "key": "Generated inbound", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9524", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9619", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:89" ] }, @@ -4610,7 +4905,7 @@ "call": "Get global check", "key": "Get global check", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10619", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10740", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:113" ] }, @@ -4625,7 +4920,7 @@ "call": "Global check", "key": "Global check", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14110", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14528", "src/tachyon/tabs/diagnostic/initController.ts:703" ] }, @@ -4633,8 +4928,8 @@ "call": "Global check failed", "key": "Global check failed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14121", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14125", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14539", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14543", "src/tachyon/tabs/diagnostic/initController.ts:714", "src/tachyon/tabs/diagnostic/initController.ts:718" ] @@ -4643,22 +4938,29 @@ "call": "Global Default", "key": "Global Default", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12983", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1356" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13400", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1704" + ] + }, + { + "call": "Group devices into family profiles to manage content filtering, SafeSearch, and screen time limits in one place.", + "key": "Group devices into family profiles to manage content filtering, SafeSearch, and screen time limits in one place.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:467" ] }, { "call": "gRPC service", "key": "gRPC service", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2961" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2984" ] }, { "call": "Handshake timeout", "key": "Handshake timeout", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3214" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3237" ] }, { @@ -4672,7 +4974,7 @@ "call": "Hello! I am Tachyon AI Assistant. How can I help you today? Ask me about domain blocks, diagnostics, or router settings.", "key": "Hello! I am Tachyon AI Assistant. How can I help you today? Ask me about domain blocks, diagnostics, or router settings.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11629", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11750", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:14" ] }, @@ -4680,32 +4982,32 @@ "call": "Hex or binary junk payload", "key": "Hex or binary junk payload", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3522", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3528", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3534" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3545", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3551", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3557" ] }, { "call": "Hex or binary payload", "key": "Hex or binary payload", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3504", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3510", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3516" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3527", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3533", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3539" ] }, { "call": "Hex or binary payload for init", "key": "Hex or binary payload for init", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3492" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3515" ] }, { "call": "Hex or binary payload for response", "key": "Hex or binary payload for response", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3498" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3521" ] }, { @@ -4789,7 +5091,7 @@ "call": "Hide values", "key": "Hide values", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10506", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10627", "src/partials/modal/renderModal.ts:310" ] }, @@ -4797,7 +5099,7 @@ "call": "Higher-level check interval", "key": "Higher-level check interval", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7916", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8011", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3132", "src/tachyon/tabs/dashboard/initController.ts:1450" ] @@ -4813,16 +5115,28 @@ "call": "History", "key": "History", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14688", - "src/tachyon/tabs/diagnostic/initController.ts:1480" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12015", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15106", + "src/tachyon/tabs/diagnostic/initController.ts:1480", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:96" + ] + }, + { + "call": "History cleared", + "key": "History cleared", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4256", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12908", + "src/tachyon/methods/shell/index.ts:1461", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1126" ] }, { "call": "Host", "key": "Host", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16307", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16360", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16725", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16778", "src/tachyon/tabs/monitoring/initController.ts:876", "src/tachyon/tabs/monitoring/initController.ts:941" ] @@ -4909,7 +5223,7 @@ "call": "HTTP error", "key": "HTTP error", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5287", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5382", "src/tachyon/api.ts:27" ] }, @@ -4917,7 +5231,7 @@ "call": "HTTP hosts", "key": "HTTP hosts", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2954" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2977" ] }, { @@ -4938,9 +5252,9 @@ "call": "Idle timeout", "key": "Idle timeout", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7800", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7895", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2684", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3204", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3227", "src/tachyon/tabs/dashboard/initController.ts:1295" ] }, @@ -5000,7 +5314,7 @@ "call": "Inbound JSON", "key": "Inbound JSON", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2726" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2749" ] }, { @@ -5078,21 +5392,21 @@ "call": "Init handshake timeout", "key": "Init handshake timeout", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3540" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3563" ] }, { "call": "Init packet header (H1)", "key": "Init packet header (H1)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3467" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3490" ] }, { "call": "Init packet junk size (S1)", "key": "Init packet junk size (S1)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3443" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3466" ] }, { @@ -5148,22 +5462,22 @@ "call": "Init payload (I1)", "key": "Init payload (I1)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3491" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3514" ] }, { "call": "Init timeout (Itime)", "key": "Init timeout (Itime)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3539" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3562" ] }, { "call": "Install", "key": "Install", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18065", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18837", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18483", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19255", "src/tachyon/tabs/updates/initController.ts:989", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:431" ] @@ -5172,7 +5486,7 @@ "call": "Install another build:", "key": "Install another build:", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19260", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19678", "src/tachyon/tabs/updates/initController.ts:1502" ] }, @@ -5180,19 +5494,19 @@ "call": "Installed", "key": "Installed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13001", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13004", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13007", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1379", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1384", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1389" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13418", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13421", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13424", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1727", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1732", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1737" ] }, { "call": "Installed build → Available build", "key": "Installed build → Available build", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19140", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19558", "src/tachyon/tabs/updates/initController.ts:1363" ] }, @@ -5200,8 +5514,8 @@ "call": "Installed version is newer than release", "key": "Installed version is newer than release", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18358", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19148", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18776", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19566", "src/tachyon/tabs/updates/initController.ts:359", "src/tachyon/tabs/updates/initController.ts:1371" ] @@ -5231,8 +5545,8 @@ "call": "Interrupt connections", "key": "Interrupt connections", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7802", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7934", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7897", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8029", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2698", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3184", "src/tachyon/tabs/dashboard/initController.ts:1297", @@ -5257,7 +5571,7 @@ "call": "Interval", "key": "Interval", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7798", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7893", "src/tachyon/tabs/dashboard/initController.ts:1293" ] }, @@ -5307,7 +5621,8 @@ "call": "Invalid domain: empty prefix value", "key": "Invalid domain: empty prefix value", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:554" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:455", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:949" ] }, { @@ -5444,7 +5759,7 @@ "call": "Invalid IP or MAC address. Expected e.g. 192.168.1.150 or AA:BB:CC:DD:EE:FF", "key": "Invalid IP or MAC address. Expected e.g. 192.168.1.150 or AA:BB:CC:DD:EE:FF", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:182" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:194" ] }, { @@ -5650,7 +5965,7 @@ "call": "Invalid time format. Expected HH:MM (e.g. 22:00)", "key": "Invalid time format. Expected HH:MM (e.g. 22:00)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:109" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:121" ] }, { @@ -5846,8 +6161,8 @@ "call": "IP Frag Bounds (--ip-frag)", "key": "IP Frag Bounds (--ip-frag)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12444", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:727" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12600", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:772" ] }, { @@ -5882,7 +6197,7 @@ "call": "Issues", "key": "Issues", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14144", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14562", "src/tachyon/tabs/diagnostic/initController.ts:749" ] }, @@ -5890,8 +6205,8 @@ "call": "Issues detected", "key": "Issues detected", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9298", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9787", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9393", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9882", "src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:17", "src/tachyon/tabs/diagnostic/helpers/getMeta.ts:20" ] @@ -5900,7 +6215,7 @@ "call": "Issues detected. Review the diagnosis above.", "key": "Issues detected. Review the diagnosis above.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14458", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14876", "src/tachyon/tabs/diagnostic/initController.ts:1221" ] }, @@ -5978,7 +6293,7 @@ "call": "Junk packet count (Jc)", "key": "Junk packet count (Jc)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3425" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3448" ] }, { @@ -5992,63 +6307,63 @@ "call": "Junk packet max size (Jmax)", "key": "Junk packet max size (Jmax)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3437" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3460" ] }, { "call": "Junk packet min size (Jmin)", "key": "Junk packet min size (Jmin)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3431" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3454" ] }, { "call": "Junk payload (J1)", "key": "Junk payload (J1)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3521" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3544" ] }, { "call": "Junk payload (J2)", "key": "Junk payload (J2)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3527" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3550" ] }, { "call": "Junk payload (J3)", "key": "Junk payload (J3)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3533" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3556" ] }, { "call": "Junk size for cookie packet", "key": "Junk size for cookie packet", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3456" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3479" ] }, { "call": "Junk size for initiation packet", "key": "Junk size for initiation packet", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3444" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3467" ] }, { "call": "Junk size for response packet", "key": "Junk size for response packet", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3450" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3473" ] }, { "call": "Junk size for transport packet", "key": "Junk size for transport packet", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3462" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3485" ] }, { @@ -6091,7 +6406,7 @@ "call": "Key path", "key": "Key path", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2811" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2834" ] }, { @@ -6105,7 +6420,7 @@ "call": "LAN Devices", "key": "LAN Devices", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14674", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15092", "src/tachyon/tabs/diagnostic/initController.ts:1464" ] }, @@ -6116,12 +6431,19 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1778" ] }, + { + "call": "Laptop / PC (💻)", + "key": "Laptop / PC (💻)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:17" + ] + }, { "call": "Latency test failed", "key": "Latency test failed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3543", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3562", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3547", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3566", "src/tachyon/methods/shell/index.ts:519", "src/tachyon/methods/shell/index.ts:540" ] @@ -6137,8 +6459,8 @@ "call": "Latest version is installed", "key": "Latest version is installed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18360", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19146", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18778", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19564", "src/tachyon/tabs/updates/initController.ts:362", "src/tachyon/tabs/updates/initController.ts:1369" ] @@ -6147,7 +6469,7 @@ "call": "Latest version:", "key": "Latest version:", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19148", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19566", "src/tachyon/tabs/updates/initController.ts:1371" ] }, @@ -6169,7 +6491,7 @@ "call": "Limit device network usage per day. When the quota is exhausted, the device is blocked until midnight. 0 disables the limit.", "key": "Limit device network usage per day. When the quota is exhausted, the device is blocked until midnight. 0 disables the limit.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:517" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:912" ] }, { @@ -6211,7 +6533,7 @@ "call": "Listening port", "key": "Listening port", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9554", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9649", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:125" ] }, @@ -6277,7 +6599,7 @@ "call": "Loading connected LAN devices...", "key": "Loading connected LAN devices...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14477", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14895", "src/tachyon/tabs/diagnostic/initController.ts:1243" ] }, @@ -6285,8 +6607,8 @@ "call": "Loading connections", "key": "Loading connections", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15678", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16410", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16096", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16828", "src/tachyon/tabs/monitoring/initController.ts:1002", "src/tachyon/tabs/monitoring/render.ts:101" ] @@ -6295,8 +6617,8 @@ "call": "Loading service list...", "key": "Loading service list...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10994", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11033", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11115", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11154", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:150", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:194" ] @@ -6305,12 +6627,12 @@ "call": "Loading...", "key": "Loading...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19012", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19025", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19035", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19045", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19055", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19065", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19430", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19443", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19453", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19463", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19473", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19483", "src/tachyon/tabs/updates/initController.ts:1201", "src/tachyon/tabs/updates/initController.ts:1216", "src/tachyon/tabs/updates/initController.ts:1234", @@ -6344,7 +6666,7 @@ "call": "lx", "key": "lx", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5988", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6083", "src/tachyon/helpers/singBoxVariant.ts:62" ] }, @@ -6352,7 +6674,7 @@ "call": "Main DNS", "key": "Main DNS", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9370", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9465", "src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:67" ] }, @@ -6368,8 +6690,8 @@ "key": "Manual", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2280", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7497", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7837", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7592", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7932", "src/tachyon/tabs/dashboard/initController.ts:914", "src/tachyon/tabs/dashboard/initController.ts:1346", "src/tachyon/tabs/dashboard/partials/renderSections.ts:450" @@ -6407,7 +6729,7 @@ "call": "Masquerade LAN traffic into tailnet", "key": "Masquerade LAN traffic into tailnet", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3297" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3320" ] }, { @@ -6449,7 +6771,7 @@ "call": "Maximum size of junk packets", "key": "Maximum size of junk packets", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3438" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3461" ] }, { @@ -6463,7 +6785,7 @@ "call": "Memory Usage", "key": "Memory Usage", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8249", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8344", "src/tachyon/tabs/dashboard/initController.ts:1877" ] }, @@ -6471,14 +6793,14 @@ "call": "Messengers", "key": "Messengers", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:84" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:96" ] }, { "call": "Method", "key": "Method", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2968" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2991" ] }, { @@ -6492,8 +6814,10 @@ "call": "min/day", "key": "min/day", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:319", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:325" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:281", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:287", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:692", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:698" ] }, { @@ -6507,7 +6831,7 @@ "call": "Minimum size of junk packets", "key": "Minimum size of junk packets", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3432" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3455" ] }, { @@ -6535,7 +6859,7 @@ "call": "Mode", "key": "Mode", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:266" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:639" ] }, { @@ -6549,14 +6873,14 @@ "call": "Mon", "key": "Mon", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:22" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:34" ] }, { "call": "Monday", "key": "Monday", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:12" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:24" ] }, { @@ -6570,7 +6894,7 @@ "call": "Monitoring", "key": "Monitoring", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:527" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:541" ] }, { @@ -6606,7 +6930,7 @@ "key": "MTU", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8384", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3356" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3379" ] }, { @@ -6628,16 +6952,16 @@ "call": "My Strategies", "key": "My Strategies", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11890", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:90" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12013", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:94" ] }, { "call": "Name", "key": "Name", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12567", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:870" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12726", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:918" ] }, { @@ -6659,8 +6983,8 @@ "call": "Native internet restored. Tachyon stopped.", "key": "Native internet restored. Tachyon stopped.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14731", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14824", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15149", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15242", "src/tachyon/tabs/diagnostic/initController.ts:1533", "src/tachyon/tabs/diagnostic/initController.ts:1643" ] @@ -6669,7 +6993,7 @@ "call": "Native tailscaled (tailnet reachable from LAN without client)", "key": "Native tailscaled (tailnet reachable from LAN without client)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3287" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3310" ] }, { @@ -6712,7 +7036,7 @@ "call": "New version %s is available for %s", "key": "New version %s is available for %s", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6343", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6438", "src/tachyon/services/core.service.ts:38" ] }, @@ -6720,8 +7044,8 @@ "call": "NFQUEUE range is available", "key": "NFQUEUE range is available", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9855", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9941", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9950", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10036", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:100", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:97" ] @@ -6730,8 +7054,8 @@ "call": "NFQUEUE range overlaps with another rule", "key": "NFQUEUE range overlaps with another rule", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9855", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9941", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9950", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10036", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:99", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:96" ] @@ -6768,10 +7092,10 @@ "call": "No", "key": "No", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7425", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7428", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7488", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7828", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7520", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7523", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7583", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7923", "src/tachyon/tabs/dashboard/initController.ts:822", "src/tachyon/tabs/dashboard/initController.ts:826", "src/tachyon/tabs/dashboard/initController.ts:902", @@ -6790,7 +7114,7 @@ "call": "No active connections", "key": "No active connections", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16429", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16847", "src/tachyon/tabs/monitoring/initController.ts:1026" ] }, @@ -6798,7 +7122,7 @@ "call": "No active DHCP clients found on local network.", "key": "No active DHCP clients found on local network.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14488", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14906", "src/tachyon/tabs/diagnostic/initController.ts:1255" ] }, @@ -6810,19 +7134,27 @@ "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:1222" ] }, + { + "call": "No benchmark history yet. Run a benchmark to see results here.", + "key": "No benchmark history yet. Run a benchmark to see results here.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12928", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1151" + ] + }, { "call": "No benchmark results yet. Configure options and click \"Start Benchmark\".", "key": "No benchmark results yet. Configure options and click \"Start Benchmark\".", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12217", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:470" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12372", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:514" ] }, { "call": "No check targets found in the configuration.", "key": "No check targets found in the configuration.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11069", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11190", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:239" ] }, @@ -6830,7 +7162,7 @@ "call": "No closed connections", "key": "No closed connections", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16429", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16847", "src/tachyon/tabs/monitoring/initController.ts:1027" ] }, @@ -6838,7 +7170,7 @@ "call": "No conflict detected", "key": "No conflict detected", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9480", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:32" ] }, @@ -6853,15 +7185,30 @@ "call": "No custom strategies added yet.", "key": "No custom strategies added yet.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12592", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:898" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12751", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:945" + ] + }, + { + "call": "no devices", + "key": "no devices", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:219" + ] + }, + { + "call": "No devices assigned", + "key": "No devices assigned", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:243", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:265" ] }, { "call": "No DHCP clients detected", "key": "No DHCP clients detected", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14271", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14689", "src/tachyon/tabs/diagnostic/initController.ts:943" ] }, @@ -6869,7 +7216,7 @@ "call": "No diagnostic history available yet.", "key": "No diagnostic history available yet.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14604", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15022", "src/tachyon/tabs/diagnostic/initController.ts:1382" ] }, @@ -6884,7 +7231,7 @@ "call": "No enabled server inbounds configured", "key": "No enabled server inbounds configured", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9600", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9695", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:187" ] }, @@ -6899,7 +7246,7 @@ "call": "No issues detected. System is running normally.", "key": "No issues detected. System is running normally.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14465", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14883", "src/tachyon/tabs/diagnostic/initController.ts:1230" ] }, @@ -6907,7 +7254,7 @@ "call": "No issues found", "key": "No issues found", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14146", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14564", "src/tachyon/tabs/diagnostic/initController.ts:760" ] }, @@ -6915,7 +7262,7 @@ "call": "No other marking rules found", "key": "No other marking rules found", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9705", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9800", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:105" ] }, @@ -6923,7 +7270,7 @@ "call": "No public firewall port required", "key": "No public firewall port required", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9533", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9628", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:99" ] }, @@ -6931,7 +7278,7 @@ "call": "No rules use ByeDPI", "key": "No rules use ByeDPI", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10020", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10115", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:79" ] }, @@ -6939,7 +7286,7 @@ "call": "No rules use Zapret", "key": "No rules use Zapret", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9845", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9940", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:79" ] }, @@ -6947,7 +7294,7 @@ "call": "No rules use Zapret2", "key": "No rules use Zapret2", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9931", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10026", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:82" ] }, @@ -6955,8 +7302,8 @@ "call": "No sections selected", "key": "No sections selected", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:243", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:262" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:616", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:635" ] }, { @@ -6970,15 +7317,15 @@ "call": "No strategies match the active filter.", "key": "No strategies match the active filter.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12746", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1076" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13025", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1264" ] }, { "call": "Node list is empty", "key": "Node list is empty", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7730", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7825", "src/tachyon/tabs/dashboard/initController.ts:1211" ] }, @@ -6986,7 +7333,7 @@ "call": "Nodes", "key": "Nodes", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7569", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7664", "src/tachyon/tabs/dashboard/initController.ts:1010" ] }, @@ -6994,15 +7341,15 @@ "call": "None", "key": "None", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14268", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:313", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:325", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:336", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:355", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14686", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:686", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:698", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:709", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:728", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:449", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2741", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3033", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3042", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2764", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3056", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3065", "src/tachyon/tabs/diagnostic/initController.ts:934" ] }, @@ -7011,13 +7358,13 @@ "key": "Not configured", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2412", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5224", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9489", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13237", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5319", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9584", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13655", "src/tachyon/methods/custom/getDashboardSections.ts:1654", - "src/tachyon/tabs/dashboard/partials/renderSections.ts:623", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:46", - "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:152" + "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:152", + "src/tachyon/tabs/dashboard/partials/renderSections.ts:623" ] }, { @@ -7034,8 +7381,8 @@ "call": "Not detected", "key": "Not detected", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9510", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9610", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9605", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9705", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:70", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:199" ] @@ -7044,7 +7391,7 @@ "call": "Not implement yet", "key": "Not implement yet", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10869", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10990", "src/tachyon/tabs/diagnostic/partials/renderCheckSection.ts:193" ] }, @@ -7052,31 +7399,31 @@ "call": "Not installed", "key": "Not installed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5973", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5978", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13001", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13004", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13007", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19035", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19045", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19055", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19065", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6068", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6073", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13418", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13421", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13424", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19453", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19463", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19473", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19483", "src/tachyon/helpers/singBoxVariant.ts:38", "src/tachyon/helpers/singBoxVariant.ts:46", "src/tachyon/tabs/updates/initController.ts:1237", "src/tachyon/tabs/updates/initController.ts:1251", "src/tachyon/tabs/updates/initController.ts:1265", "src/tachyon/tabs/updates/initController.ts:1279", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1380", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1385", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1390" + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1728", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1733", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1738" ] }, { "call": "Not public", "key": "Not public", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9503", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9598", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:62" ] }, @@ -7084,7 +7431,7 @@ "call": "Not required for this listen address", "key": "Not required for this listen address", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9561", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9656", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:139" ] }, @@ -7094,27 +7441,27 @@ "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2195", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2578", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13188", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13207", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13212", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13260", - "src/tachyon/tabs/dashboard/partials/renderSections.ts:332", - "src/tachyon/tabs/dashboard/partials/renderSections.ts:826", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13606", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13625", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13630", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13678", "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:91", "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:118", "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:124", - "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:180" + "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:180", + "src/tachyon/tabs/dashboard/partials/renderSections.ts:332", + "src/tachyon/tabs/dashboard/partials/renderSections.ts:826" ] }, { "call": "Not running", "key": "Not running", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5562", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13668", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13838", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13884", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13946", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5657", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14086", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14256", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14302", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14364", "src/tachyon/tabs/diagnostic/diagnostic.store.ts:142", "src/tachyon/tabs/diagnostic/initController.ts:127", "src/tachyon/tabs/diagnostic/initController.ts:358", @@ -7133,7 +7480,7 @@ "call": "Notify in Telegram", "key": "Notify in Telegram", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:651" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1046" ] }, { @@ -7210,21 +7557,21 @@ "call": "Number of junk packets before handshake (1-10)", "key": "Number of junk packets before handshake (1-10)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3426" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3449" ] }, { "call": "Obfuscation", "key": "Obfuscation", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3041" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3064" ] }, { "call": "Obfuscation password", "key": "Obfuscation password", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3064" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3087" ] }, { @@ -7304,16 +7651,16 @@ "call": "OOB Values (-o)", "key": "OOB Values (-o)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12426", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:709" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12582", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:754" ] }, { "call": "Open", "key": "Open", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19123", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19160", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19541", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19578", "src/tachyon/tabs/updates/initController.ts:1345", "src/tachyon/tabs/updates/initController.ts:1384" ] @@ -7329,7 +7676,7 @@ "call": "Open Project Page", "key": "Open Project Page", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13110", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13528", "src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:31" ] }, @@ -7337,7 +7684,7 @@ "call": "Operation completed successfully!", "key": "Operation completed successfully!", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17980", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18398", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:324" ] }, @@ -7345,7 +7692,7 @@ "call": "Operation failed", "key": "Operation failed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18106", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18524", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:483" ] }, @@ -7353,8 +7700,8 @@ "call": "Operation in progress...", "key": "Operation in progress...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17807", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17862", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18225", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18280", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:110", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:172" ] @@ -7363,7 +7710,7 @@ "call": "Operation log", "key": "Operation log", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17848", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18266", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:157" ] }, @@ -7371,7 +7718,7 @@ "call": "Operation log is not available", "key": "Operation log is not available", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3657", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3661", "src/tachyon/methods/shell/index.ts:663" ] }, @@ -7379,7 +7726,7 @@ "call": "Operation started. Waiting for log output...", "key": "Operation started. Waiting for log output...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17844", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18262", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:152" ] }, @@ -7388,8 +7735,8 @@ "key": "Operation timed out", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:1066", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3523", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3591", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3527", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3595", "src/helpers/withTimeout.ts:7", "src/tachyon/methods/shell/index.ts:489", "src/tachyon/methods/shell/index.ts:577" @@ -7406,7 +7753,7 @@ "call": "Optimize AWG MTU", "key": "Optimize AWG MTU", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14360", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14778", "src/tachyon/tabs/diagnostic/initController.ts:1100" ] }, @@ -7414,7 +7761,7 @@ "call": "Optimize RAM memory", "key": "Optimize RAM memory", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14352", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14770", "src/tachyon/tabs/diagnostic/initController.ts:1092" ] }, @@ -7437,8 +7784,8 @@ "call": "Optional context (e.g. \"Rostelecom, YouTube 4K buffering is slow\")...", "key": "Optional context (e.g. \"Rostelecom, YouTube 4K buffering is slow\")...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12656", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:972" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12815", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1018" ] }, { @@ -7469,6 +7816,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:6321" ] }, + { + "call": "Optionally specify individual devices not in a profile. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the IP changes.", + "key": "Optionally specify individual devices not in a profile. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the IP changes.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:811" + ] + }, { "call": "Or paste hosts file content:", "key": "Or paste hosts file content:", @@ -7480,7 +7834,7 @@ "call": "Other peers", "key": "Other peers", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8338", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8433", "src/tachyon/tabs/dashboard/initController.ts:1985" ] }, @@ -7531,14 +7885,14 @@ "call": "Padding", "key": "Padding", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3123" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3146" ] }, { "call": "Parental Control", "key": "Parental Control", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:466" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:480" ] }, { @@ -7554,7 +7908,7 @@ "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8492", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8580", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3004" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3027" ] }, { @@ -7605,49 +7959,49 @@ "call": "Pattern Builder", "key": "Pattern Builder", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11889", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:89" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12012", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:93" ] }, { "call": "Patterns reset to defaults!", "key": "Patterns reset to defaults!", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12477", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:763" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12633", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:808" ] }, { "call": "Patterns reset to factory defaults", "key": "Patterns reset to factory defaults", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4154", - "src/tachyon/methods/shell/index.ts:1329" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4164", + "src/tachyon/methods/shell/index.ts:1352" ] }, { "call": "Patterns saved successfully", "key": "Patterns saved successfully", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4130", - "src/tachyon/methods/shell/index.ts:1300" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4140", + "src/tachyon/methods/shell/index.ts:1314" ] }, { "call": "Patterns saved successfully!", "key": "Patterns saved successfully!", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12463", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:749" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12619", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:794" ] }, { "call": "Pause updates", "key": "Pause updates", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15658", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15659", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16202", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16076", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16077", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16620", "src/tachyon/tabs/monitoring/initController.ts:746", "src/tachyon/tabs/monitoring/render.ts:80", "src/tachyon/tabs/monitoring/render.ts:81" @@ -7657,21 +8011,21 @@ "call": "Payload (I3)", "key": "Payload (I3)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3503" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3526" ] }, { "call": "Payload (I4)", "key": "Payload (I4)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3509" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3532" ] }, { "call": "Payload (I5)", "key": "Payload (I5)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3515" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3538" ] }, { @@ -7706,9 +8060,9 @@ "call": "Pending", "key": "Pending", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5492", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:390", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:400", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5587", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:763", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:773", "src/tachyon/tabs/diagnostic/diagnostic.store.ts:63" ] }, @@ -7716,7 +8070,7 @@ "call": "Pending...", "key": "Pending...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10949", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11070", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:98" ] }, @@ -7747,7 +8101,7 @@ "key": "Persistent Keepalive", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8391", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3366" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3389" ] }, { @@ -7757,6 +8111,20 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1919" ] }, + { + "call": "Pets / IoT (🐾)", + "key": "Pets / IoT (🐾)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:20" + ] + }, + { + "call": "Phone (📱)", + "key": "Phone (📱)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:16" + ] + }, { "call": "Pin on dashboard", "key": "Pin on dashboard", @@ -7776,8 +8144,8 @@ "call": "Please specify strategy name and arguments", "key": "Please specify strategy name and arguments", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12516", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:811" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12675", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:859" ] }, { @@ -7805,7 +8173,7 @@ "call": "Port conflict", "key": "Port conflict", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9469", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9564", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:19" ] }, @@ -7878,7 +8246,7 @@ "call": "Pre-shared Key (PSK)", "key": "Pre-shared Key (PSK)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3416" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3439" ] }, { @@ -7899,7 +8267,7 @@ "call": "Preferred IP", "key": "Preferred IP", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3166" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3189" ] }, { @@ -7909,6 +8277,14 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2546" ] }, + { + "call": "Preparing strategies and isolated nftables queue...", + "key": "Preparing strategies and isolated nftables queue...", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13280", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1567" + ] + }, { "call": "Preshared Key", "key": "Preshared Key", @@ -7937,7 +8313,7 @@ "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2349", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2350", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7952", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8047", "src/tachyon/tabs/dashboard/initController.ts:1494", "src/tachyon/tabs/dashboard/partials/renderSections.ts:536", "src/tachyon/tabs/dashboard/partials/renderSections.ts:537" @@ -7947,7 +8323,7 @@ "call": "Priority details are unavailable", "key": "Priority details are unavailable", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7902", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7997", "src/tachyon/tabs/dashboard/initController.ts:1431" ] }, @@ -7982,10 +8358,46 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8333" ] }, + { + "call": "Profile", + "key": "Profile", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:208" + ] + }, + { + "call": "Profile / Devices", + "key": "Profile / Devices", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:546" + ] + }, + { + "call": "Profile Blocked Sites (24/7)", + "key": "Profile Blocked Sites (24/7)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:440" + ] + }, + { + "call": "Profile Icon / Avatar", + "key": "Profile Icon / Avatar", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:361" + ] + }, + { + "call": "Profile Name", + "key": "Profile Name", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:369" + ] + }, { "call": "Protection", "key": "Protection", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:291", "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:650" ] }, @@ -8003,15 +8415,15 @@ "call": "Provider Global Default", "key": "Provider Global Default", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12036", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:265" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12165", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:276" ] }, { "call": "Proxy", "key": "Proxy", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10895", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11016", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:29" ] }, @@ -8019,7 +8431,7 @@ "call": "Proxy / DPI", "key": "Proxy / DPI", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14564", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14982", "src/tachyon/tabs/diagnostic/initController.ts:1338" ] }, @@ -8048,7 +8460,7 @@ "call": "Proxy link is unavailable", "key": "Proxy link is unavailable", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7421", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7516", "src/tachyon/tabs/dashboard/initController.ts:817" ] }, @@ -8077,7 +8489,7 @@ "call": "Public host", "key": "Public host", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9484", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9579", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2690", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:40" ] @@ -8101,8 +8513,8 @@ "call": "RAG Knowledge Base + Live ISP Probe Context", "key": "RAG Knowledge Base + Live ISP Probe Context", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12706", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1029" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12865", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1075" ] }, { @@ -8124,42 +8536,42 @@ "call": "Reality fake site", "key": "Reality fake site", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2829" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2852" ] }, { "call": "Reality fake site port", "key": "Reality fake site port", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2840" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2863" ] }, { "call": "Reality max time difference", "key": "Reality max time difference", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2883" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2906" ] }, { "call": "Reality private key", "key": "Reality private key", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2851" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2874" ] }, { "call": "Reality public key", "key": "Reality public key", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2858" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2881" ] }, { "call": "Reality short ID", "key": "Reality short ID", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2864" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2887" ] }, { @@ -8173,7 +8585,7 @@ "call": "Rebuild firewall rules", "key": "Rebuild firewall rules", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14339", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14757", "src/tachyon/tabs/diagnostic/initController.ts:1079" ] }, @@ -8181,15 +8593,23 @@ "call": "Rebuilt release", "key": "Rebuilt release", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19142", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19560", "src/tachyon/tabs/updates/initController.ts:1365" ] }, + { + "call": "Recommended", + "key": "Recommended", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13253", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1536" + ] + }, { "call": "Recommended Quick Fixes:", "key": "Recommended Quick Fixes:", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14409", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14827", "src/tachyon/tabs/diagnostic/initController.ts:1163" ] }, @@ -8204,7 +8624,7 @@ "call": "Reconnect WAN", "key": "Reconnect WAN", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14345", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14763", "src/tachyon/tabs/diagnostic/initController.ts:1085" ] }, @@ -8234,7 +8654,7 @@ "call": "Refresh", "key": "Refresh", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14511", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14929", "src/tachyon/tabs/diagnostic/initController.ts:1280" ] }, @@ -8242,7 +8662,7 @@ "call": "Refresh Device List", "key": "Refresh Device List", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14492", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14910", "src/tachyon/tabs/diagnostic/initController.ts:1259" ] }, @@ -8264,7 +8684,7 @@ "call": "Reinstall", "key": "Reinstall", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18922", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19340", "src/tachyon/tabs/updates/initController.ts:1107" ] }, @@ -8272,7 +8692,7 @@ "call": "Reload now", "key": "Reload now", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18000", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18418", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:349" ] }, @@ -8280,7 +8700,7 @@ "call": "Reloading...", "key": "Reloading...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18032", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18450", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:390" ] }, @@ -8295,7 +8715,7 @@ "call": "Removal completed successfully!", "key": "Removal completed successfully!", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17980", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18398", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:323" ] }, @@ -8303,7 +8723,7 @@ "call": "Remove", "key": "Remove", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18888", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19306", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7927", "src/tachyon/tabs/updates/initController.ts:1061" ] @@ -8333,7 +8753,7 @@ "call": "Removing", "key": "Removing", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17811", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18229", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:114" ] }, @@ -8355,7 +8775,7 @@ "call": "Reset Bootstrap DNS", "key": "Reset Bootstrap DNS", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14359", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14777", "src/tachyon/tabs/diagnostic/initController.ts:1099" ] }, @@ -8386,7 +8806,7 @@ "call": "Resolve gateway", "key": "Resolve gateway", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14346", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14764", "src/tachyon/tabs/diagnostic/initController.ts:1086" ] }, @@ -8429,14 +8849,14 @@ "call": "Response packet header (H2)", "key": "Response packet header (H2)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3473" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3496" ] }, { "call": "Response packet junk size (S2)", "key": "Response packet junk size (S2)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3449" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3472" ] }, { @@ -8457,14 +8877,14 @@ "call": "Response payload (I2)", "key": "Response payload (I2)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3497" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3520" ] }, { "call": "Restart dnsmasq", "key": "Restart dnsmasq", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14340", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14758", "src/tachyon/tabs/diagnostic/initController.ts:1080" ] }, @@ -8472,7 +8892,7 @@ "call": "Restart firewall", "key": "Restart firewall", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14349", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14767", "src/tachyon/tabs/diagnostic/initController.ts:1089" ] }, @@ -8480,7 +8900,7 @@ "call": "Restart network", "key": "Restart network", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14350", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14768", "src/tachyon/tabs/diagnostic/initController.ts:1090" ] }, @@ -8488,7 +8908,7 @@ "call": "Restart sing-box DNS", "key": "Restart sing-box DNS", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14343", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14761", "src/tachyon/tabs/diagnostic/initController.ts:1083" ] }, @@ -8496,7 +8916,7 @@ "call": "Restart Tachyon", "key": "Restart Tachyon", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10570", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10691", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:64" ] }, @@ -8504,7 +8924,7 @@ "call": "Restart Zapret/ByeDPI", "key": "Restart Zapret/ByeDPI", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14351", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14769", "src/tachyon/tabs/diagnostic/initController.ts:1091" ] }, @@ -8528,7 +8948,7 @@ "call": "Restore config backup", "key": "Restore config backup", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14344", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14762", "src/tachyon/tabs/diagnostic/initController.ts:1084" ] }, @@ -8536,9 +8956,9 @@ "call": "Restore Native Internet", "key": "Restore Native Internet", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10648", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14789", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14812", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10769", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15207", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15230", "src/tachyon/tabs/diagnostic/initController.ts:1603", "src/tachyon/tabs/diagnostic/initController.ts:1627", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:142" @@ -8548,8 +8968,8 @@ "call": "Restore Native Internet (Stop Tachyon)", "key": "Restore Native Internet (Stop Tachyon)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14356", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14718", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14774", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15136", "src/tachyon/tabs/diagnostic/initController.ts:1096", "src/tachyon/tabs/diagnostic/initController.ts:1516" ] @@ -8572,17 +8992,31 @@ "call": "Restoring native direct internet (stopping Tachyon)...", "key": "Restoring native direct internet (stopping Tachyon)...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14721", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14816", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15139", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15234", "src/tachyon/tabs/diagnostic/initController.ts:1519", "src/tachyon/tabs/diagnostic/initController.ts:1631" ] }, + { + "call": "Restrict LAN access for specific users", + "key": "Restrict LAN access for specific users", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2726" + ] + }, + { + "call": "Restricted users (auth_user)", + "key": "Restricted users (auth_user)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2737" + ] + }, { "call": "Resume updates", "key": "Resume updates", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16202", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16620", "src/tachyon/tabs/monitoring/initController.ts:746" ] }, @@ -8590,16 +9024,16 @@ "call": "Return NXDOMAIN for blocked domains (recommended). When enabled, blocked domains are not resolved at all. When disabled, only direct connections are rejected.", "key": "Return NXDOMAIN for blocked domains (recommended). When enabled, blocked domains are not resolved at all. When disabled, only direct connections are rejected.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:641" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1036" ] }, { "call": "Route", "key": "Route", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11245", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16311", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16362", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11366", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16729", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16780", "src/tachyon/tabs/monitoring/initController.ts:880", "src/tachyon/tabs/monitoring/initController.ts:943", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:444" @@ -8609,7 +9043,7 @@ "call": "Route all non-local LAN traffic through the tailnet exit node instead of the proxy engines.", "key": "Route all non-local LAN traffic through the tailnet exit node instead of the proxy engines.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3311" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3334" ] }, { @@ -8637,7 +9071,7 @@ "call": "Route via Proxy", "key": "Route via Proxy", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14570", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14988", "src/tachyon/tabs/diagnostic/initController.ts:1345" ] }, @@ -8659,9 +9093,9 @@ "call": "Routing rules", "key": "Routing rules", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9537", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9546", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9565", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9632", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9641", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9660", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:103", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:114", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:144" @@ -8685,7 +9119,7 @@ "call": "Rule Name", "key": "Rule Name", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:406" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:779" ] }, { @@ -8721,8 +9155,8 @@ "call": "Rule:", "key": "Rule:", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12037", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:266" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12166", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:277" ] }, { @@ -8738,7 +9172,7 @@ "call": "Rules mangle counters", "key": "Rules mangle counters", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9680", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9775", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:79" ] }, @@ -8746,7 +9180,7 @@ "call": "Rules mangle exist", "key": "Rules mangle exist", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9675", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9770", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:74" ] }, @@ -8754,7 +9188,7 @@ "call": "Rules mangle output counters", "key": "Rules mangle output counters", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9690", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9785", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:89" ] }, @@ -8762,7 +9196,7 @@ "call": "Rules mangle output exist", "key": "Rules mangle output exist", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9685", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9780", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:84" ] }, @@ -8770,7 +9204,7 @@ "call": "Rules proxy counters", "key": "Rules proxy counters", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9700", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9795", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:99" ] }, @@ -8778,7 +9212,7 @@ "call": "Rules proxy exist", "key": "Rules proxy exist", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9695", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9790", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:94" ] }, @@ -8786,7 +9220,7 @@ "call": "Run AI Doctor", "key": "Run AI Doctor", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10638", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10759", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:132" ] }, @@ -8794,7 +9228,7 @@ "call": "Run Diagnostic", "key": "Run Diagnostic", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10880", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11001", "src/tachyon/tabs/diagnostic/partials/renderRunAction.ts:17" ] }, @@ -8802,7 +9236,7 @@ "call": "Run doctor repair", "key": "Run doctor repair", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10628", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10749", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:122" ] }, @@ -8811,22 +9245,22 @@ "key": "Running", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2412", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5224", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13220", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5319", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13638", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:301", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2072", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2073", "src/tachyon/methods/custom/getDashboardSections.ts:1649", - "src/tachyon/tabs/dashboard/partials/renderSections.ts:618", - "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:135" + "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:135", + "src/tachyon/tabs/dashboard/partials/renderSections.ts:618" ] }, { "call": "Running benchmarks...", "key": "Running benchmarks...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12746", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1075" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13025", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1263" ] }, { @@ -8843,18 +9277,25 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9246" ] }, + { + "call": "SafeSearch", + "key": "SafeSearch", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:303" + ] + }, { "call": "Sat", "key": "Sat", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:27" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:39" ] }, { "call": "Saturday", "key": "Saturday", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:17" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:29" ] }, { @@ -8909,29 +9350,31 @@ "call": "Schedule", "key": "Schedule", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:282" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:655" ] }, { "call": "Schedule Rule", "key": "Schedule Rule", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:472" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:486" ] }, { "call": "Score", "key": "Score", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12198", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:451" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12353", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12946", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:495", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1169" ] }, { "call": "Search", "key": "Search", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15635", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16053", "src/tachyon/tabs/monitoring/render.ts:57" ] }, @@ -8939,7 +9382,7 @@ "call": "Search domain or service...", "key": "Search domain or service...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11204", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11325", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:397" ] }, @@ -8947,15 +9390,15 @@ "call": "Search Mode", "key": "Search Mode", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12027", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:254" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12156", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:265" ] }, { "call": "Secret", "key": "Secret", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3080" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3103" ] }, { @@ -9040,14 +9483,14 @@ "key": "Security", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2051", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2738" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2761" ] }, { "call": "Select", "key": "Select", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7710", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7805", "src/tachyon/tabs/dashboard/initController.ts:1185" ] }, @@ -9105,7 +9548,7 @@ "call": "Select active days. If none selected, the rule applies every day.", "key": "Select active days. If none selected, the rule applies every day.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:504" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:899" ] }, { @@ -9151,10 +9594,10 @@ ] }, { - "call": "Select LAN devices to apply this schedule to, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes. IP addresses (e.g. 192.168.1.150) are used for DNS-level blocking and require a stable lease.", - "key": "Select LAN devices to apply this schedule to, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes. IP addresses (e.g. 192.168.1.150) are used for DNS-level blocking and require a stable lease.", + "call": "Select LAN devices to assign to this profile, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes via DHCP.", + "key": "Select LAN devices to assign to this profile, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes via DHCP.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:416" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:379" ] }, { @@ -9203,14 +9646,14 @@ "call": "Select Sections", "key": "Select Sections", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:446" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:841" ] }, { "call": "Select the fastest node", "key": "Select the fastest node", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7920", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8015", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3146", "src/tachyon/tabs/dashboard/initController.ts:1454" ] @@ -9247,15 +9690,15 @@ "call": "Select whether to disable the target during the schedule or enable it ONLY during the schedule.", "key": "Select whether to disable the target during the schedule or enable it ONLY during the schedule.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:468" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:863" ] }, { "call": "Selected", "key": "Selected", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7794", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7906", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7889", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8001", "src/tachyon/tabs/dashboard/initController.ts:1289", "src/tachyon/tabs/dashboard/initController.ts:1440" ] @@ -9279,7 +9722,7 @@ "call": "Send", "key": "Send", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11674", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11795", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:67" ] }, @@ -9315,7 +9758,7 @@ "call": "Send a Telegram notification to admins when a blocked site is accessed. Requires the Telegram bot to be enabled.", "key": "Send a Telegram notification to admins when a blocked site is accessed. Requires the Telegram bot to be enabled.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:652" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1047" ] }, { @@ -9332,12 +9775,19 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2274" ] }, + { + "call": "Send Telegram alerts to parents when daily screen time is exhausted or blocked sites are accessed.", + "key": "Send Telegram alerts to parents when daily screen time is exhausted or blocked sites are accessed.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:528" + ] + }, { "call": "Sequence Overlaps (seqovl)", "key": "Sequence Overlaps (seqovl)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12352", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:631" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12508", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:676" ] }, { @@ -9357,7 +9807,7 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8554", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8589", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8659", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3324" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3347" ] }, { @@ -9401,7 +9851,7 @@ "call": "Server name / SNI", "key": "Server name / SNI", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2767" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2790" ] }, { @@ -9443,21 +9893,21 @@ "call": "Server Private Key", "key": "Server Private Key", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3377" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3400" ] }, { "call": "Server Public Key", "key": "Server Public Key", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3387" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3410" ] }, { "call": "Server unavailable", "key": "Server unavailable", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11742", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11863", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:148" ] }, @@ -9465,7 +9915,7 @@ "call": "Server VPN IP address and subnet (e.g. 10.0.0.1/24)", "key": "Server VPN IP address and subnet (e.g. 10.0.0.1/24)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3325" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3348" ] }, { @@ -9494,7 +9944,7 @@ "call": "Service / Target", "key": "Service / Target", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11240", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11361", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:439" ] }, @@ -9502,9 +9952,9 @@ "call": "Service action failed", "key": "Service action failed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3482", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3501", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14030", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3486", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3505", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14448", "src/tachyon/methods/shell/index.ts:440", "src/tachyon/methods/shell/index.ts:461", "src/tachyon/tabs/diagnostic/initController.ts:609" @@ -9514,7 +9964,7 @@ "call": "Service availability check", "key": "Service availability check", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11026", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11147", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:186" ] }, @@ -9536,7 +9986,7 @@ "call": "Services are online and ready! Reloading page...", "key": "Services are online and ready! Reloading page...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18029", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18447", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:387" ] }, @@ -9544,7 +9994,7 @@ "call": "Services are online, waiting for full initialization...", "key": "Services are online, waiting for full initialization...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18021", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18439", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:375" ] }, @@ -9552,7 +10002,7 @@ "call": "Services info", "key": "Services info", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8258", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8353", "src/tachyon/tabs/dashboard/initController.ts:1887" ] }, @@ -9560,7 +10010,7 @@ "call": "Services restarted. Click to reload page.", "key": "Services restarted. Click to reload page.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18054", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18472", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:418" ] }, @@ -9570,7 +10020,7 @@ "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1152", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7232", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:480" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:494" ] }, { @@ -9584,7 +10034,7 @@ "call": "Shopping", "key": "Shopping", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:93" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:105" ] }, { @@ -9647,8 +10097,8 @@ "call": "Show sing-box config", "key": "Show sing-box config", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10696", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14853", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10817", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15271", "src/tachyon/tabs/diagnostic/initController.ts:1677", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:190" ] @@ -9657,8 +10107,8 @@ "call": "Show sing-box config failed", "key": "Show sing-box config failed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14864", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14871", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15282", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15289", "src/tachyon/tabs/diagnostic/initController.ts:1688", "src/tachyon/tabs/diagnostic/initController.ts:1695" ] @@ -9674,7 +10124,7 @@ "call": "Sing-box autostart disabled", "key": "Sing-box autostart disabled", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9441", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9536", "src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:77" ] }, @@ -9682,14 +10132,14 @@ "call": "sing-box endpoint (userspace, default)", "key": "sing-box endpoint (userspace, default)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3283" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3306" ] }, { "call": "Sing-box FakeIP DNS does not work", "key": "Sing-box FakeIP DNS does not work", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9757", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9852", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:69" ] }, @@ -9697,7 +10147,7 @@ "call": "Sing-box FakeIP DNS works", "key": "Sing-box FakeIP DNS works", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9757", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9852", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:68" ] }, @@ -9705,7 +10155,7 @@ "call": "Sing-box installed", "key": "Sing-box installed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9426", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9521", "src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:62" ] }, @@ -9713,7 +10163,7 @@ "call": "Sing-box listening ports", "key": "Sing-box listening ports", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9451", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9546", "src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:87" ] }, @@ -9721,7 +10171,7 @@ "call": "Sing-box process running", "key": "Sing-box process running", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9446", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9541", "src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:82" ] }, @@ -9729,7 +10179,7 @@ "call": "Sing-box service exist", "key": "Sing-box service exist", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9436", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9531", "src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:72" ] }, @@ -9737,7 +10187,7 @@ "call": "Sing-box version is compatible (newer than 1.12.4)", "key": "Sing-box version is compatible (newer than 1.12.4)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9431", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9526", "src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:67" ] }, @@ -9748,6 +10198,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9257" ] }, + { + "call": "sites", + "key": "sites", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:309" + ] + }, { "call": "Skip loopback & local entries (127.0.0.1, ::1, 0.0.0.0, localhost)", "key": "Skip loopback & local entries (127.0.0.1, ::1, 0.0.0.0, localhost)", @@ -9808,7 +10265,7 @@ "call": "SNAT LAN sources when leaving through tailscale0 so peers can answer. Required unless every peer accepts routes.", "key": "SNAT LAN sources when leaving through tailscale0 so peers can answer. Required unless every peer accepts routes.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3298" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3321" ] }, { @@ -9822,7 +10279,7 @@ "call": "Social media", "key": "Social media", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:43" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:55" ] }, { @@ -9850,8 +10307,8 @@ "call": "Source", "key": "Source", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16323", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16366", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16741", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16784", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10099", "src/tachyon/tabs/monitoring/initController.ts:892", "src/tachyon/tabs/monitoring/initController.ts:947" @@ -9875,7 +10332,7 @@ "call": "Specific Sections (Select sections below)", "key": "Specific Sections (Select sections below)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:440" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:835" ] }, { @@ -9897,40 +10354,40 @@ "call": "Speed", "key": "Speed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12197", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:450" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12352", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:494" ] }, { "call": "Split Modes (dpi-desync)", "key": "Split Modes (dpi-desync)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12377", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:658" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12533", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:703" ] }, { "call": "Split Positions (dpi-desync-split-pos)", "key": "Split Positions (dpi-desync-split-pos)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12383", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:664" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12539", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:709" ] }, { "call": "Split Positions (pos)", "key": "Split Positions (pos)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12334", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:613" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12490", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:658" ] }, { "call": "Split Values (-s)", "key": "Split Values (-s)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12414", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:697" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12570", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:742" ] }, { @@ -9945,7 +10402,7 @@ "call": "Standalone ByeDPI autostart is enabled", "key": "Standalone ByeDPI autostart is enabled", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10035", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10130", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:122" ] }, @@ -9953,7 +10410,7 @@ "call": "Standalone ByeDPI is active together with Tachyon ByeDPI rules", "key": "Standalone ByeDPI is active together with Tachyon ByeDPI rules", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10035", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10130", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:119" ] }, @@ -9961,7 +10418,7 @@ "call": "Standalone ByeDPI service is active", "key": "Standalone ByeDPI service is active", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10035", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10130", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:120" ] }, @@ -9969,7 +10426,7 @@ "call": "Standalone ByeDPI service is inactive", "key": "Standalone ByeDPI service is inactive", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10035", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10130", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:123" ] }, @@ -9977,7 +10434,7 @@ "call": "Standalone Zapret is active together with Tachyon Zapret rules", "key": "Standalone Zapret is active together with Tachyon Zapret rules", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9865", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9960", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:111" ] }, @@ -9985,7 +10442,7 @@ "call": "Standalone Zapret service is active", "key": "Standalone Zapret service is active", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9865", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9960", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:112" ] }, @@ -9993,7 +10450,7 @@ "call": "Standalone Zapret service is inactive", "key": "Standalone Zapret service is inactive", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9865", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9960", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:113" ] }, @@ -10001,7 +10458,7 @@ "call": "Standalone Zapret2 autostart is enabled", "key": "Standalone Zapret2 autostart is enabled", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9953", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10048", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:123" ] }, @@ -10009,7 +10466,7 @@ "call": "Standalone Zapret2 is active together with Tachyon Zapret2 rules", "key": "Standalone Zapret2 is active together with Tachyon Zapret2 rules", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9951", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10046", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:118" ] }, @@ -10017,7 +10474,7 @@ "call": "Standalone Zapret2 service is active", "key": "Standalone Zapret2 service is active", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9953", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10048", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:121" ] }, @@ -10025,10 +10482,18 @@ "call": "Standalone Zapret2 service is inactive", "key": "Standalone Zapret2 service is inactive", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9953", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10048", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:124" ] }, + { + "call": "Standard", + "key": "Standard", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:316", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:329" + ] + }, { "call": "Start", "key": "Start", @@ -10047,7 +10512,7 @@ "call": "Start sing-box", "key": "Start sing-box", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14338", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14756", "src/tachyon/tabs/diagnostic/initController.ts:1078" ] }, @@ -10055,7 +10520,7 @@ "call": "Start Tachyon", "key": "Start Tachyon", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10590", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10711", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:84" ] }, @@ -10063,14 +10528,14 @@ "call": "Start Time (HH:MM)", "key": "Start Time (HH:MM)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:479" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:874" ] }, { "call": "Start watchdog", "key": "Start watchdog", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14342", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14760", "src/tachyon/tabs/diagnostic/initController.ts:1082" ] }, @@ -10093,7 +10558,7 @@ "call": "State", "key": "State", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8320", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8415", "src/tachyon/tabs/dashboard/initController.ts:1964" ] }, @@ -10102,19 +10567,20 @@ "key": "Status", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2451", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11282", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:360", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11403", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:333", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:733", + "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:481", "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:490", - "src/tachyon/tabs/dashboard/partials/renderSections.ts:670", - "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:481" + "src/tachyon/tabs/dashboard/partials/renderSections.ts:670" ] }, { "call": "Status / Suite", "key": "Status / Suite", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12194", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:447" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12349", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:491" ] }, { @@ -10142,7 +10608,7 @@ "call": "Stop Tachyon", "key": "Stop Tachyon", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10580", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10701", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:74" ] }, @@ -10151,13 +10617,13 @@ "key": "Stopped", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2412", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5224", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13232", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5319", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13650", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:307", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2078", "src/tachyon/methods/custom/getDashboardSections.ts:1653", - "src/tachyon/tabs/dashboard/partials/renderSections.ts:622", - "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:147" + "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:147", + "src/tachyon/tabs/dashboard/partials/renderSections.ts:622" ] }, { @@ -10179,32 +10645,39 @@ "call": "Strategy & Parameters", "key": "Strategy & Parameters", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12189", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:442" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12344", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:486" ] }, { "call": "Strategy benchmark started", "key": "Strategy benchmark started", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12913", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1275" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13327", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1620" ] }, { "call": "Strategy deleted", "key": "Strategy deleted", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12637", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:947" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12796", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:993" ] }, { "call": "Strategy Name", "key": "Strategy Name", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12490", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:783" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12646", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:828" + ] + }, + { + "call": "Strict (🔒)", + "key": "Strict (🔒)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:19" ] }, { @@ -10248,10 +10721,10 @@ "call": "Subscription update failed", "key": "Subscription update failed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3838", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3856", - "src/tachyon/methods/shell/index.ts:929", - "src/tachyon/methods/shell/index.ts:949" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3848", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3866", + "src/tachyon/methods/shell/index.ts:939", + "src/tachyon/methods/shell/index.ts:959" ] }, { @@ -10279,7 +10752,7 @@ "call": "Subscriptions updated", "key": "Subscriptions updated", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7051", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7146", "src/tachyon/tabs/dashboard/initController.ts:336" ] }, @@ -10301,14 +10774,14 @@ "call": "Sun", "key": "Sun", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:28" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:40" ] }, { "call": "Sunday", "key": "Sunday", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:18" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:30" ] }, { @@ -10322,7 +10795,7 @@ "call": "Switch DNS to DoH", "key": "Switch DNS to DoH", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14353", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14771", "src/tachyon/tabs/diagnostic/initController.ts:1093" ] }, @@ -10330,7 +10803,7 @@ "call": "Switch to auto-selection", "key": "Switch to auto-selection", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7770", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7865", "src/tachyon/tabs/dashboard/initController.ts:1254" ] }, @@ -10338,7 +10811,7 @@ "call": "Sync System Time (NTP)", "key": "Sync System Time (NTP)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14357", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14775", "src/tachyon/tabs/diagnostic/initController.ts:1097" ] }, @@ -10346,7 +10819,7 @@ "call": "System info", "key": "System info", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8246", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8341", "src/tachyon/tabs/dashboard/initController.ts:1874" ] }, @@ -10354,7 +10827,7 @@ "call": "System information", "key": "System information", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13040", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13458", "src/tachyon/tabs/diagnostic/partials/renderSystemInfo.ts:24" ] }, @@ -10362,7 +10835,7 @@ "call": "Table exist", "key": "Table exist", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9670", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9765", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:69" ] }, @@ -10370,7 +10843,7 @@ "call": "Tachyon Error", "key": "Tachyon Error", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6353", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6448", "src/tachyon/services/core.service.ts:52" ] }, @@ -10406,7 +10879,7 @@ "call": "Tachyon service is stopped. Start the service to display connections.", "key": "Tachyon service is stopped. Start the service to display connections.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16400", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16818", "src/tachyon/tabs/monitoring/initController.ts:991" ] }, @@ -10429,8 +10902,8 @@ "call": "Tachyon update did not complete within the timeout", "key": "Tachyon update did not complete within the timeout", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3755", - "src/tachyon/methods/shell/index.ts:817" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3768", + "src/tachyon/methods/shell/index.ts:822" ] }, { @@ -10444,7 +10917,7 @@ "call": "Tachyon-managed ciadpi runtime has restarted", "key": "Tachyon-managed ciadpi runtime has restarted", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10025", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10120", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:91" ] }, @@ -10452,7 +10925,7 @@ "call": "Tachyon-managed ciadpi runtime is not ready", "key": "Tachyon-managed ciadpi runtime is not ready", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10025", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10120", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:94" ] }, @@ -10460,7 +10933,7 @@ "call": "Tachyon-managed ciadpi runtime is not running", "key": "Tachyon-managed ciadpi runtime is not running", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10025", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10120", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:97" ] }, @@ -10468,7 +10941,7 @@ "call": "Tachyon-managed ciadpi runtime is ready", "key": "Tachyon-managed ciadpi runtime is ready", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10025", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10120", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:93" ] }, @@ -10476,7 +10949,7 @@ "call": "Tachyon-managed nfqws runtime is not ready", "key": "Tachyon-managed nfqws runtime is not ready", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9850", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9945", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:87" ] }, @@ -10484,7 +10957,7 @@ "call": "Tachyon-managed nfqws runtime is not running", "key": "Tachyon-managed nfqws runtime is not running", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9850", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9945", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:90" ] }, @@ -10492,7 +10965,7 @@ "call": "Tachyon-managed nfqws runtime is ready", "key": "Tachyon-managed nfqws runtime is ready", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9850", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9945", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:86" ] }, @@ -10500,7 +10973,7 @@ "call": "Tachyon-managed nfqws2 runtime is not ready", "key": "Tachyon-managed nfqws2 runtime is not ready", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9936", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10031", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:90" ] }, @@ -10508,7 +10981,7 @@ "call": "Tachyon-managed nfqws2 runtime is not running", "key": "Tachyon-managed nfqws2 runtime is not running", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9936", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10031", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:93" ] }, @@ -10516,7 +10989,7 @@ "call": "Tachyon-managed nfqws2 runtime is ready", "key": "Tachyon-managed nfqws2 runtime is ready", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9936", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10031", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:89" ] }, @@ -10524,7 +10997,7 @@ "call": "Tailscale", "key": "Tailscale", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8315", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8410", "src/tachyon/tabs/dashboard/initController.ts:1954" ] }, @@ -10532,21 +11005,21 @@ "call": "Tailscale auth key", "key": "Tailscale auth key", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3222" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3245" ] }, { "call": "Tailscale control URL", "key": "Tailscale control URL", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3231" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3254" ] }, { "call": "Tailscale endpoint", "key": "Tailscale endpoint", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9532", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9627", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:98" ] }, @@ -10554,58 +11027,81 @@ "call": "Tailscale hostname", "key": "Tailscale hostname", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3239" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3262" ] }, { "call": "Tailscale mode", "key": "Tailscale mode", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3280" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3303" ] }, { "call": "Target", "key": "Target", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:229" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12943", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:602", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1166" ] }, { - "call": "Target Devices (IP / MAC)", - "key": "Target Devices (IP / MAC)", + "call": "Target Family Profiles", + "key": "Target Family Profiles", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:415" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:788" ] }, { "call": "Target Scope", "key": "Target Scope", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:434" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:829" ] }, { "call": "Target Service / Suite", "key": "Target Service / Suite", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11994", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:217" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12123", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:228" ] }, { "call": "TCP Window Sizes (wsize)", "key": "TCP Window Sizes (wsize)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12358", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:637" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12514", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:682" + ] + }, + { + "call": "Teen (🧑)", + "key": "Teen (🧑)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:14" + ] + }, + { + "call": "Telegram", + "key": "Telegram", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:312" + ] + }, + { + "call": "Telegram Alerts", + "key": "Telegram Alerts", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:527" ] }, { "call": "Telegram Bot", "key": "Telegram Bot", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:492" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:506" ] }, { @@ -10619,7 +11115,7 @@ "call": "Telegram Channel", "key": "Telegram Channel", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13120", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13538", "src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:42" ] }, @@ -10694,19 +11190,27 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2349" ] }, + { + "call": "Testing bypass strategies in isolated sandbox...", + "key": "Testing bypass strategies in isolated sandbox...", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13311", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1602" + ] + }, { "call": "Testing strategy", "key": "Testing strategy", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12846", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1193" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13129", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1384" ] }, { "call": "Testing URL", "key": "Testing URL", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7797", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7892", "src/tachyon/tabs/dashboard/initController.ts:1292" ] }, @@ -10714,8 +11218,8 @@ "call": "Testing...", "key": "Testing...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10959", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11550", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11080", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11671", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:108", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:797" ] @@ -10754,7 +11258,7 @@ "call": "There are rules using ByeDPI", "key": "There are rules using ByeDPI", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10020", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10115", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:78" ] }, @@ -10762,7 +11266,7 @@ "call": "There are rules using Zapret", "key": "There are rules using Zapret", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9845", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9940", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:78" ] }, @@ -10770,7 +11274,7 @@ "call": "There are rules using Zapret2", "key": "There are rules using Zapret2", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9931", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10026", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:81" ] }, @@ -10778,7 +11282,7 @@ "call": "Thinking...", "key": "Thinking...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11698", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11819", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:97" ] }, @@ -10786,7 +11290,7 @@ "call": "This action will stop Tachyon, restore standard dnsmasq/DNS, remove all proxy/anti-censorship firewall rules and restore direct Internet connection through your ISP.", "key": "This action will stop Tachyon, restore standard dnsmasq/DNS, remove all proxy/anti-censorship firewall rules and restore direct Internet connection through your ISP.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14794", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15212", "src/tachyon/tabs/diagnostic/initController.ts:1608" ] }, @@ -10800,7 +11304,7 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1928", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2018", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2180", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3027" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3050" ] }, { @@ -10858,7 +11362,7 @@ "call": "This router", "key": "This router", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8328", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8423", "src/tachyon/tabs/dashboard/initController.ts:1975" ] }, @@ -10880,23 +11384,23 @@ "call": "Thu", "key": "Thu", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:25" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:37" ] }, { "call": "Thursday", "key": "Thursday", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:15" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:27" ] }, { "call": "Time", "key": "Time", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16314", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16363", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16497", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16732", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16781", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16915", "src/tachyon/tabs/monitoring/initController.ts:883", "src/tachyon/tabs/monitoring/initController.ts:944", "src/tachyon/tabs/monitoring/initController.ts:1127" @@ -10913,21 +11417,21 @@ "call": "Time is required (e.g. 22:00)", "key": "Time is required (e.g. 22:00)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:105" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:117" ] }, { "call": "Time skew tolerance", "key": "Time skew tolerance", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3196" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3219" ] }, { "call": "tiny", "key": "tiny", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5990", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6085", "src/tachyon/helpers/singBoxVariant.ts:64" ] }, @@ -10957,8 +11461,15 @@ "call": "TLS-Rec Bounds (--tlsrec)", "key": "TLS-Rec Bounds (--tlsrec)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12438", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:721" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12594", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:766" + ] + }, + { + "call": "Toddler (👶)", + "key": "Toddler (👶)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:12" ] }, { @@ -10972,7 +11483,7 @@ "call": "Tolerance", "key": "Tolerance", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7799", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7894", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2657", "src/tachyon/tabs/dashboard/initController.ts:1294" ] @@ -10984,6 +11495,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3203" ] }, + { + "call": "Total allowed network usage per day for devices in this profile. When the quota is reached, access is blocked until midnight. Enter 0 for unlimited.", + "key": "Total allowed network usage per day for devices in this profile. When the quota is reached, access is blocked until midnight. Enter 0 for unlimited.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:398" + ] + }, { "call": "Total lines:", "key": "Total lines:", @@ -10995,7 +11513,7 @@ "call": "Total targets", "key": "Total targets", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11160", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11281", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:345" ] }, @@ -11018,7 +11536,7 @@ "key": "Traffic", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2043", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8222", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8317", "src/tachyon/tabs/dashboard/initController.ts:1848", "src/tachyon/tabs/dashboard/partials/renderSections.ts:133" ] @@ -11048,7 +11566,7 @@ "call": "Traffic Total", "key": "Traffic Total", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8234", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8329", "src/tachyon/tabs/dashboard/initController.ts:1861" ] }, @@ -11070,7 +11588,7 @@ "call": "Transient connection error", "key": "Transient connection error", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18785", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19203", "src/tachyon/tabs/updates/initController.ts:922" ] }, @@ -11087,35 +11605,35 @@ "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2045", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8566", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2905" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2928" ] }, { "call": "Transport host", "key": "Transport host", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2929" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2952" ] }, { "call": "Transport packet header (H4)", "key": "Transport packet header (H4)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3485" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3508" ] }, { "call": "Transport packet junk size (S4)", "key": "Transport packet junk size (S4)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3461" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3484" ] }, { "call": "Transport path", "key": "Transport path", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2913" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2936" ] }, { @@ -11129,7 +11647,7 @@ "call": "Troubleshooting", "key": "Troubleshooting", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13104", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13522", "src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:25" ] }, @@ -11144,8 +11662,8 @@ "call": "TTFB", "key": "TTFB", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12196", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:449" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12351", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:493" ] }, { @@ -11166,30 +11684,30 @@ "call": "TTL Values (dpi-desync-ttl)", "key": "TTL Values (dpi-desync-ttl)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12395", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:676" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12551", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:721" ] }, { "call": "TTL Values (ttl)", "key": "TTL Values (ttl)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12346", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:625" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12502", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:670" ] }, { "call": "Tue", "key": "Tue", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:23" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:35" ] }, { "call": "Tuesday", "key": "Tuesday", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:13" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:25" ] }, { @@ -11203,8 +11721,8 @@ "call": "Type", "key": "Type", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16308", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16361", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16726", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16779", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1696", "src/tachyon/tabs/monitoring/initController.ts:877", "src/tachyon/tabs/monitoring/initController.ts:942" @@ -11221,7 +11739,7 @@ "call": "UDP / QUIC protocols", "key": "UDP / QUIC protocols", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10925", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11046", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:65" ] }, @@ -11259,7 +11777,7 @@ "call": "Unavailability timeout", "key": "Unavailability timeout", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7914", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8009", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3120", "src/tachyon/tabs/dashboard/initController.ts:1448" ] @@ -11268,8 +11786,8 @@ "call": "Unavailable", "key": "Unavailable", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10980", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11162", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11101", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11283", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:135", "src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:347" ] @@ -11278,7 +11796,7 @@ "call": "Underload packet header (H3)", "key": "Underload packet header (H3)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3479" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3502" ] }, { @@ -11329,7 +11847,7 @@ "call": "Unexpected Tachyon-managed ciadpi runtime is running", "key": "Unexpected Tachyon-managed ciadpi runtime is running", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10025", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10120", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:96" ] }, @@ -11337,7 +11855,7 @@ "call": "Unexpected Tachyon-managed nfqws runtime is running", "key": "Unexpected Tachyon-managed nfqws runtime is running", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9850", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9945", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:89" ] }, @@ -11345,7 +11863,7 @@ "call": "Unexpected Tachyon-managed nfqws2 runtime is running", "key": "Unexpected Tachyon-managed nfqws2 runtime is running", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9936", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10031", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:92" ] }, @@ -11374,19 +11892,19 @@ "call": "unknown", "key": "unknown", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5973", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9474", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10055", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10057", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10058", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10059", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10066", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10068", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10070", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10072", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10075", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10076", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18405", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6068", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9569", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10150", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10152", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10153", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10154", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10161", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10163", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10165", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10167", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10170", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10171", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18823", "src/tachyon/helpers/singBoxVariant.ts:37", "src/tachyon/services/systemInfo.service.ts:10", "src/tachyon/services/systemInfo.service.ts:12", @@ -11406,7 +11924,7 @@ "call": "Unknown", "key": "Unknown", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5224", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5319", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:328", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2095", "src/tachyon/methods/custom/getDashboardSections.ts:1655" @@ -11432,18 +11950,20 @@ "call": "Unknown error", "key": "Unknown error", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5298", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12918", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14135", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14154", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14221", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14762", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5393", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13179", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13334", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14553", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14572", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14639", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15180", "src/tachyon/api.ts:40", "src/tachyon/tabs/diagnostic/initController.ts:731", "src/tachyon/tabs/diagnostic/initController.ts:772", "src/tachyon/tabs/diagnostic/initController.ts:857", "src/tachyon/tabs/diagnostic/initController.ts:1568", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1280" + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1451", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1627" ] }, { @@ -11460,6 +11980,14 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:6297" ] }, + { + "call": "Unlimited", + "key": "Unlimited", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:275", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:287" + ] + }, { "call": "Unspecified IP address is not allowed", "key": "Unspecified IP address is not allowed", @@ -11494,7 +12022,7 @@ "call": "Update", "key": "Update", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18837", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19255", "src/tachyon/tabs/updates/initController.ts:989" ] }, @@ -11502,7 +12030,7 @@ "call": "Update is available", "key": "Update is available", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18355", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18773", "src/tachyon/tabs/updates/initController.ts:355" ] }, @@ -11510,7 +12038,7 @@ "call": "Update is available for current release", "key": "Update is available for current release", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19130", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19548", "src/tachyon/tabs/updates/initController.ts:1352" ] }, @@ -11518,7 +12046,7 @@ "call": "Update is available:", "key": "Update is available:", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19111", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19529", "src/tachyon/tabs/updates/initController.ts:1331" ] }, @@ -11536,7 +12064,7 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2114", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2125", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2125", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14348", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14766", "src/tachyon/tabs/diagnostic/initController.ts:1088", "src/tachyon/tabs/dashboard/partials/renderSections.ts:224", "src/tachyon/tabs/dashboard/partials/renderSections.ts:237", @@ -11568,7 +12096,7 @@ "call": "Updating", "key": "Updating", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17813", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18231", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:116" ] }, @@ -11576,7 +12104,7 @@ "call": "Updating device routing mode...", "key": "Updating device routing mode...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14573", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14991", "src/tachyon/tabs/diagnostic/initController.ts:1349" ] }, @@ -11591,8 +12119,8 @@ "call": "Uplink", "key": "Uplink", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8224", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8236", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8319", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8331", "src/tachyon/tabs/dashboard/initController.ts:1850", "src/tachyon/tabs/dashboard/initController.ts:1863" ] @@ -11601,9 +12129,9 @@ "call": "Uploaded", "key": "Uploaded", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16320", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16365", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16509", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16738", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16783", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16927", "src/tachyon/tabs/monitoring/initController.ts:889", "src/tachyon/tabs/monitoring/initController.ts:946", "src/tachyon/tabs/monitoring/initController.ts:1141" @@ -11666,7 +12194,7 @@ "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2333", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2334", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7820", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7915", "src/tachyon/tabs/dashboard/initController.ts:1321", "src/tachyon/tabs/dashboard/partials/renderSections.ts:517", "src/tachyon/tabs/dashboard/partials/renderSections.ts:518" @@ -11676,7 +12204,7 @@ "call": "URLTest details are unavailable", "key": "URLTest details are unavailable", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7790", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7885", "src/tachyon/tabs/dashboard/initController.ts:1280" ] }, @@ -11723,7 +12251,7 @@ "key": "Use a non-negative integer", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2095", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3029" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3052" ] }, { @@ -11819,14 +12347,14 @@ "call": "Use tailnet exit node for LAN", "key": "Use tailnet exit node for LAN", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3310" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3333" ] }, { "call": "Used by", "key": "Used by", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9474", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9569", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:25" ] }, @@ -11834,8 +12362,15 @@ "call": "User custom strategy", "key": "User custom strategy", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12525", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:822" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12684", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:870" + ] + }, + { + "call": "User names (e.g. from VLESS/Trojan/SS/JSON inbound users) that are forbidden from reaching LAN subnets. Leave empty to restrict all users on this inbound.", + "key": "User names (e.g. from VLESS/Trojan/SS/JSON inbound users) that are forbidden from reaching LAN subnets. Leave empty to restrict all users on this inbound.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2738" ] }, { @@ -11850,7 +12385,7 @@ "key": "Username", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8574", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2988" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3011" ] }, { @@ -11940,7 +12475,7 @@ "call": "Verifying router and service readiness...", "key": "Verifying router and service readiness...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18017", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18435", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:370" ] }, @@ -11955,15 +12490,15 @@ "call": "Video streaming", "key": "Video streaming", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:53" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:65" ] }, { "call": "View logs", "key": "View logs", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10687", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14198", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10808", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14616", "src/tachyon/tabs/diagnostic/initController.ts:831", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:181" ] @@ -11972,8 +12507,8 @@ "call": "View logs failed", "key": "View logs failed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14208", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14211", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14626", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14629", "src/tachyon/tabs/diagnostic/initController.ts:841", "src/tachyon/tabs/diagnostic/initController.ts:844" ] @@ -11989,7 +12524,7 @@ "call": "VLESS flow", "key": "VLESS flow", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3032" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3055" ] }, { @@ -12003,7 +12538,7 @@ "call": "Waiting for router services to restart...", "key": "Waiting for router services to restart...", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17996", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18414", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:344" ] }, @@ -12011,7 +12546,7 @@ "call": "WAN", "key": "WAN", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9510", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9605", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:70" ] }, @@ -12019,7 +12554,7 @@ "call": "WAN public IP", "key": "WAN public IP", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9609", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9704", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:198" ] }, @@ -12097,28 +12632,28 @@ "call": "Wed", "key": "Wed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:24" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:36" ] }, { "call": "Wednesday", "key": "Wednesday", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:14" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:26" ] }, { "call": "Weekdays (Mon-Fri)", "key": "Weekdays (Mon-Fri)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:168" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:180" ] }, { "call": "Weekends (Sat-Sun)", "key": "Weekends (Sat-Sun)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:172" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:184" ] }, { @@ -12139,7 +12674,7 @@ "call": "Why Discord fails?", "key": "Why Discord fails?", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11762", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11883", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:171" ] }, @@ -12157,11 +12692,19 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8431" ] }, + { + "call": "Working", + "key": "Working", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12947", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1170" + ] + }, { "call": "XHTTP mode", "key": "XHTTP mode", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2942" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2965" ] }, { @@ -12175,7 +12718,7 @@ "call": "Yes", "key": "Yes", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7425", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7520", "src/tachyon/tabs/dashboard/initController.ts:822" ] }, @@ -12197,7 +12740,7 @@ "call": "Zapret package is installed", "key": "Zapret package is installed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9840", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9935", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:71" ] }, @@ -12205,7 +12748,7 @@ "call": "Zapret package is not installed", "key": "Zapret package is not installed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9840", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9935", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:72" ] }, @@ -12213,7 +12756,7 @@ "call": "Zapret provider binary is available", "key": "Zapret provider binary is available", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9835", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9930", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:60" ] }, @@ -12221,7 +12764,7 @@ "call": "Zapret provider binary is not available", "key": "Zapret provider binary is not available", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9835", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9930", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:61" ] }, @@ -12229,7 +12772,7 @@ "call": "Zapret sing-box outbound is configured", "key": "Zapret sing-box outbound is configured", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9860", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9955", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:103" ] }, @@ -12237,7 +12780,7 @@ "call": "Zapret sing-box outbound is not configured", "key": "Zapret sing-box outbound is not configured", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9860", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9955", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:104" ] }, @@ -12245,24 +12788,24 @@ "call": "Zapret v1 (nfqws)", "key": "Zapret v1 (nfqws)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11925", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13004", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13004", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:138", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1384", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1385" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12054", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13421", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13421", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:149", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1732", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1733" ] }, { "call": "Zapret v2 (nfqws2)", "key": "Zapret v2 (nfqws2)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11924", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13001", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13001", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:137", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1379", - "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1380" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12053", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13418", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13418", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:148", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1727", + "src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1728" ] }, { @@ -12276,7 +12819,7 @@ "call": "Zapret2 package is installed", "key": "Zapret2 package is installed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9926", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10021", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:74" ] }, @@ -12284,7 +12827,7 @@ "call": "Zapret2 package is not installed", "key": "Zapret2 package is not installed", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9926", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10021", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:75" ] }, @@ -12292,7 +12835,7 @@ "call": "Zapret2 provider binary is available", "key": "Zapret2 provider binary is available", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9921", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10016", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:63" ] }, @@ -12300,7 +12843,7 @@ "call": "Zapret2 provider binary is not available", "key": "Zapret2 provider binary is not available", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9921", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10016", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:64" ] }, @@ -12308,7 +12851,7 @@ "call": "Zapret2 sing-box outbound is configured", "key": "Zapret2 sing-box outbound is configured", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9946", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10041", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:106" ] }, @@ -12316,7 +12859,7 @@ "call": "Zapret2 sing-box outbound is not configured", "key": "Zapret2 sing-box outbound is not configured", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9946", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10041", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:107" ] } diff --git a/fe-app-tachyon/locales/tachyon.pot b/fe-app-tachyon/locales/tachyon.pot index 872c36ba..a31d7e88 100644 --- a/fe-app-tachyon/locales/tachyon.pot +++ b/fe-app-tachyon/locales/tachyon.pot @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: TACHYON\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-27 10:54+0300\n" -"PO-Revision-Date: 2026-08-27 10:54+0300\n" +"POT-Creation-Date: 2026-08-29 10:56+0300\n" +"PO-Revision-Date: 2026-08-29 10:56+0300\n" "Last-Translator: Dushnilin \n" "Language-Team: LANGUAGE \n" "Language: \n" @@ -48,8 +48,8 @@ msgstr "" msgid "+ Add priority" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12509 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:803 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12668 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:851 msgid "+ Add Strategy" msgstr "" @@ -69,8 +69,8 @@ msgstr "" msgid "⚙ Advanced Settings" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12848 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1197 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13131 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1388 msgid "⚠️ Benchmark completed. No working bypass found for this target." msgstr "" @@ -82,114 +82,124 @@ msgstr "" msgid "⚠️ If all Main DNS fail 3 times, queries will be sent to your ISP's DNS in plaintext. Only use as a last resort to prevent complete internet loss." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10668 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10789 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:162 msgid "⚡ DPI Strategy Fuzzer" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12142 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:383 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12299 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:429 msgid "⚡ Fast (>1MB/s)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11970 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:187 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12099 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:198 msgid "⚡ QUIC / HTTP/3 (UDP 443)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12007 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:232 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12136 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:243 msgid "⚡ Quick Benchmark (Presets ~12-14)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13028 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1418 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13446 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1767 msgid "⚡ Strategy Fuzzer & Auto-Tuner" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12848 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1196 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13174 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1446 +msgid "✅ Auto-applied best strategy" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13131 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1387 msgid "✅ Benchmark completed! Optimal strategy identified." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12133 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:374 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12290 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:420 msgid "✅ Working only" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11967 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:184 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12096 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:195 msgid "✈️ Telegram Suite (Web + Bot API)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8305 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8400 #: src/tachyon/tabs/dashboard/initController.ts:1941 msgid "✔ Online" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8262 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8269 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8357 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8364 #: src/tachyon/tabs/dashboard/initController.ts:1891 #: src/tachyon/tabs/dashboard/initController.ts:1900 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:498 msgid "✔ Running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8305 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8400 #: src/tachyon/tabs/dashboard/initController.ts:1941 msgid "✘ Offline" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8262 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8269 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8357 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8364 #: src/tachyon/tabs/dashboard/initController.ts:1891 #: src/tachyon/tabs/dashboard/initController.ts:1900 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:498 msgid "✘ Stopped" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11971 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:188 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12100 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:199 msgid "🌐 Custom Target URL..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11952 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:169 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12081 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:180 msgid "🎬 YouTube Suite (Web + 4K Stream)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12099 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:337 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12256 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:383 msgid "🏆 Apply Best Match" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11969 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:186 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12098 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:197 msgid "🏴‍☠️ RuTracker Suite" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11957 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:174 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12086 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:185 msgid "💬 Discord Suite (API + WSS + CDN)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12458 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:743 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12614 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:788 msgid "💾 Save Custom Patterns" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11962 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:179 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12091 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:190 msgid "📸 Instagram / Meta (Web + CDN)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12470 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:756 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12899 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1117 +msgid "🔄 Refresh" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12626 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:801 msgid "🔄 Reset to Factory Defaults" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12012 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:237 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12141 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:248 msgid "🔍 Combinatorial Deep Fuzzing (~40-80+)" msgstr "" @@ -197,36 +207,46 @@ msgstr "" msgid "🔑 Generate" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12662 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12972 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:979 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1344 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12904 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1122 +msgid "🗑️ Clear History" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12821 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13389 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1025 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1692 msgid "🧠 Synthesize with AI" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12927 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1290 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13344 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1638 msgid "🧠 Synthesizing..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12227 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12874 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12921 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:483 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1229 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1283 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13277 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1564 +msgid "🚀 Initializing benchmark in sandbox..." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12382 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13165 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13337 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:527 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1434 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1630 msgid "🚀 Start Benchmark" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12903 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12953 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1263 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1323 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13267 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13370 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1552 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1671 msgid "🛑 Stop Benchmark" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12014 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:239 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12143 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:250 msgid "🛠️ My Custom Strategies Only" msgstr "" @@ -234,7 +254,7 @@ msgstr "" msgid "Accept external proxy connections and route them with sing-box." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3274 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3297 msgid "Accept routes" msgstr "" @@ -243,42 +263,44 @@ msgstr "" msgid "Action" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9268 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9363 #: src/tachyon/helpers/notifyActionFailure.ts:40 msgid "Action failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:467 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:862 msgid "Action Mode" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12202 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12575 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:455 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:879 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12357 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12734 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:499 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:926 msgid "Actions" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7664 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15600 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16185 -#: src/tachyon/tabs/dashboard/initController.ts:1127 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7759 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16018 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16603 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:349 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:355 #: src/tachyon/tabs/monitoring/initController.ts:722 #: src/tachyon/tabs/monitoring/render.ts:20 +#: src/tachyon/tabs/dashboard/initController.ts:1127 msgid "Active" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:379 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:399 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:752 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:772 msgid "Active (Allowed)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:379 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:399 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:752 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:772 msgid "Active (Blocking)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9363 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9458 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:56 msgid "Active Bootstrap DNS" msgstr "" @@ -290,22 +312,26 @@ msgstr "" msgid "Active Clients" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8248 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8343 #: src/tachyon/tabs/dashboard/initController.ts:1876 msgid "Active Connections" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9370 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9465 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:67 msgid "Active Main DNS" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11074 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11195 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:245 msgid "Active routes" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:473 +msgid "Add a family profile" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:487 msgid "Add a schedule rule" msgstr "" @@ -323,8 +349,8 @@ msgstr "" msgid "Add at least one DNS server" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12543 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:843 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12702 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:891 msgid "Add Custom DPI Strategy" msgstr "" @@ -352,7 +378,11 @@ msgstr "" msgid "Add URLTest / Priority group" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9705 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:810 +msgid "Additional Individual Devices (IP / MAC)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9800 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:106 msgid "Additional marking rules found" msgstr "" @@ -383,7 +413,7 @@ msgstr "" msgid "Administrator Chat IDs" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:73 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:85 msgid "Adult content" msgstr "" @@ -395,11 +425,11 @@ msgstr "" msgid "Advanced System" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3257 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3280 msgid "Advertise exit node" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3267 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3290 msgid "Advertise routes" msgstr "" @@ -424,18 +454,18 @@ msgstr "" msgid "AI API Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11818 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11939 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:235 msgid "AI Chat & Tachyon Assistant" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10658 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10779 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:152 msgid "AI Chat Assistant" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12680 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1000 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12839 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1046 msgid "AI Diagnostics & Strategy Rationale" msgstr "" @@ -443,14 +473,14 @@ msgstr "" msgid "AI Doctor (ChatGPT / DeepSeek API)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14760 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15178 #: src/tachyon/tabs/diagnostic/initController.ts:1563 msgid "AI Doctor Diagnosis" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14221 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14763 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14771 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14639 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15181 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15189 #: src/tachyon/tabs/diagnostic/initController.ts:857 #: src/tachyon/tabs/diagnostic/initController.ts:1569 #: src/tachyon/tabs/diagnostic/initController.ts:1577 @@ -462,13 +492,13 @@ msgstr "" msgid "AI Doctor Language" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11891 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:91 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12014 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:95 msgid "AI Doctor RAG" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12702 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1025 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12861 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1071 msgid "AI DPI Engineer & Strategy Synthesizer" msgstr "" @@ -482,23 +512,23 @@ msgstr "" msgid "AI Provider" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11745 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11866 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:151 msgid "AI service error" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12943 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1309 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13360 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1657 msgid "AI successfully synthesized custom strategies!" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12966 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1338 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13383 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1686 msgid "AI Synthesis Error" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12965 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1337 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13382 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1685 msgid "AI synthesis failed" msgstr "" @@ -510,12 +540,12 @@ msgstr "" msgid "AI Watchdog settings saved. Restart watchdog to apply." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12124 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15619 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16150 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12281 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16037 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16568 #: src/tachyon/tabs/monitoring/initController.ts:681 #: src/tachyon/tabs/monitoring/render.ts:40 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:365 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:411 msgid "All" msgstr "" @@ -523,13 +553,13 @@ msgstr "" msgid "All checks passed — Telegram bot should work correctly" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:201 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:225 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:589 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:598 msgid "All devices" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11927 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:140 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12056 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:151 msgid "All Engines (Full Matrix)" msgstr "" @@ -537,12 +567,12 @@ msgstr "" msgid "All except selected" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:235 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:260 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:608 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:633 msgid "All Internet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:439 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:834 msgid "All Internet (Complete internet cutoff)" msgstr "" @@ -558,8 +588,8 @@ msgstr "" msgid "All remaining servers means every server not already assigned to a higher-priority level." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15627 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16123 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16045 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16541 #: src/tachyon/tabs/monitoring/initController.ts:644 #: src/tachyon/tabs/monitoring/render.ts:49 msgid "All Routes" @@ -569,8 +599,8 @@ msgstr "" msgid "All servers" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11083 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11186 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11204 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11307 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:257 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:376 msgid "All services" @@ -580,12 +610,12 @@ msgstr "" msgid "All traffic from these IP addresses will be routed through the section unconditionally, ignoring all other conditions." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:473 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:868 msgid "Allow / Enable ONLY in scheduled hours (White period)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:272 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:278 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:645 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:651 msgid "Allow in interval" msgstr "" @@ -593,15 +623,15 @@ msgstr "" msgid "Allow Insecure TLS" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:340 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:713 msgid "Allow only" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:634 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1029 msgid "Allow only listed sites (Whitelist)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:356 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:729 msgid "Allow only:" msgstr "" @@ -621,14 +651,18 @@ msgstr "" msgid "Allows Tachyon to send diagnostic snapshots to ChatGPT or DeepSeek API for intelligent root-cause analysis and auto-repair recommendations." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2786 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2809 msgid "ALPN" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3020 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3043 msgid "Alter ID" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:441 +msgid "Always block these domains for all devices in this profile. Enter one domain per line or use category preset buttons." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8301 msgid "AmneziaWG config loaded successfully!" msgstr "" @@ -637,27 +671,35 @@ msgstr "" msgid "AmneziaWG Generator" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14296 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14714 #: src/tachyon/tabs/diagnostic/initController.ts:970 msgid "Anonymized support report copied to clipboard" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18770 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19188 #: src/tachyon/tabs/updates/initController.ts:906 msgid "Another component action is already running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:306 +msgid "Anti-Bypass (DoH)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:429 +msgid "Anti-Bypass: Block Private DNS / DoH / DoT" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1791 msgid "API Key for OpenAI (sk-...) or DeepSeek (optional for Ollama / LM Studio)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12983 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1356 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13400 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1704 msgid "Applied" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12817 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1158 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13099 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1348 msgid "Apply" msgstr "" @@ -669,31 +711,39 @@ msgstr "" msgid "Apply section rules only to the specified local IP addresses" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12050 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:280 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12179 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:291 msgid "Apply Strategy To" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14426 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:789 +msgid "Apply this schedule rule to all devices in the selected family profile(s)." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14844 #: src/tachyon/tabs/diagnostic/initController.ts:1181 msgid "Applying fix" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14424 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14842 #: src/tachyon/tabs/diagnostic/initController.ts:1179 msgid "Applying..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12569 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:872 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12728 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:920 msgid "Arguments" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11669 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11790 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:60 msgid "Ask Tachyon AI Assistant a question..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:378 +msgid "Assigned Devices (MAC / IP)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2201 msgid "At least one Admin Chat ID is required" msgstr "" @@ -711,30 +761,42 @@ msgid "Auth Digest" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2280 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7504 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7844 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10901 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7599 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7939 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11022 #: src/tachyon/tabs/dashboard/initController.ts:923 #: src/tachyon/tabs/dashboard/initController.ts:1355 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:452 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:35 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:452 msgid "Auto" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12432 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:715 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12588 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:760 msgid "Auto Modes (--auto)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10487 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10608 #: src/partials/modal/renderModal.ts:286 msgid "Auto refresh" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3177 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3200 msgid "Auto update" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12204 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:321 +msgid "Auto-apply best strategy" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13179 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13184 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1451 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1456 +msgid "Auto-apply failed" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1993 msgid "Auto-detected domains" msgstr "" @@ -756,7 +818,7 @@ msgstr "" msgid "Auto-generate HWID" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14354 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14772 #: src/tachyon/tabs/diagnostic/initController.ts:1094 msgid "Auto-Heal Network Stack" msgstr "" @@ -789,12 +851,12 @@ msgstr "" msgid "Automatically increase check intervals when healthy (to 5 min) and decrease on problems (to 120s)." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12713 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1036 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12872 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1082 msgid "Automatically runs a diagnostic probe against the target service, queries the built-in DPI Knowledge Base, and synthesizes 3-5 custom bypass strategies tailored to your ISP." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7924 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8019 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3157 #: src/tachyon/tabs/dashboard/initController.ts:1458 msgid "Automatically select the fastest node in the current level" @@ -804,19 +866,19 @@ msgstr "" msgid "Automatically update remote hosts lists on schedule" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10971 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11161 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11092 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11282 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:125 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:346 msgid "Available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10564 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10685 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:58 msgid "Available actions" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11163 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11284 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:348 msgid "Avg. latency" msgstr "" @@ -827,7 +889,7 @@ msgstr "" msgid "Backend validation failed: %s" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10918 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11039 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:58 msgid "Basic connectivity" msgstr "" @@ -836,7 +898,7 @@ msgstr "" msgid "Bearer Auth Token" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:480 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:875 msgid "Beginning of the schedule interval (e.g. 22:00)" msgstr "" @@ -844,73 +906,91 @@ msgstr "" msgid "Belarus (by)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11888 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:88 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12011 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:92 msgid "Benchmark & Test" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12897 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1256 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12895 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1113 +msgid "Benchmark History" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13261 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1545 msgid "Benchmark stopped" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12071 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:306 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12228 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:352 msgid "Benchmarking in progress..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12945 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1168 +msgid "Best Strategy" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9535 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9554 msgid "BitTorrent / P2P" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:341 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:714 msgid "Block" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:472 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:867 msgid "Block / Disable in scheduled hours (Standard)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:640 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1035 msgid "Block at DNS level" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:274 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:278 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:647 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:651 msgid "Block in interval" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:467 -msgid "Block internet access or specific proxy sections for individual devices based on time and days." +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:481 +msgid "Block internet access or specific proxy sections for family profiles or individual devices based on time and days." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:633 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1028 msgid "Block listed sites (Standard)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:356 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:729 msgid "Block:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:629 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1024 msgid "Block: deny the listed sites. Allow only (whitelist): deny everything except the listed sites. Whitelist mode requires DNS-level blocking and applies to the schedule window." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10919 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11040 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:59 msgid "Blocked resources" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:329 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:702 msgid "Blocked Sites" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:539 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:934 msgid "Blocked Sites (Domains)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9363 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2727 +msgid "Blocks access to private/LAN IP addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, etc.) for selected users before applying routing mode." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:430 +msgid "Blocks port 853 (DNS-over-TLS) and prevents bypass via encrypted DNS or Private Relay on smartphones for devices in this profile." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9458 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:57 msgid "Bootstrap DNS" msgstr "" @@ -923,24 +1003,24 @@ msgstr "" msgid "Bot Status" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9743 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9762 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9838 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9857 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:51 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:79 msgid "Browser FakeIP check could not be completed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9762 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9857 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:82 msgid "Browser is not using FakeIP" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9762 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9857 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:81 msgid "Browser is using FakeIP correctly" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14910 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15328 #: src/tachyon/tabs/diagnostic/initController.ts:1745 msgid "Bug report downloaded" msgstr "" @@ -953,12 +1033,12 @@ msgstr "" msgid "By flag emoji from name" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11926 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13007 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13007 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:139 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1389 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1390 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12055 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13424 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13424 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:150 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1737 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1738 msgid "ByeDPI (ciadpi)" msgstr "" @@ -981,32 +1061,32 @@ msgstr "" msgid "ByeDPI option requires a value: %s" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10015 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10110 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:71 msgid "ByeDPI package is installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10015 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10110 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:72 msgid "ByeDPI package is not installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10010 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10105 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:64 msgid "ByeDPI provider binary is available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10010 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10105 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:65 msgid "ByeDPI provider binary is not available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10030 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10125 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:107 msgid "ByeDPI sing-box outbound is configured" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10030 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10125 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:108 msgid "ByeDPI sing-box outbound is not configured" msgstr "" @@ -1039,7 +1119,7 @@ msgstr "" msgid "Cache file path cannot be empty" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14807 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15225 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7721 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:434 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:575 @@ -1049,14 +1129,14 @@ msgstr "" msgid "Cancel" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9343 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9407 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9588 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9651 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9813 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9897 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9985 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13160 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9438 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9502 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9683 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9746 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9908 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9992 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10080 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13578 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:26 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:27 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:172 @@ -1080,7 +1160,7 @@ msgstr "" msgid "Cascade connection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2796 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2819 msgid "Certificate path" msgstr "" @@ -1088,18 +1168,18 @@ msgstr "" msgid "Certificate pin is unavailable. Apply or restart the server to generate the default certificate, then open this dialog again." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11596 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11717 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:865 msgid "Check again" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11546 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11667 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:793 msgid "Check all" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17980 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18494 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18398 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18912 #: src/tachyon/tabs/updates/initController.ts:540 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:321 msgid "Check completed!" @@ -1112,26 +1192,26 @@ msgstr "" msgid "Check Connection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11421 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11534 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11542 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11655 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:652 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:778 msgid "Check domain" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7911 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8006 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2645 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3108 #: src/tachyon/tabs/dashboard/initController.ts:1445 msgid "Check interval" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11100 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11221 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:276 msgid "Check mode:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10678 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10799 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:172 msgid "Check Services" msgstr "" @@ -1140,43 +1220,43 @@ msgstr "" msgid "Check timeout after which the server is considered dead" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18828 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19246 #: src/tachyon/tabs/updates/initController.ts:975 msgid "Check update" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7909 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8004 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2671 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3095 #: src/tachyon/tabs/dashboard/initController.ts:1443 msgid "Check URL" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11761 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11882 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:170 msgid "Check YouTube" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8040 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8135 #: src/tachyon/tabs/dashboard/initController.ts:1624 msgid "Checking Connection..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17809 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18227 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:112 msgid "Checking for updates..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9333 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9397 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9578 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9639 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9722 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9803 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9887 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9975 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13148 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15167 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9428 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9492 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9673 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9734 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9817 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9898 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9982 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10070 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13566 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15585 #: src/tachyon/tabs/diagnostic/initController.ts:2051 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:14 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:15 @@ -1206,41 +1286,49 @@ msgstr "" msgid "Checking…" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5396 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5491 #: src/tachyon/tabs/diagnostic/helpers/getCheckTitle.ts:2 msgid "checks" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9303 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9781 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9398 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9876 #: src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:10 #: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:26 msgid "Checks failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9292 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9738 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9792 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9387 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9833 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9887 #: src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:23 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:43 #: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:13 msgid "Checks passed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9315 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9410 #: src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:27 msgid "Checks passed with manual DHCP" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:13 +msgid "Child (🧒)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9255 msgid "China (cn)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:361 +msgid "Choose a visual icon for this profile" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7540 msgid "Choose Hosts File..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:435 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:830 msgid "Choose whether to restrict the entire internet or only specific Tachyon routing sections." msgstr "" @@ -1248,7 +1336,7 @@ msgstr "" msgid "Choose whether to route traffic to all destinations except selected countries (Exclude) or only to selected countries (Include)." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:447 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:842 msgid "Choose which routing sections to apply this schedule to." msgstr "" @@ -1269,12 +1357,12 @@ msgstr "" msgid "Clear" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14347 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14765 #: src/tachyon/tabs/diagnostic/initController.ts:1087 msgid "Clear DNS cache" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3336 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3359 msgid "Client Address" msgstr "" @@ -1282,11 +1370,11 @@ msgstr "" msgid "Client Certificate" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3348 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3371 msgid "Client DNS" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2894 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2917 msgid "Client fingerprint" msgstr "" @@ -1306,62 +1394,62 @@ msgstr "" msgid "Client link QR code" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3396 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3419 msgid "Client Private Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3406 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3429 msgid "Client Public Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3337 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3360 msgid "Client VPN IP address (e.g. 10.0.0.2/32)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7782 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10466 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11019 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11601 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11811 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12239 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14751 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16324 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16367 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18075 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18110 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7877 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10587 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11140 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11722 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11932 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12394 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15169 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16742 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16785 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18493 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18528 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3660 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10239 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1803 #: src/partials/modal/renderModal.ts:263 -#: src/tachyon/tabs/dashboard/initController.ts:1267 -#: src/tachyon/tabs/diagnostic/initController.ts:1553 #: src/tachyon/tabs/monitoring/initController.ts:893 #: src/tachyon/tabs/monitoring/initController.ts:948 +#: src/tachyon/tabs/diagnostic/initController.ts:1553 +#: src/tachyon/tabs/dashboard/initController.ts:1267 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:227 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:178 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:871 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:497 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:541 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:442 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:488 msgid "Close" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15646 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15647 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16064 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16065 #: src/tachyon/tabs/monitoring/render.ts:68 #: src/tachyon/tabs/monitoring/render.ts:69 msgid "Close all connections" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16293 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16294 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16711 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16712 #: src/tachyon/tabs/monitoring/initController.ts:860 #: src/tachyon/tabs/monitoring/initController.ts:861 msgid "Close connection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15609 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16191 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16027 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16609 #: src/tachyon/tabs/monitoring/initController.ts:729 #: src/tachyon/tabs/monitoring/render.ts:29 msgid "Closed" @@ -1387,8 +1475,8 @@ msgstr "" msgid "Comma-separated list of Telegram user IDs authorized to control the bot." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12505 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:798 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12664 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:846 msgid "Command-line arguments string..." msgstr "" @@ -1396,7 +1484,7 @@ msgstr "" msgid "Community Lists" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6345 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6440 #: src/tachyon/services/core.service.ts:43 msgid "Component update available" msgstr "" @@ -1405,16 +1493,16 @@ msgstr "" msgid "Component update check interval" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:539 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:553 msgid "Components" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5986 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6081 #: src/tachyon/helpers/singBoxVariant.ts:60 msgid "compressed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3129 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3152 msgid "Concurrency" msgstr "" @@ -1422,6 +1510,11 @@ msgstr "" msgid "Conditions" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13251 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1534 +msgid "confidence" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1539 msgid "Config File Path" msgstr "" @@ -1439,11 +1532,11 @@ msgid "Configure User-Agent in the item settings" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2412 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5224 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13226 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5319 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13644 #: src/tachyon/methods/custom/getDashboardSections.ts:1651 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:620 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:141 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:620 msgid "Conflict" msgstr "" @@ -1462,7 +1555,7 @@ msgstr "" msgid "Connected" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14507 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14925 #: src/tachyon/tabs/diagnostic/initController.ts:1276 msgid "Connected Devices" msgstr "" @@ -1471,26 +1564,26 @@ msgstr "" msgid "Connection URL" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16419 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16837 #: src/tachyon/tabs/monitoring/initController.ts:1012 msgid "Connections are unavailable" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13255 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13673 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:174 msgid "Connectivity probe failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12934 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1299 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13351 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1647 msgid "Consulting DPI Knowledge Base & AI..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:628 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1023 msgid "Content Mode" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3455 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3478 msgid "Cookie packet junk size (S3)" msgstr "" @@ -1500,32 +1593,32 @@ msgstr "" msgid "Copied" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10459 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10580 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1753 #: src/partials/modal/renderModal.ts:258 msgid "Copy" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17851 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18269 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:160 msgid "Copy log" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2317 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2318 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7714 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7809 #: src/tachyon/tabs/dashboard/initController.ts:1192 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:498 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:499 msgid "Copy proxy link" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14713 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15131 #: src/tachyon/tabs/diagnostic/initController.ts:1511 msgid "Copy Support Report" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9768 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9863 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:89 msgid "Could not compare FakeIP and control public IPs" msgstr "" @@ -1534,7 +1627,7 @@ msgstr "" msgid "Country code (e.g. ru, us, de)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14664 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15082 #: src/tachyon/tabs/diagnostic/initController.ts:1452 msgid "Current Diagnosis" msgstr "" @@ -1552,7 +1645,7 @@ msgstr "" msgid "Currently unavailable" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10921 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11042 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:61 msgid "Custom" msgstr "" @@ -1570,24 +1663,24 @@ msgstr "" msgid "Custom DNS Records (Hosts)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10920 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11041 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:60 msgid "Custom domains" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3480 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3503 msgid "Custom header for cookie packet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3486 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3509 msgid "Custom header for data packet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3468 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3491 msgid "Custom header for handshake initiation" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3474 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3497 msgid "Custom header for handshake response" msgstr "" @@ -1607,20 +1700,25 @@ msgstr "" msgid "Custom outbound configurations in JSON format" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12528 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:826 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12687 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:874 msgid "Custom strategy added!" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:307 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:269 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:680 msgid "Daily Quota" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:516 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:397 +msgid "Daily Screen Time Quota (minutes)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:911 msgid "Daily time quota (minutes)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:515 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:529 msgid "Dashboard" msgstr "" @@ -1629,7 +1727,12 @@ msgstr "" msgid "Dashboard currently unavailable" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:503 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12941 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1164 +msgid "Date" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:898 msgid "Days of Week" msgstr "" @@ -1655,11 +1758,11 @@ msgstr "" msgid "Delay value cannot be empty" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12630 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12789 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1828 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:615 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:621 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:940 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:986 msgid "Delete" msgstr "" @@ -1686,8 +1789,9 @@ msgstr "" msgid "detour must be a non-empty string" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:194 -msgid "Device / IP / MAC" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:218 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:565 +msgid "dev." msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9486 @@ -1706,31 +1810,35 @@ msgstr "" msgid "Device or IP" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14582 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15000 #: src/tachyon/tabs/diagnostic/initController.ts:1359 msgid "Device updated" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:236 +msgid "Devices (MAC / IP)" +msgstr "" + #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:1274 msgid "Devices listed here are always routed through the assigned section, regardless of global rules." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9317 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9412 #: src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:37 msgid "DHCP has DNS server" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9317 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9412 #: src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:36 msgid "DHCP is managed manually" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:503 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:517 msgid "Diagnostics" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10892 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10898 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11013 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11019 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2704 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:25 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:32 @@ -1741,7 +1849,7 @@ msgstr "" msgid "Direct (Default)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14570 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14988 #: src/tachyon/tabs/diagnostic/initController.ts:1346 msgid "Direct Bypass" msgstr "" @@ -1750,12 +1858,12 @@ msgstr "" msgid "Direct connection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14564 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14982 #: src/tachyon/tabs/diagnostic/initController.ts:1337 msgid "Direct WAN" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10600 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10721 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:94 msgid "Disable autostart" msgstr "" @@ -1768,8 +1876,10 @@ msgstr "" msgid "Disable the QUIC protocol to improve compatibility or fix issues with video streaming" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:369 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:396 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:342 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:355 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:742 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:769 msgid "Disabled" msgstr "" @@ -1777,8 +1887,8 @@ msgstr "" msgid "Disabling interception is incompatible with action=zapret2 because Tachyon sends matched traffic through NFQUEUE." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12420 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:703 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12576 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:748 msgid "Disorder Values (-d)" msgstr "" @@ -1804,7 +1914,7 @@ msgstr "" msgid "DNS Failures Before Switching" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9375 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9470 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:75 msgid "DNS on router" msgstr "" @@ -1857,7 +1967,7 @@ msgstr "" msgid "DNS server address cannot be empty" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3349 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3372 msgid "DNS server pushed to the client configuration" msgstr "" @@ -1907,7 +2017,7 @@ msgstr "" msgid "DNS Unavailability Timeout" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13105 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13523 #: src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:26 msgid "Do not panic, everything can be fixed, just..." msgstr "" @@ -1936,25 +2046,25 @@ msgstr "" msgid "Do not test specified servers." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14135 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14155 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14163 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14553 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14573 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14581 #: src/tachyon/tabs/diagnostic/initController.ts:731 #: src/tachyon/tabs/diagnostic/initController.ts:773 #: src/tachyon/tabs/diagnostic/initController.ts:781 msgid "Doctor failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14144 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14146 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14146 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14562 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14564 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14564 #: src/tachyon/tabs/diagnostic/initController.ts:747 #: src/tachyon/tabs/diagnostic/initController.ts:759 #: src/tachyon/tabs/diagnostic/initController.ts:760 msgid "Doctor repair" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9496 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9591 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:54 msgid "Does not resolve" msgstr "" @@ -1984,7 +2094,7 @@ msgstr "" msgid "Domains automatically detected by Smart Detect or added via Telegram bot. You can manually edit or remove them here." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:540 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:935 msgid "Domains to block for the selected devices. Leave empty to block all internet. Enter one domain per line, e.g. youtube.com. Use the preset buttons to quickly add common categories." msgstr "" @@ -1996,14 +2106,14 @@ msgstr "" msgid "Dont Touch My DHCP!" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8225 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8237 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8320 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8332 #: src/tachyon/tabs/dashboard/initController.ts:1851 #: src/tachyon/tabs/dashboard/initController.ts:1864 msgid "Downlink" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10454 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10575 #: src/partials/modal/renderModal.ts:253 msgid "Download" msgstr "" @@ -2048,9 +2158,9 @@ msgstr "" msgid "Download through" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16317 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16364 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16503 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16735 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16782 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16921 #: src/tachyon/tabs/monitoring/initController.ts:886 #: src/tachyon/tabs/monitoring/initController.ts:945 #: src/tachyon/tabs/monitoring/initController.ts:1134 @@ -2061,11 +2171,21 @@ msgstr "" msgid "Downloading and applying rule sets and lists..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11940 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:155 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13250 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1533 +msgid "DPI Detected" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12069 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:166 msgid "DPI Engine" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12944 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1167 +msgid "DPI Type" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:432 msgid "Drag rows to change priority. The rule at the top is checked first." msgstr "" @@ -2092,7 +2212,15 @@ msgstr "" msgid "e.g. google.com, 1.1.1.1, 443" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:409 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:372 +msgid "e.g. Kids" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:369 +msgid "e.g. Kids (Alice & Tim), Teenager, School PC, Guests" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:782 msgid "e.g. Kids Phone (Night YouTube)" msgstr "" @@ -2109,7 +2237,8 @@ msgstr "" msgid "Edit" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:187 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:201 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:539 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7235 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2618 msgid "Enable" @@ -2131,7 +2260,7 @@ msgstr "" msgid "Enable Anomaly Detection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2981 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3004 msgid "Enable authentication" msgstr "" @@ -2139,7 +2268,7 @@ msgstr "" msgid "Enable automatic updates for remote lists and rule sets" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10610 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10731 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:104 msgid "Enable autostart" msgstr "" @@ -2152,7 +2281,7 @@ msgstr "" msgid "Enable Config Validation" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14355 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14773 #: src/tachyon/tabs/diagnostic/initController.ts:1095 msgid "Enable Direct WAN Bypass" msgstr "" @@ -2243,22 +2372,28 @@ msgstr "" msgid "Enables the background watchdog process to monitor services and auto-recover on failures." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:492 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:887 msgid "End of the schedule interval (e.g. 08:00). Supports spans crossing midnight." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:491 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:886 msgid "End Time (HH:MM)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12185 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12568 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:438 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:871 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:418 +msgid "Enforce SafeSearch & YouTube Restricted Mode" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12340 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12727 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12942 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:482 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:919 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1165 msgid "Engine" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2727 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2750 msgid "Enter a complete sing-box inbound object" msgstr "" @@ -2273,7 +2408,7 @@ msgstr "" msgid "Enter a display name" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11414 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11535 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:644 msgid "Enter a domain or IP to check (e.g. example.com)..." msgstr "" @@ -2283,7 +2418,8 @@ msgstr "" msgid "Enter a level name" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:529 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:410 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:924 msgid "Enter a whole number of minutes between 0 and 1440" msgstr "" @@ -2329,7 +2465,7 @@ msgstr "" msgid "Error updating lists:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:160 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:172 msgid "Every day" msgstr "" @@ -2406,38 +2542,48 @@ msgstr "" msgid "External nfqws2 config files bypass Tachyon queue management and explicit validation." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14442 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14860 #: src/tachyon/tabs/diagnostic/initController.ts:1202 msgid "Failed to apply fix" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4026 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12987 -#: src/tachyon/methods/shell/index.ts:1149 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1360 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4036 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13404 +#: src/tachyon/methods/shell/index.ts:1159 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1708 msgid "Failed to apply strategy" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16692 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16706 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4213 +#: src/tachyon/methods/shell/index.ts:1411 +msgid "Failed to auto-apply strategy" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4251 +#: src/tachyon/methods/shell/index.ts:1456 +msgid "Failed to clear fuzzer history" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17110 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17124 #: src/tachyon/tabs/monitoring/initController.ts:1400 #: src/tachyon/tabs/monitoring/initController.ts:1415 msgid "Failed to close connection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16721 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16733 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17139 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17151 #: src/tachyon/tabs/monitoring/initController.ts:1434 #: src/tachyon/tabs/monitoring/initController.ts:1447 msgid "Failed to close connections" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12969 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1341 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13386 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1689 msgid "Failed to communicate with AI provider" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14300 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14718 #: src/tachyon/tabs/diagnostic/initController.ts:974 msgid "Failed to copy report to clipboard" msgstr "" @@ -2452,12 +2598,17 @@ msgstr "" msgid "Failed to delete snapshot" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3280 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3283 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18579 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18579 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18639 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18811 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4190 +#: src/tachyon/methods/shell/index.ts:1383 +msgid "Failed to detect DPI type" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3284 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3287 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18997 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18997 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19057 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19229 #: src/tachyon/methods/shell/index.ts:171 #: src/tachyon/methods/shell/index.ts:178 #: src/tachyon/tabs/updates/initController.ts:661 @@ -2467,7 +2618,7 @@ msgstr "" msgid "Failed to execute" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14913 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15331 #: src/tachyon/tabs/diagnostic/initController.ts:1748 msgid "Failed to generate bug report" msgstr "" @@ -2477,21 +2628,31 @@ msgstr "" msgid "Failed to generate WARP config:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4109 -#: src/tachyon/methods/shell/index.ts:1274 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4233 +#: src/tachyon/methods/shell/index.ts:1433 +msgid "Failed to get fuzzer history" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4119 +#: src/tachyon/methods/shell/index.ts:1287 msgid "Failed to get fuzzer patterns" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3984 -#: src/tachyon/methods/shell/index.ts:1101 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3994 +#: src/tachyon/methods/shell/index.ts:1111 msgid "Failed to get fuzzer status" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4053 -#: src/tachyon/methods/shell/index.ts:1201 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4063 +#: src/tachyon/methods/shell/index.ts:1211 msgid "Failed to get fuzzer strategies" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12998 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1230 +msgid "Failed to load history" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:630 msgid "Failed to load snapshots" msgstr "" @@ -2500,7 +2661,7 @@ msgstr "" msgid "Failed to parse file:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11062 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11183 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:231 msgid "Failed to parse target list." msgstr "" @@ -2509,18 +2670,18 @@ msgstr "" msgid "Failed to parse WARP config:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3657 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3661 #: src/tachyon/methods/shell/index.ts:664 msgid "Failed to read operation log" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11714 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11835 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:115 msgid "Failed to receive response from AI service." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4161 -#: src/tachyon/methods/shell/index.ts:1336 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4171 +#: src/tachyon/methods/shell/index.ts:1362 msgid "Failed to reset fuzzer patterns" msgstr "" @@ -2528,8 +2689,8 @@ msgstr "" msgid "Failed to reset settings" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14741 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14832 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15159 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15250 #: src/tachyon/tabs/diagnostic/initController.ts:1543 #: src/tachyon/tabs/diagnostic/initController.ts:1651 msgid "Failed to restore native internet" @@ -2556,13 +2717,13 @@ msgstr "" msgid "Failed to save DNS Turbo Cache" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4135 -#: src/tachyon/methods/shell/index.ts:1305 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4145 +#: src/tachyon/methods/shell/index.ts:1320 msgid "Failed to save fuzzer patterns" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12465 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:751 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12621 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:796 msgid "Failed to save patterns" msgstr "" @@ -2574,8 +2735,8 @@ msgstr "" msgid "Failed to save snapshot" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12919 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1281 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13335 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1628 msgid "Failed to start benchmark" msgstr "" @@ -2583,13 +2744,13 @@ msgstr "" msgid "Failed to start bot" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3961 -#: src/tachyon/methods/shell/index.ts:1075 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3971 +#: src/tachyon/methods/shell/index.ts:1085 msgid "Failed to start fuzzer" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11045 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11617 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11166 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11738 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:213 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:890 msgid "Failed to start service check." @@ -2603,8 +2764,8 @@ msgstr "" msgid "Failed to stop bot" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3998 -#: src/tachyon/methods/shell/index.ts:1116 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4008 +#: src/tachyon/methods/shell/index.ts:1126 msgid "Failed to stop fuzzer" msgstr "" @@ -2612,30 +2773,30 @@ msgstr "" msgid "Failed to stop watchdog" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7325 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7331 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7420 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7426 #: src/tachyon/tabs/dashboard/initController.ts:700 #: src/tachyon/tabs/dashboard/initController.ts:706 msgid "Failed to switch proxy" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4086 -#: src/tachyon/methods/shell/index.ts:1246 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4096 +#: src/tachyon/methods/shell/index.ts:1256 msgid "Failed to synthesize AI strategies" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14587 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15005 #: src/tachyon/tabs/diagnostic/initController.ts:1364 msgid "Failed to update device" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7031 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7031 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7046 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7079 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7082 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7982 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7985 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7126 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7126 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7141 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7174 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7177 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8077 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8080 #: src/tachyon/tabs/dashboard/initController.ts:309 #: src/tachyon/tabs/dashboard/initController.ts:310 #: src/tachyon/tabs/dashboard/initController.ts:330 @@ -2650,45 +2811,57 @@ msgstr "" msgid "Failover failure threshold" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9768 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9863 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:91 msgid "FakeIP and control checks use different public IPs" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9768 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9863 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:92 msgid "FakeIP and control checks use the same public IP" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9740 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9835 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:46 msgid "FakeIP works; public IP comparison is inconclusive" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3104 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3127 msgid "FakeTLS host" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3186 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3209 msgid "Fallback on unknown DC" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:18 +msgid "Family (🏠)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:472 +msgid "Family Profile" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:466 +msgid "Family Profiles" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1866 msgid "Faster DNS health monitoring than the default cycle. Switches bootstrap DNS on failure." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7929 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8024 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3168 #: src/tachyon/tabs/dashboard/initController.ts:1464 msgid "Faster server search interval" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4546 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4641 #: src/tachyon/methods/custom/getDashboardSections.ts:661 msgid "Fastest" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11228 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11349 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:425 msgid "Filter by service:" msgstr "" @@ -2697,8 +2870,8 @@ msgstr "" msgid "Filter the servers that will be displayed on the dashboard." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12114 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:355 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12271 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:401 msgid "Filter:" msgstr "" @@ -2706,17 +2879,17 @@ msgstr "" msgid "Finland (fi)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9560 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9655 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:136 msgid "Firewall WAN port" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14436 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14854 #: src/tachyon/tabs/diagnostic/initController.ts:1196 msgid "Fix applied" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14341 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14759 #: src/tachyon/tabs/diagnostic/initController.ts:1081 msgid "Fix resolv.conf" msgstr "" @@ -2726,25 +2899,25 @@ msgstr "" msgid "Fix the highlighted fields and save again." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14144 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14432 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14562 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14850 #: src/tachyon/tabs/diagnostic/initController.ts:753 #: src/tachyon/tabs/diagnostic/initController.ts:1192 msgid "Fixed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14358 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14776 #: src/tachyon/tabs/diagnostic/initController.ts:1098 msgid "Flush Conntrack Table" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12389 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:670 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12545 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:715 msgid "Fooling Methods (dpi-desync-fooling)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12340 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:619 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12496 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:664 msgid "Fooling Methods (fooling)" msgstr "" @@ -2756,6 +2929,10 @@ msgstr "" msgid "Forced device routing" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:419 +msgid "Forces SafeSearch on Google, Yandex, Bing, DuckDuckGo and Strict Restricted Mode on YouTube via DNS rewrite for all devices in this profile." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1619 msgid "Forces sing-box to tunnel DNS requests via DoQ with Encrypted Client Hello (ECH) for SNI hiding." msgstr "" @@ -2764,27 +2941,27 @@ msgstr "" msgid "France (fr)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:26 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:38 msgid "Fri" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:16 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:28 msgid "Friday" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3149 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3172 msgid "Fronting IP" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3138 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3161 msgid "Fronting port" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3159 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3182 msgid "Fronting proxy protocol" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11764 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11885 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:173 msgid "Full System Diagnostic" msgstr "" @@ -2801,7 +2978,11 @@ msgstr "" msgid "Game Console Optimizer (NAT Type 1)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:63 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:15 +msgid "Gamer (🎮)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:75 msgid "Gaming" msgstr "" @@ -2809,7 +2990,7 @@ msgstr "" msgid "Generate a random 16-character hexadecimal HWID" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10705 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10826 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:199 msgid "Generate bug report" msgstr "" @@ -2829,7 +3010,7 @@ msgstr "" msgid "Generate WARP Config" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9524 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9619 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:89 msgid "Generated inbound" msgstr "" @@ -2862,7 +3043,7 @@ msgstr "" msgid "GET endpoints are open on LAN. POST endpoints require Authorization: Bearer ." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10619 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10740 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:113 msgid "Get global check" msgstr "" @@ -2871,28 +3052,32 @@ msgstr "" msgid "Give the snapshot a name. It is saved with the current date and can be restored from this list later." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14110 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14528 #: src/tachyon/tabs/diagnostic/initController.ts:703 msgid "Global check" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14121 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14125 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14539 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14543 #: src/tachyon/tabs/diagnostic/initController.ts:714 #: src/tachyon/tabs/diagnostic/initController.ts:718 msgid "Global check failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12983 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1356 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13400 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1704 msgid "Global Default" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2961 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:467 +msgid "Group devices into family profiles to manage content filtering, SafeSearch, and screen time limits in one place." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2984 msgid "gRPC service" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3214 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3237 msgid "Handshake timeout" msgstr "" @@ -2900,28 +3085,28 @@ msgstr "" msgid "Health Checks" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11629 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11750 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:14 msgid "Hello! I am Tachyon AI Assistant. How can I help you today? Ask me about domain blocks, diagnostics, or router settings." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3522 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3528 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3534 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3545 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3551 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3557 msgid "Hex or binary junk payload" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3504 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3510 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3516 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3527 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3533 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3539 msgid "Hex or binary payload" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3492 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3515 msgid "Hex or binary payload for init" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3498 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3521 msgid "Hex or binary payload for response" msgstr "" @@ -2969,12 +3154,12 @@ msgstr "" msgid "Hide URLTest group nodes" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10506 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10627 #: src/partials/modal/renderModal.ts:310 msgid "Hide values" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7916 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8011 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3132 #: src/tachyon/tabs/dashboard/initController.ts:1450 msgid "Higher-level check interval" @@ -2984,13 +3169,22 @@ msgstr "" msgid "Higher-priority DNS Check" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14688 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12015 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15106 #: src/tachyon/tabs/diagnostic/initController.ts:1480 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:96 msgid "History" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16307 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16360 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4256 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12908 +#: src/tachyon/methods/shell/index.ts:1461 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1126 +msgid "History cleared" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16725 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16778 #: src/tachyon/tabs/monitoring/initController.ts:876 #: src/tachyon/tabs/monitoring/initController.ts:941 msgid "Host" @@ -3041,12 +3235,12 @@ msgstr "" msgid "HTTP" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5287 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5382 #: src/tachyon/api.ts:27 msgid "HTTP error" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2954 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2977 msgid "HTTP hosts" msgstr "" @@ -3058,9 +3252,9 @@ msgstr "" msgid "HWID" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7800 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7895 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2684 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3204 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3227 #: src/tachyon/tabs/dashboard/initController.ts:1295 msgid "Idle timeout" msgstr "" @@ -3096,7 +3290,7 @@ msgstr "" msgid "Import URLTest groups returned by this subscription provider" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2726 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2749 msgid "Inbound JSON" msgstr "" @@ -3144,15 +3338,15 @@ msgstr "" msgid "Information" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3540 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3563 msgid "Init handshake timeout" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3467 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3490 msgid "Init packet header (H1)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3443 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3466 msgid "Init packet junk size (S1)" msgstr "" @@ -3184,42 +3378,42 @@ msgstr "" msgid "Init Packet Payload (I5)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3491 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3514 msgid "Init payload (I1)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3539 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3562 msgid "Init timeout (Itime)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18065 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18837 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18483 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19255 #: src/tachyon/tabs/updates/initController.ts:989 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:431 msgid "Install" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19260 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19678 #: src/tachyon/tabs/updates/initController.ts:1502 msgid "Install another build:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13001 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13004 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13007 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1379 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1384 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1389 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13418 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13421 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13424 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1727 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1732 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1737 msgid "Installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19140 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19558 #: src/tachyon/tabs/updates/initController.ts:1363 msgid "Installed build → Available build" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18358 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19148 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18776 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19566 #: src/tachyon/tabs/updates/initController.ts:359 #: src/tachyon/tabs/updates/initController.ts:1371 msgid "Installed version is newer than release" @@ -3237,8 +3431,8 @@ msgstr "" msgid "Interface monitoring for Bad WAN" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7802 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7934 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7897 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8029 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2698 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3184 #: src/tachyon/tabs/dashboard/initController.ts:1297 @@ -3254,7 +3448,7 @@ msgstr "" msgid "Interrupt connections when URLTest switches the selected server" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7798 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7893 #: src/tachyon/tabs/dashboard/initController.ts:1293 msgid "Interval" msgstr "" @@ -3286,7 +3480,8 @@ msgstr "" msgid "Invalid domain address" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:554 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:455 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:949 msgid "Invalid domain: empty prefix value" msgstr "" @@ -3372,7 +3567,7 @@ msgstr "" msgid "Invalid IP address" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:182 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:194 msgid "Invalid IP or MAC address. Expected e.g. 192.168.1.150 or AA:BB:CC:DD:EE:FF" msgstr "" @@ -3500,7 +3695,7 @@ msgstr "" msgid "Invalid SOCKS URL: parsing failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:109 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:121 msgid "Invalid time format. Expected HH:MM (e.g. 22:00)" msgstr "" @@ -3624,8 +3819,8 @@ msgstr "" msgid "IP Addresses (IP CIDR)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12444 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:727 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12600 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:772 msgid "IP Frag Bounds (--ip-frag)" msgstr "" @@ -3645,19 +3840,19 @@ msgstr "" msgid "Isolate BitTorrent traffic and force it direct to prevent VPN bans" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14144 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14562 #: src/tachyon/tabs/diagnostic/initController.ts:749 msgid "Issues" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9298 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9787 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9393 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9882 #: src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:17 #: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:20 msgid "Issues detected" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14458 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14876 #: src/tachyon/tabs/diagnostic/initController.ts:1221 msgid "Issues detected. Review the diagnosis above." msgstr "" @@ -3705,7 +3900,7 @@ msgstr "" msgid "Junk Min Size (Jmin)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3425 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3448 msgid "Junk packet count (Jc)" msgstr "" @@ -3713,39 +3908,39 @@ msgstr "" msgid "Junk Packet Count (Jc)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3437 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3460 msgid "Junk packet max size (Jmax)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3431 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3454 msgid "Junk packet min size (Jmin)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3521 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3544 msgid "Junk payload (J1)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3527 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3550 msgid "Junk payload (J2)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3533 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3556 msgid "Junk payload (J3)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3456 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3479 msgid "Junk size for cookie packet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3444 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3467 msgid "Junk size for initiation packet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3450 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3473 msgid "Junk size for response packet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3462 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3485 msgid "Junk size for transport packet" msgstr "" @@ -3770,7 +3965,7 @@ msgstr "" msgid "Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2811 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2834 msgid "Key path" msgstr "" @@ -3778,7 +3973,7 @@ msgstr "" msgid "Keyword must not contain spaces or commas" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14674 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15092 #: src/tachyon/tabs/diagnostic/initController.ts:1464 msgid "LAN Devices" msgstr "" @@ -3787,8 +3982,12 @@ msgstr "" msgid "Language for AI Doctor diagnosis responses" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3543 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3562 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:17 +msgid "Laptop / PC (💻)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3547 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3566 #: src/tachyon/methods/shell/index.ts:519 #: src/tachyon/methods/shell/index.ts:540 msgid "Latency test failed" @@ -3798,14 +3997,14 @@ msgstr "" msgid "Latency test URL" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18360 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19146 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18778 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19564 #: src/tachyon/tabs/updates/initController.ts:362 #: src/tachyon/tabs/updates/initController.ts:1369 msgid "Latest version is installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19148 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19566 #: src/tachyon/tabs/updates/initController.ts:1371 msgid "Latest version:" msgstr "" @@ -3818,7 +4017,7 @@ msgstr "" msgid "Level name" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:517 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:912 msgid "Limit device network usage per day. When the quota is exhausted, the device is blocked until midnight. 0 disables the limit." msgstr "" @@ -3842,7 +4041,7 @@ msgstr "" msgid "Listen port" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9554 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9649 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:125 msgid "Listening port" msgstr "" @@ -3881,31 +4080,31 @@ msgstr "" msgid "Loading client link..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14477 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14895 #: src/tachyon/tabs/diagnostic/initController.ts:1243 msgid "Loading connected LAN devices..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15678 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16410 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16096 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16828 #: src/tachyon/tabs/monitoring/initController.ts:1002 #: src/tachyon/tabs/monitoring/render.ts:101 msgid "Loading connections" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10994 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11033 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11115 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11154 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:150 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:194 msgid "Loading service list..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19012 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19025 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19035 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19045 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19055 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19065 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19430 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19443 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19453 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19463 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19473 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19483 #: src/tachyon/tabs/updates/initController.ts:1201 #: src/tachyon/tabs/updates/initController.ts:1216 #: src/tachyon/tabs/updates/initController.ts:1234 @@ -3927,12 +4126,12 @@ msgstr "" msgid "Log Level" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5988 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6083 #: src/tachyon/helpers/singBoxVariant.ts:62 msgid "lx" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9370 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9465 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:67 msgid "Main DNS" msgstr "" @@ -3942,8 +4141,8 @@ msgid "Main DNS server. If multiple servers are selected, a timeout switches to msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2280 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7497 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7837 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7592 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7932 #: src/tachyon/tabs/dashboard/initController.ts:914 #: src/tachyon/tabs/dashboard/initController.ts:1346 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:450 @@ -3966,7 +4165,7 @@ msgstr "" msgid "MASQUE Private Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3297 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3320 msgid "Masquerade LAN traffic into tailnet" msgstr "" @@ -3990,7 +4189,7 @@ msgstr "" msgid "Max reconnects per hour before alert (default 10)." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3438 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3461 msgid "Maximum size of junk packets" msgstr "" @@ -3998,16 +4197,16 @@ msgstr "" msgid "Maximum time to wait for example.com to resolve during a DNS health check." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8249 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8344 #: src/tachyon/tabs/dashboard/initController.ts:1877 msgid "Memory Usage" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:84 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:96 msgid "Messengers" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2968 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2991 msgid "Method" msgstr "" @@ -4015,8 +4214,10 @@ msgstr "" msgid "Metrics Retention (hours)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:319 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:325 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:281 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:287 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:692 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:698 msgid "min/day" msgstr "" @@ -4024,7 +4225,7 @@ msgstr "" msgid "Minimum latency difference in milliseconds that triggers switching to a faster server." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3432 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3455 msgid "Minimum size of junk packets" msgstr "" @@ -4040,7 +4241,7 @@ msgstr "" msgid "Mixed Proxy Username" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:266 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:639 msgid "Mode" msgstr "" @@ -4048,11 +4249,11 @@ msgstr "" msgid "Model name to use. Leave empty to use default (gpt-4o-mini / claude-3-5-haiku / deepseek-chat / llama3:latest)." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:22 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:34 msgid "Mon" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:12 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:24 msgid "Monday" msgstr "" @@ -4060,7 +4261,7 @@ msgstr "" msgid "Monitored Interfaces" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:527 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:541 msgid "Monitoring" msgstr "" @@ -4081,7 +4282,7 @@ msgid "Move up" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8384 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3356 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3379 msgid "MTU" msgstr "" @@ -4094,13 +4295,13 @@ msgstr "" msgid "Must be a number in the range of 0 - 10000" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11890 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:90 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12013 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:94 msgid "My Strategies" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12567 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:870 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12726 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:918 msgid "Name" msgstr "" @@ -4113,14 +4314,14 @@ msgstr "" msgid "Name shown in the priority level list" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14731 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14824 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15149 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15242 #: src/tachyon/tabs/diagnostic/initController.ts:1533 #: src/tachyon/tabs/diagnostic/initController.ts:1643 msgid "Native internet restored. Tachyon stopped." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3287 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3310 msgid "Native tailscaled (tailnet reachable from LAN without client)" msgstr "" @@ -4145,20 +4346,20 @@ msgstr "" msgid "New domains:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6343 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6438 #: src/tachyon/services/core.service.ts:38 msgid "New version %s is available for %s" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9855 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9941 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9950 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10036 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:100 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:97 msgid "NFQUEUE range is available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9855 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9941 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9950 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10036 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:99 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:96 msgid "NFQUEUE range overlaps with another rule" @@ -4180,10 +4381,10 @@ msgstr "" msgid "NFQWS2 strategy cannot be empty" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7425 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7428 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7488 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7828 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7520 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7523 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7583 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7923 #: src/tachyon/tabs/dashboard/initController.ts:822 #: src/tachyon/tabs/dashboard/initController.ts:826 #: src/tachyon/tabs/dashboard/initController.ts:902 @@ -4196,12 +4397,12 @@ msgstr "" msgid "No active clients" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16429 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16847 #: src/tachyon/tabs/monitoring/initController.ts:1026 msgid "No active connections" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14488 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14906 #: src/tachyon/tabs/diagnostic/initController.ts:1255 msgid "No active DHCP clients found on local network." msgstr "" @@ -4211,22 +4412,27 @@ msgstr "" msgid "No active routing sections found." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12217 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:470 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12928 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1151 +msgid "No benchmark history yet. Run a benchmark to see results here." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12372 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:514 msgid "No benchmark results yet. Configure options and click \"Start Benchmark\"." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11069 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11190 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:239 msgid "No check targets found in the configuration." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16429 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16847 #: src/tachyon/tabs/monitoring/initController.ts:1027 msgid "No closed connections" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9480 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:32 msgid "No conflict detected" msgstr "" @@ -4235,17 +4441,26 @@ msgstr "" msgid "No Custom Rules Matched" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12592 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:898 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12751 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:945 msgid "No custom strategies added yet." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14271 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:219 +msgid "no devices" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:243 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:265 +msgid "No devices assigned" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14689 #: src/tachyon/tabs/diagnostic/initController.ts:943 msgid "No DHCP clients detected" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14604 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15022 #: src/tachyon/tabs/diagnostic/initController.ts:1382 msgid "No diagnostic history available yet." msgstr "" @@ -4254,7 +4469,7 @@ msgstr "" msgid "No domains detected yet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9600 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9695 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:187 msgid "No enabled server inbounds configured" msgstr "" @@ -4263,43 +4478,43 @@ msgstr "" msgid "No file selected" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14465 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14883 #: src/tachyon/tabs/diagnostic/initController.ts:1230 msgid "No issues detected. System is running normally." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14146 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14564 #: src/tachyon/tabs/diagnostic/initController.ts:760 msgid "No issues found" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9705 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9800 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:105 msgid "No other marking rules found" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9533 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9628 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:99 msgid "No public firewall port required" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10020 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10115 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:79 msgid "No rules use ByeDPI" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9845 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9940 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:79 msgid "No rules use Zapret" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9931 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10026 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:82 msgid "No rules use Zapret2" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:243 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:262 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:616 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:635 msgid "No sections selected" msgstr "" @@ -4307,42 +4522,42 @@ msgstr "" msgid "No snapshots yet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12746 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1076 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13025 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1264 msgid "No strategies match the active filter." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7730 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7825 #: src/tachyon/tabs/dashboard/initController.ts:1211 msgid "Node list is empty" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7569 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7664 #: src/tachyon/tabs/dashboard/initController.ts:1010 msgid "Nodes" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14268 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:313 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:325 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:336 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:355 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14686 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:686 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:698 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:709 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:728 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:449 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2741 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3033 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3042 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2764 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3056 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3065 #: src/tachyon/tabs/diagnostic/initController.ts:934 msgid "None" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2412 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5224 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9489 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13237 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5319 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9584 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13655 #: src/tachyon/methods/custom/getDashboardSections.ts:1654 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:623 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:46 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:152 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:623 msgid "Not configured" msgstr "" @@ -4353,69 +4568,69 @@ msgstr "" msgid "Not connected" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9510 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9610 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9605 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9705 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:70 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:199 msgid "Not detected" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10869 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10990 #: src/tachyon/tabs/diagnostic/partials/renderCheckSection.ts:193 msgid "Not implement yet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5973 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5978 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13001 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13004 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13007 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19035 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19045 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19055 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19065 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6068 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6073 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13418 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13421 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13424 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19453 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19463 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19473 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19483 #: src/tachyon/helpers/singBoxVariant.ts:38 #: src/tachyon/helpers/singBoxVariant.ts:46 #: src/tachyon/tabs/updates/initController.ts:1237 #: src/tachyon/tabs/updates/initController.ts:1251 #: src/tachyon/tabs/updates/initController.ts:1265 #: src/tachyon/tabs/updates/initController.ts:1279 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1380 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1385 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1390 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1728 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1733 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1738 msgid "Not installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9503 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9598 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:62 msgid "Not public" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9561 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9656 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:139 msgid "Not required for this listen address" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2195 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2578 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13188 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13207 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13212 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13260 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:332 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:826 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13606 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13625 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13630 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13678 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:91 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:118 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:124 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:180 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:332 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:826 msgid "Not responding" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5562 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13668 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13838 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13884 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13946 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5657 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14086 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14256 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14302 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14364 #: src/tachyon/tabs/diagnostic/diagnostic.store.ts:142 #: src/tachyon/tabs/diagnostic/initController.ts:127 #: src/tachyon/tabs/diagnostic/initController.ts:358 @@ -4428,7 +4643,7 @@ msgstr "" msgid "Not set" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:651 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1046 msgid "Notify in Telegram" msgstr "" @@ -4472,15 +4687,15 @@ msgstr "" msgid "Number of consecutive successful checks required before returning to a higher-priority DNS server." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3426 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3449 msgid "Number of junk packets before handshake (1-10)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3041 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3064 msgid "Obfuscation" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3064 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3087 msgid "Obfuscation password" msgstr "" @@ -4527,13 +4742,13 @@ msgstr "" msgid "Only the specified servers." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12426 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:709 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12582 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:754 msgid "OOB Values (-o)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19123 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19160 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19541 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19578 #: src/tachyon/tabs/updates/initController.ts:1345 #: src/tachyon/tabs/updates/initController.ts:1384 msgid "Open" @@ -4543,46 +4758,46 @@ msgstr "" msgid "Open priority settings and enter a display name" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13110 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13528 #: src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:31 msgid "Open Project Page" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17980 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18398 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:324 msgid "Operation completed successfully!" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18106 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18524 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:483 msgid "Operation failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17807 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17862 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18225 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18280 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:110 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:172 msgid "Operation in progress..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17848 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18266 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:157 msgid "Operation log" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3657 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3661 #: src/tachyon/methods/shell/index.ts:663 msgid "Operation log is not available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17844 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18262 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:152 msgid "Operation started. Waiting for log output..." msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:1066 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3523 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3591 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3527 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3595 #: src/helpers/withTimeout.ts:7 #: src/tachyon/methods/shell/index.ts:489 #: src/tachyon/methods/shell/index.ts:577 @@ -4593,12 +4808,12 @@ msgstr "" msgid "Optimization" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14360 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14778 #: src/tachyon/tabs/diagnostic/initController.ts:1100 msgid "Optimize AWG MTU" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14352 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14770 #: src/tachyon/tabs/diagnostic/initController.ts:1092 msgid "Optimize RAM memory" msgstr "" @@ -4612,8 +4827,8 @@ msgstr "" msgid "Optional — leave empty for default" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12656 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:972 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12815 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1018 msgid "Optional context (e.g. \"Rostelecom, YouTube 4K buffering is slow\")..." msgstr "" @@ -4633,11 +4848,15 @@ msgstr "" msgid "Optional values must be attached with '=' here; a separate token would be ignored by nfqws2." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:811 +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 "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7705 msgid "Or paste hosts file content:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8338 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8433 #: src/tachyon/tabs/dashboard/initController.ts:1985 msgid "Other peers" msgstr "" @@ -4667,11 +4886,11 @@ msgstr "" msgid "P2P Leak Protection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3123 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3146 msgid "Padding" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:466 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:480 msgid "Parental Control" msgstr "" @@ -4681,7 +4900,7 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8492 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8580 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3004 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3027 msgid "Password" msgstr "" @@ -4711,49 +4930,49 @@ msgstr "" msgid "Path must end with cache.db" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11889 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:89 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12012 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:93 msgid "Pattern Builder" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12477 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:763 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12633 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:808 msgid "Patterns reset to defaults!" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4154 -#: src/tachyon/methods/shell/index.ts:1329 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4164 +#: src/tachyon/methods/shell/index.ts:1352 msgid "Patterns reset to factory defaults" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4130 -#: src/tachyon/methods/shell/index.ts:1300 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4140 +#: src/tachyon/methods/shell/index.ts:1314 msgid "Patterns saved successfully" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12463 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:749 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12619 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:794 msgid "Patterns saved successfully!" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15658 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15659 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16202 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16076 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16077 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16620 #: src/tachyon/tabs/monitoring/initController.ts:746 #: src/tachyon/tabs/monitoring/render.ts:80 #: src/tachyon/tabs/monitoring/render.ts:81 msgid "Pause updates" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3503 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3526 msgid "Payload (I3)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3509 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3532 msgid "Payload (I4)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3515 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3538 msgid "Payload (I5)" msgstr "" @@ -4773,14 +4992,14 @@ msgstr "" msgid "PEM-encoded client private key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5492 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:390 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:400 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5587 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:763 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:773 #: src/tachyon/tabs/diagnostic/diagnostic.store.ts:63 msgid "Pending" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10949 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11070 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:98 msgid "Pending..." msgstr "" @@ -4799,7 +5018,7 @@ msgid "Periodically checks if the proxy is responding. Restarts Tachyon after co msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8391 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3366 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3389 msgid "Persistent Keepalive" msgstr "" @@ -4807,6 +5026,14 @@ msgstr "" msgid "Persistent Smart Detect" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:20 +msgid "Pets / IoT (🐾)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:16 +msgid "Phone (📱)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2707 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3193 msgid "Pin on dashboard" @@ -4816,8 +5043,8 @@ msgstr "" msgid "Pin P2P isolation to the torrent client's own ports, comma separated. Each entry is \"proto\", \"proto:port\" or \"proto:port-port\" (tcp/udp). Without a port the whole protocol is routed direct." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12516 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:811 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12675 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:859 msgid "Please specify strategy name and arguments" msgstr "" @@ -4833,7 +5060,7 @@ msgstr "" msgid "Port cannot be empty" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9469 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9564 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:19 msgid "Port conflict" msgstr "" @@ -4876,7 +5103,7 @@ msgstr "" msgid "Pre-shared key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3416 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3439 msgid "Pre-shared Key (PSK)" msgstr "" @@ -4888,7 +5115,7 @@ msgstr "" msgid "Prefer IPv6" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3166 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3189 msgid "Preferred IP" msgstr "" @@ -4896,6 +5123,11 @@ msgstr "" msgid "Prefix text" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13280 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1567 +msgid "Preparing strategies and isolated nftables queue..." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8378 msgid "Preshared Key" msgstr "" @@ -4911,14 +5143,14 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2349 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2350 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7952 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8047 #: src/tachyon/tabs/dashboard/initController.ts:1494 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:536 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:537 msgid "Priority details" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7902 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7997 #: src/tachyon/tabs/dashboard/initController.ts:1431 msgid "Priority details are unavailable" msgstr "" @@ -4942,6 +5174,27 @@ msgstr "" msgid "Private Key" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:208 +msgid "Profile" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:546 +msgid "Profile / Devices" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:440 +msgid "Profile Blocked Sites (24/7)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:361 +msgid "Profile Icon / Avatar" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:369 +msgid "Profile Name" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:291 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:650 msgid "Protection" msgstr "" @@ -4953,17 +5206,17 @@ msgstr "" msgid "Protocol" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12036 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:265 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12165 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:276 msgid "Provider Global Default" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10895 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11016 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:29 msgid "Proxy" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14564 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14982 #: src/tachyon/tabs/diagnostic/initController.ts:1338 msgid "Proxy / DPI" msgstr "" @@ -4980,7 +5233,7 @@ msgstr "" msgid "Proxy Health Check URL" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7421 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7516 #: src/tachyon/tabs/dashboard/initController.ts:817 msgid "Proxy link is unavailable" msgstr "" @@ -4997,7 +5250,7 @@ msgstr "" msgid "PSK" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9484 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9579 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2690 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:40 msgid "Public host" @@ -5012,8 +5265,8 @@ msgstr "" msgid "QUIC (HTTP/3)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12706 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1029 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12865 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1075 msgid "RAG Knowledge Base + Live ISP Probe Context" msgstr "" @@ -5026,27 +5279,27 @@ msgstr "" msgid "Read error" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2829 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2852 msgid "Reality fake site" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2840 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2863 msgid "Reality fake site port" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2883 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2906 msgid "Reality max time difference" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2851 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2874 msgid "Reality private key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2858 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2881 msgid "Reality public key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2864 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2887 msgid "Reality short ID" msgstr "" @@ -5054,17 +5307,22 @@ msgstr "" msgid "Reality short ID must contain 1-8 hex digits" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14339 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14757 #: src/tachyon/tabs/diagnostic/initController.ts:1079 msgid "Rebuild firewall rules" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19142 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19560 #: src/tachyon/tabs/updates/initController.ts:1365 msgid "Rebuilt release" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14409 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13253 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1536 +msgid "Recommended" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14827 #: src/tachyon/tabs/diagnostic/initController.ts:1163 msgid "Recommended Quick Fixes:" msgstr "" @@ -5073,7 +5331,7 @@ msgstr "" msgid "Reconnect Threshold" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14345 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14763 #: src/tachyon/tabs/diagnostic/initController.ts:1085 msgid "Reconnect WAN" msgstr "" @@ -5091,12 +5349,12 @@ msgstr "" msgid "Refill" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14511 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14929 #: src/tachyon/tabs/diagnostic/initController.ts:1280 msgid "Refresh" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14492 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14910 #: src/tachyon/tabs/diagnostic/initController.ts:1259 msgid "Refresh Device List" msgstr "" @@ -5109,17 +5367,17 @@ msgstr "" msgid "Regular expression must not contain spaces or commas" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18922 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19340 #: src/tachyon/tabs/updates/initController.ts:1107 msgid "Reinstall" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18000 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18418 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:349 msgid "Reload now" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18032 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18450 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:390 msgid "Reloading..." msgstr "" @@ -5128,12 +5386,12 @@ msgstr "" msgid "Remote Hosts Lists" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17980 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18398 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:323 msgid "Removal completed successfully!" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18888 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19306 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7927 #: src/tachyon/tabs/updates/initController.ts:1061 msgid "Remove" @@ -5151,7 +5409,7 @@ msgstr "" msgid "Remove the specified servers from this level." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17811 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18229 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:114 msgid "Removing" msgstr "" @@ -5164,7 +5422,7 @@ msgstr "" msgid "Reset" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14359 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14777 #: src/tachyon/tabs/diagnostic/initController.ts:1099 msgid "Reset Bootstrap DNS" msgstr "" @@ -5183,7 +5441,7 @@ msgstr "" msgid "Resolve domain names before routing so sing-box can use real destination IPs." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14346 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14764 #: src/tachyon/tabs/diagnostic/initController.ts:1086 msgid "Resolve gateway" msgstr "" @@ -5208,11 +5466,11 @@ msgstr "" msgid "Resource selection by IP or CIDR inside nfqws2 is not supported here; sing-box selects resources before NFQUEUE." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3473 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3496 msgid "Response packet header (H2)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3449 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3472 msgid "Response packet junk size (S2)" msgstr "" @@ -5224,36 +5482,36 @@ msgstr "" msgid "Response Packet Magic Header (S4)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3497 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3520 msgid "Response payload (I2)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14340 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14758 #: src/tachyon/tabs/diagnostic/initController.ts:1080 msgid "Restart dnsmasq" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14349 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14767 #: src/tachyon/tabs/diagnostic/initController.ts:1089 msgid "Restart firewall" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14350 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14768 #: src/tachyon/tabs/diagnostic/initController.ts:1090 msgid "Restart network" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14343 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14761 #: src/tachyon/tabs/diagnostic/initController.ts:1083 msgid "Restart sing-box DNS" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10570 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10691 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:64 msgid "Restart Tachyon" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14351 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14769 #: src/tachyon/tabs/diagnostic/initController.ts:1091 msgid "Restart Zapret/ByeDPI" msgstr "" @@ -5268,22 +5526,22 @@ msgstr "" msgid "Restore" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14344 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14762 #: src/tachyon/tabs/diagnostic/initController.ts:1084 msgid "Restore config backup" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10648 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14789 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14812 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10769 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15207 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15230 #: src/tachyon/tabs/diagnostic/initController.ts:1603 #: src/tachyon/tabs/diagnostic/initController.ts:1627 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:142 msgid "Restore Native Internet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14356 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14718 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14774 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15136 #: src/tachyon/tabs/diagnostic/initController.ts:1096 #: src/tachyon/tabs/diagnostic/initController.ts:1516 msgid "Restore Native Internet (Stop Tachyon)" @@ -5297,32 +5555,40 @@ msgstr "" msgid "Restores the Tachyon factory defaults: all rules, subscriptions, custom DNS servers and other options will be lost." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14721 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14816 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15139 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15234 #: src/tachyon/tabs/diagnostic/initController.ts:1519 #: src/tachyon/tabs/diagnostic/initController.ts:1631 msgid "Restoring native direct internet (stopping Tachyon)..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16202 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2726 +msgid "Restrict LAN access for specific users" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2737 +msgid "Restricted users (auth_user)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16620 #: src/tachyon/tabs/monitoring/initController.ts:746 msgid "Resume updates" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:641 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1036 msgid "Return NXDOMAIN for blocked domains (recommended). When enabled, blocked domains are not resolved at all. When disabled, only direct connections are rejected." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11245 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16311 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16362 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11366 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16729 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16780 #: src/tachyon/tabs/monitoring/initController.ts:880 #: src/tachyon/tabs/monitoring/initController.ts:943 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:444 msgid "Route" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3311 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3334 msgid "Route all non-local LAN traffic through the tailnet exit node instead of the proxy engines." msgstr "" @@ -5338,7 +5604,7 @@ msgstr "" msgid "Route requests to this DNS server through another section." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14570 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14988 #: src/tachyon/tabs/diagnostic/initController.ts:1345 msgid "Route via Proxy" msgstr "" @@ -5351,9 +5617,9 @@ msgstr "" msgid "Routing Rule Tracer" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9537 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9546 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9565 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9632 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9641 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9660 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:103 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:114 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:144 @@ -5368,7 +5634,7 @@ msgstr "" msgid "Rule" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:406 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:779 msgid "Rule Name" msgstr "" @@ -5389,8 +5655,8 @@ msgstr "" msgid "Rule Sets (.srs / .json)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12037 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:266 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12166 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:277 msgid "Rule:" msgstr "" @@ -5400,65 +5666,65 @@ msgstr "" msgid "Rules" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9680 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9775 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:79 msgid "Rules mangle counters" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9675 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9770 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:74 msgid "Rules mangle exist" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9690 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9785 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:89 msgid "Rules mangle output counters" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9685 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9780 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:84 msgid "Rules mangle output exist" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9700 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9795 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:99 msgid "Rules proxy counters" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9695 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9790 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:94 msgid "Rules proxy exist" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10638 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10759 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:132 msgid "Run AI Doctor" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10880 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11001 #: src/tachyon/tabs/diagnostic/partials/renderRunAction.ts:17 msgid "Run Diagnostic" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10628 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10749 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:122 msgid "Run doctor repair" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2412 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5224 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13220 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5319 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13638 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:301 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2072 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2073 #: src/tachyon/methods/custom/getDashboardSections.ts:1649 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:618 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:135 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:618 msgid "Running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12746 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1075 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13025 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1263 msgid "Running benchmarks..." msgstr "" @@ -5470,11 +5736,15 @@ msgstr "" msgid "Russia (ru)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:27 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:303 +msgid "SafeSearch" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:39 msgid "Sat" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:17 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:29 msgid "Saturday" msgstr "" @@ -5508,35 +5778,37 @@ msgstr "" msgid "Saving…" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:282 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:655 msgid "Schedule" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:472 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:486 msgid "Schedule Rule" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12198 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:451 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12353 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12946 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:495 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1169 msgid "Score" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15635 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16053 #: src/tachyon/tabs/monitoring/render.ts:57 msgid "Search" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11204 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11325 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:397 msgid "Search domain or service..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12027 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:254 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12156 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:265 msgid "Search Mode" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3080 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3103 msgid "Secret" msgstr "" @@ -5585,11 +5857,11 @@ msgid "Sections" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2051 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2738 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2761 msgid "Security" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7710 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7805 #: src/tachyon/tabs/dashboard/initController.ts:1185 msgid "Select" msgstr "" @@ -5623,7 +5895,7 @@ msgstr "" msgid "Select a transit section" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:504 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:899 msgid "Select active days. If none selected, the rule applies every day." msgstr "" @@ -5651,8 +5923,8 @@ msgstr "" msgid "Select DNS protocol to use" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:416 -msgid "Select LAN devices to apply this schedule to, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes. IP addresses (e.g. 192.168.1.150) are used for DNS-level blocking and require a stable lease." +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:379 +msgid "Select LAN devices to assign to this profile, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes via DHCP." msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8828 @@ -5679,11 +5951,11 @@ msgstr "" msgid "Select path for sing-box config file. Change this ONLY if you know what you are doing" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:446 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:841 msgid "Select Sections" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7920 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8015 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3146 #: src/tachyon/tabs/dashboard/initController.ts:1454 msgid "Select the fastest node" @@ -5705,12 +5977,12 @@ msgstr "" msgid "Select the WAN interfaces to be monitored" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:468 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:863 msgid "Select whether to disable the target during the schedule or enable it ONLY during the schedule." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7794 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7906 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7889 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8001 #: src/tachyon/tabs/dashboard/initController.ts:1289 #: src/tachyon/tabs/dashboard/initController.ts:1440 msgid "Selected" @@ -5725,7 +5997,7 @@ msgstr "" msgid "Selector and URLTest outbounds must contain a non-empty outbounds array" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11674 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11795 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:67 msgid "Send" msgstr "" @@ -5746,7 +6018,7 @@ msgstr "" msgid "Send a Telegram notification if the Tachyon service is restarted by the watchdog." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:652 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1047 msgid "Send a Telegram notification to admins when a blocked site is accessed. Requires the Telegram bot to be enabled." msgstr "" @@ -5758,8 +6030,12 @@ msgstr "" msgid "Send a Telegram notification when proxy subscriptions are successfully updated." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12352 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:631 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:528 +msgid "Send Telegram alerts to parents when daily screen time is exhausted or blocked sites are accessed." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12508 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:676 msgid "Sequence Overlaps (seqovl)" msgstr "" @@ -5773,7 +6049,7 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8554 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8589 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8659 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3324 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3347 msgid "Server Address" msgstr "" @@ -5799,7 +6075,7 @@ msgstr "" msgid "Server name" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2767 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2790 msgid "Server name / SNI" msgstr "" @@ -5826,20 +6102,20 @@ msgstr "" msgid "Server Port" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3377 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3400 msgid "Server Private Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3387 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3410 msgid "Server Public Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11742 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11863 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:148 msgid "Server unavailable" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3325 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3348 msgid "Server VPN IP address and subnet (e.g. 10.0.0.1/24)" msgstr "" @@ -5856,21 +6132,21 @@ msgstr "" msgid "Servers on dashboard" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11240 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11361 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:439 msgid "Service / Target" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3482 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3501 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14030 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3486 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3505 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14448 #: src/tachyon/methods/shell/index.ts:440 #: src/tachyon/methods/shell/index.ts:461 #: src/tachyon/tabs/diagnostic/initController.ts:609 msgid "Service action failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11026 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11147 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:186 msgid "Service availability check" msgstr "" @@ -5883,29 +6159,29 @@ msgstr "" msgid "Services & Access" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18029 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18447 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:387 msgid "Services are online and ready! Reloading page..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18021 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18439 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:375 msgid "Services are online, waiting for full initialization..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8258 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8353 #: src/tachyon/tabs/dashboard/initController.ts:1887 msgid "Services info" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18054 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18472 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:418 msgid "Services restarted. Click to reload page." msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1152 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7232 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:480 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:494 msgid "Settings" msgstr "" @@ -5913,7 +6189,7 @@ msgstr "" msgid "Settings have been reset to defaults. The page will reload." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:93 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:105 msgid "Shopping" msgstr "" @@ -5949,15 +6225,15 @@ msgstr "" msgid "Show servers whose names match the expression." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10696 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14853 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10817 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15271 #: src/tachyon/tabs/diagnostic/initController.ts:1677 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:190 msgid "Show sing-box config" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14864 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14871 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15282 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15289 #: src/tachyon/tabs/diagnostic/initController.ts:1688 #: src/tachyon/tabs/diagnostic/initController.ts:1695 msgid "Show sing-box config failed" @@ -5967,46 +6243,46 @@ msgstr "" msgid "Show subscription metadata for this source on the dashboard" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9441 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9536 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:77 msgid "Sing-box autostart disabled" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3283 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3306 msgid "sing-box endpoint (userspace, default)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9757 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9852 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:69 msgid "Sing-box FakeIP DNS does not work" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9757 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9852 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:68 msgid "Sing-box FakeIP DNS works" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9426 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9521 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:62 msgid "Sing-box installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9451 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9546 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:87 msgid "Sing-box listening ports" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9446 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9541 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:82 msgid "Sing-box process running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9436 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9531 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:72 msgid "Sing-box service exist" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9431 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9526 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:67 msgid "Sing-box version is compatible (newer than 1.12.4)" msgstr "" @@ -6015,6 +6291,10 @@ msgstr "" msgid "Singapore (sg)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:309 +msgid "sites" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7710 msgid "Skip loopback & local entries (127.0.0.1, ::1, 0.0.0.0, localhost)" msgstr "" @@ -6047,7 +6327,7 @@ msgstr "" msgid "Snapshot restored. The service restarts and the page will reload." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3298 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3321 msgid "SNAT LAN sources when leaving through tailscale0 so peers can answer. Required unless every peer accepts routes." msgstr "" @@ -6055,7 +6335,7 @@ msgstr "" msgid "Snell Version" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:43 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:55 msgid "Social media" msgstr "" @@ -6071,8 +6351,8 @@ msgstr "" msgid "Sorts servers in this section by lowest latency in the dashboard." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16323 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16366 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16741 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16784 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10099 #: src/tachyon/tabs/monitoring/initController.ts:892 #: src/tachyon/tabs/monitoring/initController.ts:947 @@ -6087,7 +6367,7 @@ msgstr "" msgid "Source Network Interface" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:440 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:835 msgid "Specific Sections (Select sections below)" msgstr "" @@ -6100,28 +6380,28 @@ msgstr "" msgid "Specify different files" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12197 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:450 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12352 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:494 msgid "Speed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12377 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:658 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12533 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:703 msgid "Split Modes (dpi-desync)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12383 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:664 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12539 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:709 msgid "Split Positions (dpi-desync-split-pos)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12334 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:613 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12490 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:658 msgid "Split Positions (pos)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12414 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:697 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12570 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:742 msgid "Split Values (-s)" msgstr "" @@ -6130,61 +6410,66 @@ msgstr "" msgid "SSH" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10035 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10130 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:122 msgid "Standalone ByeDPI autostart is enabled" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10035 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10130 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:119 msgid "Standalone ByeDPI is active together with Tachyon ByeDPI rules" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10035 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10130 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:120 msgid "Standalone ByeDPI service is active" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10035 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10130 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:123 msgid "Standalone ByeDPI service is inactive" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9865 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9960 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:111 msgid "Standalone Zapret is active together with Tachyon Zapret rules" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9865 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9960 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:112 msgid "Standalone Zapret service is active" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9865 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9960 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:113 msgid "Standalone Zapret service is inactive" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9953 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10048 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:123 msgid "Standalone Zapret2 autostart is enabled" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9951 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10046 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:118 msgid "Standalone Zapret2 is active together with Tachyon Zapret2 rules" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9953 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10048 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:121 msgid "Standalone Zapret2 service is active" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9953 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10048 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:124 msgid "Standalone Zapret2 service is inactive" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:316 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:329 +msgid "Standard" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:285 msgid "Start" msgstr "" @@ -6193,21 +6478,21 @@ msgstr "" msgid "Start bot" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14338 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14756 #: src/tachyon/tabs/diagnostic/initController.ts:1078 msgid "Start sing-box" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10590 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10711 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:84 msgid "Start Tachyon" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:479 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:874 msgid "Start Time (HH:MM)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14342 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14760 #: src/tachyon/tabs/diagnostic/initController.ts:1082 msgid "Start watchdog" msgstr "" @@ -6221,22 +6506,23 @@ msgstr "" msgid "Starting…" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8320 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8415 #: src/tachyon/tabs/dashboard/initController.ts:1964 msgid "State" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2451 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11282 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:360 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11403 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:333 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:733 +#: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:481 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:490 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:670 -#: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:481 msgid "Status" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12194 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:447 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12349 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:491 msgid "Status / Suite" msgstr "" @@ -6252,19 +6538,19 @@ msgstr "" msgid "Stop checking when URLTest group is not used. Use sing-box duration format like 1d, 12h or 30m." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10580 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10701 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:74 msgid "Stop Tachyon" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2412 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5224 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13232 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5319 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13650 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:307 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2078 #: src/tachyon/methods/custom/getDashboardSections.ts:1653 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:622 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:147 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:622 msgid "Stopped" msgstr "" @@ -6277,26 +6563,30 @@ msgstr "" msgid "Store auto-detected domains in /etc instead of /tmp to survive reboots." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12189 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:442 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12344 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:486 msgid "Strategy & Parameters" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12913 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1275 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13327 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1620 msgid "Strategy benchmark started" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12637 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:947 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12796 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:993 msgid "Strategy deleted" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12490 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:783 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12646 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:828 msgid "Strategy Name" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:19 +msgid "Strict (🔒)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1618 msgid "Strict ECH + DoQ DNS Enforcer" msgstr "" @@ -6319,10 +6609,10 @@ msgstr "" msgid "Subscription info:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3838 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3856 -#: src/tachyon/methods/shell/index.ts:929 -#: src/tachyon/methods/shell/index.ts:949 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3848 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3866 +#: src/tachyon/methods/shell/index.ts:939 +#: src/tachyon/methods/shell/index.ts:959 msgid "Subscription update failed" msgstr "" @@ -6338,7 +6628,7 @@ msgstr "" msgid "Subscription URL settings" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7051 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7146 #: src/tachyon/tabs/dashboard/initController.ts:336 msgid "Subscriptions updated" msgstr "" @@ -6351,11 +6641,11 @@ msgstr "" msgid "Successfully imported %d DNS record(s)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:28 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:40 msgid "Sun" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:18 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:30 msgid "Sunday" msgstr "" @@ -6363,37 +6653,37 @@ msgstr "" msgid "Sweden (se)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14353 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14771 #: src/tachyon/tabs/diagnostic/initController.ts:1093 msgid "Switch DNS to DoH" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7770 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7865 #: src/tachyon/tabs/dashboard/initController.ts:1254 msgid "Switch to auto-selection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14357 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14775 #: src/tachyon/tabs/diagnostic/initController.ts:1097 msgid "Sync System Time (NTP)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8246 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8341 #: src/tachyon/tabs/dashboard/initController.ts:1874 msgid "System info" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13040 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13458 #: src/tachyon/tabs/diagnostic/partials/renderSystemInfo.ts:24 msgid "System information" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9670 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9765 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:69 msgid "Table exist" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6353 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6448 #: src/tachyon/services/core.service.ts:52 msgid "Tachyon Error" msgstr "" @@ -6414,7 +6704,7 @@ msgstr "" msgid "Tachyon manages the nfqws2 process lifecycle itself, so daemon mode is not allowed here." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16400 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16818 #: src/tachyon/tabs/monitoring/initController.ts:991 msgid "Tachyon service is stopped. Start the service to display connections." msgstr "" @@ -6428,8 +6718,8 @@ msgstr "" msgid "Tachyon Settings" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3755 -#: src/tachyon/methods/shell/index.ts:817 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3768 +#: src/tachyon/methods/shell/index.ts:822 msgid "Tachyon update did not complete within the timeout" msgstr "" @@ -6437,105 +6727,119 @@ msgstr "" msgid "Tachyon will not modify your DHCP configuration" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10025 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10120 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:91 msgid "Tachyon-managed ciadpi runtime has restarted" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10025 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10120 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:94 msgid "Tachyon-managed ciadpi runtime is not ready" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10025 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10120 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:97 msgid "Tachyon-managed ciadpi runtime is not running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10025 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10120 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:93 msgid "Tachyon-managed ciadpi runtime is ready" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9850 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9945 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:87 msgid "Tachyon-managed nfqws runtime is not ready" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9850 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9945 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:90 msgid "Tachyon-managed nfqws runtime is not running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9850 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9945 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:86 msgid "Tachyon-managed nfqws runtime is ready" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9936 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10031 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:90 msgid "Tachyon-managed nfqws2 runtime is not ready" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9936 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10031 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:93 msgid "Tachyon-managed nfqws2 runtime is not running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9936 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10031 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:89 msgid "Tachyon-managed nfqws2 runtime is ready" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8315 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8410 #: src/tachyon/tabs/dashboard/initController.ts:1954 msgid "Tailscale" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3222 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3245 msgid "Tailscale auth key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3231 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3254 msgid "Tailscale control URL" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9532 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9627 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:98 msgid "Tailscale endpoint" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3239 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3262 msgid "Tailscale hostname" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3280 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3303 msgid "Tailscale mode" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:229 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12943 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:602 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1166 msgid "Target" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:415 -msgid "Target Devices (IP / MAC)" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:788 +msgid "Target Family Profiles" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:434 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:829 msgid "Target Scope" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11994 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:217 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12123 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:228 msgid "Target Service / Suite" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12358 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:637 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12514 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:682 msgid "TCP Window Sizes (wsize)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:492 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:14 +msgid "Teen (🧑)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:312 +msgid "Telegram" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:527 +msgid "Telegram Alerts" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:506 msgid "Telegram Bot" msgstr "" @@ -6543,7 +6847,7 @@ msgstr "" msgid "Telegram Bot Token" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13120 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13538 #: src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:42 msgid "Telegram Channel" msgstr "" @@ -6592,18 +6896,23 @@ msgstr "" msgid "Test Telegram Connection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12846 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1193 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13311 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1602 +msgid "Testing bypass strategies in isolated sandbox..." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13129 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1384 msgid "Testing strategy" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7797 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7892 #: src/tachyon/tabs/dashboard/initController.ts:1292 msgid "Testing URL" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10959 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11550 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11080 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11671 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:108 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:797 msgid "Testing..." @@ -6627,27 +6936,27 @@ msgstr "" msgid "The rule applies to the domain and all its subdomains. Use full:, keyword:, or regex: prefixes for exact match, keyword match, or regular expression." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10020 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10115 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:78 msgid "There are rules using ByeDPI" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9845 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9940 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:78 msgid "There are rules using Zapret" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9931 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10026 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:81 msgid "There are rules using Zapret2" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11698 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11819 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:97 msgid "Thinking..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14794 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15212 #: src/tachyon/tabs/diagnostic/initController.ts:1608 msgid "This action will stop Tachyon, restore standard dnsmasq/DNS, remove all proxy/anti-censorship firewall rules and restore direct Internet connection through your ISP." msgstr "" @@ -6658,7 +6967,7 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1928 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2018 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2180 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3027 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3050 msgid "This field is required" msgstr "" @@ -6692,7 +7001,7 @@ msgstr "" msgid "This option requires a value." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8328 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8423 #: src/tachyon/tabs/dashboard/initController.ts:1975 msgid "This router" msgstr "" @@ -6705,17 +7014,17 @@ msgstr "" msgid "This will replace the current Tachyon settings with the snapshot" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:25 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:37 msgid "Thu" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:15 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:27 msgid "Thursday" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16314 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16363 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16497 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16732 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16781 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16915 #: src/tachyon/tabs/monitoring/initController.ts:883 #: src/tachyon/tabs/monitoring/initController.ts:944 #: src/tachyon/tabs/monitoring/initController.ts:1127 @@ -6726,15 +7035,15 @@ msgstr "" msgid "Time in seconds for DNS record caching (default: 60)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:105 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:117 msgid "Time is required (e.g. 22:00)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3196 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3219 msgid "Time skew tolerance" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5990 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6085 #: src/tachyon/helpers/singBoxVariant.ts:64 msgid "tiny" msgstr "" @@ -6752,16 +7061,20 @@ msgstr "" msgid "TLS SNI" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12438 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:721 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12594 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:766 msgid "TLS-Rec Bounds (--tlsrec)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:12 +msgid "Toddler (👶)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2182 msgid "Token is required when the bot is enabled" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7799 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7894 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2657 #: src/tachyon/tabs/dashboard/initController.ts:1294 msgid "Tolerance" @@ -6771,11 +7084,15 @@ msgstr "" msgid "Top level has the highest priority; lower levels are used as fallback" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:398 +msgid "Total allowed network usage per day for devices in this profile. When the quota is reached, access is blocked until midnight. Enter 0 for unlimited." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7636 msgid "Total lines:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11160 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11281 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:345 msgid "Total targets" msgstr "" @@ -6789,7 +7106,7 @@ msgid "Tracing routing rules..." msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2043 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8222 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8317 #: src/tachyon/tabs/dashboard/initController.ts:1848 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:133 msgid "Traffic" @@ -6807,7 +7124,7 @@ msgstr "" msgid "Traffic of specified protocols (e.g. BitTorrent, QUIC, STUN) will bypass this section." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8234 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8329 #: src/tachyon/tabs/dashboard/initController.ts:1861 msgid "Traffic Total" msgstr "" @@ -6820,7 +7137,7 @@ msgstr "" msgid "Traffic will go through the default route (Direct/Default)." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18785 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19203 #: src/tachyon/tabs/updates/initController.ts:922 msgid "Transient connection error" msgstr "" @@ -6831,23 +7148,23 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2045 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8566 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2905 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2928 msgid "Transport" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2929 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2952 msgid "Transport host" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3485 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3508 msgid "Transport packet header (H4)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3461 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3484 msgid "Transport packet junk size (S4)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2913 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2936 msgid "Transport path" msgstr "" @@ -6855,7 +7172,7 @@ msgstr "" msgid "Transport path must start with /" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13104 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13522 #: src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:25 msgid "Troubleshooting" msgstr "" @@ -6864,8 +7181,8 @@ msgstr "" msgid "Try compatible User-Agent profiles automatically when downloading this subscription" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12196 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:449 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12351 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:493 msgid "TTFB" msgstr "" @@ -6877,21 +7194,21 @@ msgstr "" msgid "TTL value cannot be empty" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12395 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:676 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12551 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:721 msgid "TTL Values (dpi-desync-ttl)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12346 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:625 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12502 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:670 msgid "TTL Values (ttl)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:23 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:35 msgid "Tue" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:13 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:25 msgid "Tuesday" msgstr "" @@ -6899,8 +7216,8 @@ msgstr "" msgid "Turkey (tr)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16308 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16361 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16726 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16779 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1696 #: src/tachyon/tabs/monitoring/initController.ts:877 #: src/tachyon/tabs/monitoring/initController.ts:942 @@ -6911,7 +7228,7 @@ msgstr "" msgid "UDP (Unprotected DNS)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10925 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11046 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:65 msgid "UDP / QUIC protocols" msgstr "" @@ -6934,20 +7251,20 @@ msgstr "" msgid "Unable to validate the NFQWS2 strategy through the backend parser." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7914 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8009 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3120 #: src/tachyon/tabs/dashboard/initController.ts:1448 msgid "Unavailability timeout" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10980 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11162 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11101 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11283 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:135 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:347 msgid "Unavailable" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3479 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3502 msgid "Underload packet header (H3)" msgstr "" @@ -6977,17 +7294,17 @@ msgstr "" msgid "Unexpected standalone token. Use explicit flags such as --name or --name=value." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10025 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10120 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:96 msgid "Unexpected Tachyon-managed ciadpi runtime is running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9850 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9945 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:89 msgid "Unexpected Tachyon-managed nfqws runtime is running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9936 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10031 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:92 msgid "Unexpected Tachyon-managed nfqws2 runtime is running" msgstr "" @@ -7004,19 +7321,19 @@ msgstr "" msgid "United States (us)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5973 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9474 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10055 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10057 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10058 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10059 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10066 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10068 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10070 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10072 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10075 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10076 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18405 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6068 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9569 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10150 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10152 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10153 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10154 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10161 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10163 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10165 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10167 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10170 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10171 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18823 #: src/tachyon/helpers/singBoxVariant.ts:37 #: src/tachyon/services/systemInfo.service.ts:10 #: src/tachyon/services/systemInfo.service.ts:12 @@ -7033,7 +7350,7 @@ msgstr "" msgid "unknown" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5224 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5319 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:328 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2095 #: src/tachyon/methods/custom/getDashboardSections.ts:1655 @@ -7050,18 +7367,20 @@ msgstr "" msgid "Unknown country" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5298 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12918 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14135 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14154 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14221 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14762 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5393 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13179 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13334 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14553 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14572 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14639 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15180 #: src/tachyon/api.ts:40 #: src/tachyon/tabs/diagnostic/initController.ts:731 #: src/tachyon/tabs/diagnostic/initController.ts:772 #: src/tachyon/tabs/diagnostic/initController.ts:857 #: src/tachyon/tabs/diagnostic/initController.ts:1568 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1280 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1451 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1627 msgid "Unknown error" msgstr "" @@ -7073,6 +7392,11 @@ msgstr "" msgid "Unknown NFQWS2 flag." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:275 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:287 +msgid "Unlimited" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:212 #: src/validators/validateSubnet.ts:17 msgid "Unspecified IP address is not allowed" @@ -7091,22 +7415,22 @@ msgstr "" msgid "Up to 10 snapshots are kept; the oldest ones are removed automatically." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18837 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19255 #: src/tachyon/tabs/updates/initController.ts:989 msgid "Update" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18355 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18773 #: src/tachyon/tabs/updates/initController.ts:355 msgid "Update is available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19130 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19548 #: src/tachyon/tabs/updates/initController.ts:1352 msgid "Update is available for current release" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19111 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19529 #: src/tachyon/tabs/updates/initController.ts:1331 msgid "Update is available:" msgstr "" @@ -7118,7 +7442,7 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2114 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2125 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2125 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14348 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14766 #: src/tachyon/tabs/diagnostic/initController.ts:1088 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:224 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:237 @@ -7138,12 +7462,12 @@ msgstr "" msgid "Updates & Downloads" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17813 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18231 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:116 msgid "Updating" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14573 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14991 #: src/tachyon/tabs/diagnostic/initController.ts:1349 msgid "Updating device routing mode..." msgstr "" @@ -7152,16 +7476,16 @@ msgstr "" msgid "Updating lists..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8224 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8236 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8319 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8331 #: src/tachyon/tabs/dashboard/initController.ts:1850 #: src/tachyon/tabs/dashboard/initController.ts:1863 msgid "Uplink" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16320 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16365 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16509 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16738 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16783 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16927 #: src/tachyon/tabs/monitoring/initController.ts:889 #: src/tachyon/tabs/monitoring/initController.ts:946 #: src/tachyon/tabs/monitoring/initController.ts:1141 @@ -7200,14 +7524,14 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2333 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2334 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7820 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7915 #: src/tachyon/tabs/dashboard/initController.ts:1321 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:517 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:518 msgid "URLTest details" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7790 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7885 #: src/tachyon/tabs/dashboard/initController.ts:1280 msgid "URLTest details are unavailable" msgstr "" @@ -7236,7 +7560,7 @@ msgid "Use a duration like 30s, 5m, or 1h30m" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2095 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3029 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3052 msgid "Use a non-negative integer" msgstr "" @@ -7296,26 +7620,30 @@ msgstr "" msgid "Use sing-box duration format like 1d, 12h or 6h" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3310 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3333 msgid "Use tailnet exit node for LAN" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9474 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9569 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:25 msgid "Used by" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12525 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:822 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12684 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:870 msgid "User custom strategy" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2738 +msgid "User names (e.g. from VLESS/Trojan/SS/JSON inbound users) that are forbidden from reaching LAN subnets. Leave empty to restrict all users on this inbound." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2444 msgid "User-Agent" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8574 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2988 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3011 msgid "Username" msgstr "" @@ -7381,7 +7709,7 @@ msgstr "" msgid "Value must not contain control characters" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18017 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18435 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:370 msgid "Verifying router and service readiness..." msgstr "" @@ -7390,19 +7718,19 @@ msgstr "" msgid "Via country.is" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:53 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:65 msgid "Video streaming" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10687 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14198 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10808 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14616 #: src/tachyon/tabs/diagnostic/initController.ts:831 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:181 msgid "View logs" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14208 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14211 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14626 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14629 #: src/tachyon/tabs/diagnostic/initController.ts:841 #: src/tachyon/tabs/diagnostic/initController.ts:844 msgid "View logs failed" @@ -7412,7 +7740,7 @@ msgstr "" msgid "Visible name of this section" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3032 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3055 msgid "VLESS flow" msgstr "" @@ -7420,17 +7748,17 @@ msgstr "" msgid "vless://, vmess://, ss://, trojan://, socks4/5://, hy2/hysteria2:// links" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17996 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18414 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:344 msgid "Waiting for router services to restart..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9510 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9605 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:70 msgid "WAN" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9609 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9704 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:198 msgid "WAN public IP" msgstr "" @@ -7475,19 +7803,19 @@ msgstr "" msgid "WebRTC Leak Protection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:24 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:36 msgid "Wed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:14 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:26 msgid "Wednesday" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:168 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:180 msgid "Weekdays (Mon-Fri)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:172 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:184 msgid "Weekends (Sat-Sun)" msgstr "" @@ -7499,7 +7827,7 @@ msgstr "" msgid "When switching to another level, test every server and select the fastest instead of the first working one." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11762 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11883 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:171 msgid "Why Discord fails?" msgstr "" @@ -7512,7 +7840,12 @@ msgstr "" msgid "WireGuard private key from your Cloudflare WARP account" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2942 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12947 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1170 +msgid "Working" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2965 msgid "XHTTP mode" msgstr "" @@ -7520,7 +7853,7 @@ msgstr "" msgid "YACD Secret Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7425 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7520 #: src/tachyon/tabs/dashboard/initController.ts:822 msgid "Yes" msgstr "" @@ -7533,51 +7866,51 @@ msgstr "" msgid "Zapret hostlist templates are not supported here because Tachyon does not expand them for per-rule NFQWS strategies." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9840 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9935 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:71 msgid "Zapret package is installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9840 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9935 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:72 msgid "Zapret package is not installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9835 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9930 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:60 msgid "Zapret provider binary is available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9835 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9930 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:61 msgid "Zapret provider binary is not available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9860 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9955 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:103 msgid "Zapret sing-box outbound is configured" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9860 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9955 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:104 msgid "Zapret sing-box outbound is not configured" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11925 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13004 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13004 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:138 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1384 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1385 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12054 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13421 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13421 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:149 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1732 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1733 msgid "Zapret v1 (nfqws)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11924 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13001 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13001 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:137 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1379 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1380 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12053 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13418 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13418 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:148 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1727 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1728 msgid "Zapret v2 (nfqws2)" msgstr "" @@ -7585,121 +7918,32 @@ msgstr "" msgid "Zapret2 hostlist templates are not supported here because Tachyon does not expand them for per-rule NFQWS2 strategies." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9926 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10021 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:74 msgid "Zapret2 package is installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9926 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10021 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:75 msgid "Zapret2 package is not installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9921 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10016 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:63 msgid "Zapret2 provider binary is available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9921 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10016 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:64 msgid "Zapret2 provider binary is not available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9946 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10041 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:106 msgid "Zapret2 sing-box outbound is configured" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9946 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10041 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:107 msgid "Zapret2 sing-box outbound is not configured" msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "DPI Detected" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "confidence" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Recommended" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Auto-apply best strategy" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Benchmark History" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Refresh" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Clear History" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "No benchmark history yet. Run a benchmark to see results here." -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Failed to load history" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Date" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "DPI Type" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Best Strategy" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Working" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Auto-applied best strategy" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Auto-apply failed" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Failed to detect DPI type" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Failed to auto-apply strategy" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "History cleared" -msgstr "" - -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js -msgid "Restrict LAN access for specific users" -msgstr "" - -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js -msgid "Blocks access to private/LAN IP addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, etc.) for selected users before applying routing mode." -msgstr "" - -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js -msgid "Restricted users (auth_user)" -msgstr "" - -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js -msgid "User names (e.g. from VLESS/Trojan/SS/JSON inbound users) that are forbidden from reaching LAN subnets. Leave empty to restrict all users on this inbound." -msgstr "" - diff --git a/fe-app-tachyon/locales/tachyon.ru.po b/fe-app-tachyon/locales/tachyon.ru.po index 22254200..b87e9de0 100644 --- a/fe-app-tachyon/locales/tachyon.ru.po +++ b/fe-app-tachyon/locales/tachyon.ru.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: TACHYON\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-27 13:54+0300\n" -"PO-Revision-Date: 2026-08-27 13:54+0300\n" +"POT-Creation-Date: 2026-08-29 13:56+0300\n" +"PO-Revision-Date: 2026-08-29 13:56+0300\n" "Last-Translator: Dushnilin\n" "Language-Team: none\n" "Language: ru\n" @@ -36,7 +36,7 @@ msgid "+ Add priority" msgstr "+ Добавить приоритет" msgid "+ Add Strategy" -msgstr "" +msgstr "+ Добавить стратегию" msgid "+ Add URLTest" msgstr "+ Добавить URLTest" @@ -63,10 +63,10 @@ msgid "⚡ DPI Strategy Fuzzer" msgstr "⚡ DPI Strategy Fuzzer" msgid "⚡ Fast (>1MB/s)" -msgstr "" +msgstr "⚡ Быстрые (>1 МБ/с)" msgid "⚡ QUIC / HTTP/3 (UDP 443)" -msgstr "" +msgstr "⚡ QUIC / HTTP/3 (UDP 443)" msgid "⚡ Quick Benchmark (Presets ~12-14)" msgstr "⚡ Быстрый бенчмарк (Пресеты ~12-14)" @@ -74,63 +74,75 @@ msgstr "⚡ Быстрый бенчмарк (Пресеты ~12-14)" msgid "⚡ Strategy Fuzzer & Auto-Tuner" msgstr "⚡ Подборщик стратегий и авто-тюнер" +msgid "✅ Auto-applied best strategy" +msgstr "✅ Лучшая стратегия применена автоматически" + msgid "✅ Benchmark completed! Optimal strategy identified." msgstr "✅ Бенчмарк завершен! Оптимальная стратегия определена." msgid "✅ Working only" -msgstr "" +msgstr "✅ Только рабочие" msgid "✈️ Telegram Suite (Web + Bot API)" -msgstr "" +msgstr "✈️ Telegram Suite (Web + Bot API)" msgid "✔ Online" -msgstr "" +msgstr "✔ В сети" msgid "✔ Running" msgstr "✔ Работает" msgid "✘ Offline" -msgstr "" +msgstr "✘ Не в сети" msgid "✘ Stopped" msgstr "✘ Остановлено" msgid "🌐 Custom Target URL..." -msgstr "" +msgstr "🌐 Пользовательский URL цели..." msgid "🎬 YouTube Suite (Web + 4K Stream)" -msgstr "" +msgstr "🎬 YouTube Suite (Web + 4K Stream)" msgid "🏆 Apply Best Match" -msgstr "" +msgstr "🏆 Применить наилучшую" msgid "🏴‍☠️ RuTracker Suite" -msgstr "" +msgstr "🏴‍☠️ RuTracker Suite" msgid "💬 Discord Suite (API + WSS + CDN)" -msgstr "" +msgstr "💬 Discord Suite (API + WSS + CDN)" msgid "💾 Save Custom Patterns" -msgstr "" +msgstr "💾 Сохранить пользовательские паттерны" msgid "📸 Instagram / Meta (Web + CDN)" -msgstr "" +msgstr "📸 Instagram / Meta (Web + CDN)" + +msgid "🔄 Refresh" +msgstr "🔄 Обновить" msgid "🔄 Reset to Factory Defaults" -msgstr "" +msgstr "🔄 Сбросить к заводским настройкам" msgid "🔍 Combinatorial Deep Fuzzing (~40-80+)" -msgstr "" +msgstr "🔍 Комбинаторный глубокий фаззинг (~40-80+)" msgid "🔑 Generate" msgstr "🔑 Сгенерировать" +msgid "🗑️ Clear History" +msgstr "🗑️ Очистить историю" + msgid "🧠 Synthesize with AI" msgstr "🧠 Сгенерировать через ИИ" msgid "🧠 Synthesizing..." msgstr "🧠 Генерация..." +msgid "🚀 Initializing benchmark in sandbox..." +msgstr "🚀 Инициализация бенчмарка в песочнице..." + msgid "🚀 Start Benchmark" msgstr "🚀 Начать бенчмарк" @@ -138,7 +150,7 @@ msgid "🛑 Stop Benchmark" msgstr "🛑 Остановить бенчмарк" msgid "🛠️ My Custom Strategies Only" -msgstr "" +msgstr "🛠️ Только мои стратегии" msgid "Accept external proxy connections and route them with sing-box." msgstr "Принимать внешние прокси-подключения и маршрутизировать их через sing-box." @@ -156,7 +168,7 @@ msgid "Action Mode" msgstr "Режим действия" msgid "Actions" -msgstr "" +msgstr "Действия" msgid "Active" msgstr "Активные" @@ -182,6 +194,9 @@ msgstr "Активный основной DNS" msgid "Active routes" msgstr "Активные маршруты" +msgid "Add a family profile" +msgstr "Добавить семейный профиль" + msgid "Add a schedule rule" msgstr "Добавить правило расписания" @@ -195,7 +210,7 @@ msgid "Add at least one DNS server" msgstr "Добавьте как минимум один DNS-сервер" msgid "Add Custom DPI Strategy" -msgstr "" +msgstr "Добавить стратегию DPI" msgid "Add prefix to nodes" msgstr "Добавить префикс к узлам" @@ -215,6 +230,9 @@ msgstr "Добавьте URL или локальные пути к списка msgid "Add URLTest / Priority group" msgstr "Добавить группу URLTest / Приоритет" +msgid "Additional Individual Devices (IP / MAC)" +msgstr "Дополнительные устройства (IP / MAC)" + msgid "Additional marking rules found" msgstr "Найдены дополнительные правила маркировки" @@ -288,10 +306,10 @@ msgid "AI Doctor Language" msgstr "Язык ИИ-доктора" msgid "AI Doctor RAG" -msgstr "" +msgstr "AI Doctor RAG" msgid "AI DPI Engineer & Strategy Synthesizer" -msgstr "" +msgstr "ИИ DPI-инженер и синтезатор стратегий" msgid "AI Model" msgstr "Модель ИИ" @@ -395,6 +413,9 @@ msgstr "ALPN" msgid "Alter ID" msgstr "Alter ID" +msgid "Always block these domains for all devices in this profile. Enter one domain per line or use category preset buttons." +msgstr "Всегда блокировать эти домены для всех устройств в этом профиле. Вводите по одному домену на строку или используйте кнопки категорий." + msgid "AmneziaWG config loaded successfully!" msgstr "Конфигурация AmneziaWG успешно загружена!" @@ -407,6 +428,12 @@ msgstr "Анонимизированный отчет скопирован в б msgid "Another component action is already running" msgstr "Другое действие уже выполняется" +msgid "Anti-Bypass (DoH)" +msgstr "Защита от обхода (DoH)" + +msgid "Anti-Bypass: Block Private DNS / DoH / DoT" +msgstr "Защита от обхода: блокировка Private DNS / DoH / DoT" + msgid "API Key for OpenAI (sk-...) or DeepSeek (optional for Ollama / LM Studio)" msgstr "API-ключ для OpenAI (sk-...) или DeepSeek (опционально для Ollama / LM Studio)" @@ -425,6 +452,9 @@ msgstr "Применять правила секции только к указ msgid "Apply Strategy To" msgstr "Применить стратегию к" +msgid "Apply this schedule rule to all devices in the selected family profile(s)." +msgstr "Применить это правило расписания ко всем устройствам в выбранных семейных профилях." + msgid "Applying fix" msgstr "Применение исправления" @@ -432,11 +462,14 @@ msgid "Applying..." msgstr "Применение..." msgid "Arguments" -msgstr "" +msgstr "Аргументы" msgid "Ask Tachyon AI Assistant a question..." msgstr "Задайте вопрос ИИ-ассистенту..." +msgid "Assigned Devices (MAC / IP)" +msgstr "Назначенные устройства (MAC / IP)" + msgid "At least one Admin Chat ID is required" msgstr "Требуется как минимум один Chat ID администратора" @@ -453,7 +486,7 @@ msgid "Auto" msgstr "Авто" msgid "Auto Modes (--auto)" -msgstr "" +msgstr "Авто-режимы (--auto)" msgid "Auto refresh" msgstr "Автообновление" @@ -461,6 +494,12 @@ msgstr "Автообновление" msgid "Auto update" msgstr "Автообновление" +msgid "Auto-apply best strategy" +msgstr "Авто-применение лучшей стратегии" + +msgid "Auto-apply failed" +msgstr "Авто-применение не удалось" + msgid "Auto-detected domains" msgstr "Автоопределённые домены" @@ -501,7 +540,7 @@ msgid "Automatically increase check intervals when healthy (to 5 min) and decrea msgstr "Автоматически увеличивать интервалы проверки при нормальном состоянии (до 5 мин) и уменьшать при проблемах (до 120с)." msgid "Automatically runs a diagnostic probe against the target service, queries the built-in DPI Knowledge Base, and synthesizes 3-5 custom bypass strategies tailored to your ISP." -msgstr "" +msgstr "Автоматически выполняет диагностический зонд целевого сервиса, опрашивает встроенную базу знаний DPI и синтезирует 3-5 стратегий обхода, адаптированных под вашего провайдера." msgid "Automatically select the fastest node in the current level" msgstr "Автовыбор самого быстрого узла уровня" @@ -534,7 +573,10 @@ msgid "Belarus (by)" msgstr "Беларусь (by)" msgid "Benchmark & Test" -msgstr "" +msgstr "Бенчмарк и тестирование" + +msgid "Benchmark History" +msgstr "История бенчмарков" msgid "Benchmark stopped" msgstr "Бенчмарк остановлен" @@ -542,6 +584,9 @@ msgstr "Бенчмарк остановлен" msgid "Benchmarking in progress..." msgstr "Выполняется бенчмарк..." +msgid "Best Strategy" +msgstr "Лучшая стратегия" + msgid "BitTorrent / P2P" msgstr "BitTorrent / P2P" @@ -557,8 +602,8 @@ msgstr "Блокировать на уровне DNS" msgid "Block in interval" msgstr "Блокируется в интервале" -msgid "Block internet access or specific proxy sections for individual devices based on time and days." -msgstr "Блокировка доступа в интернет или определенных секций маршрутизации для отдельных устройств по времени и дням недели." +msgid "Block internet access or specific proxy sections for family profiles or individual devices based on time and days." +msgstr "Блокировка доступа в интернет или определенных секций прокси для семейных профилей или отдельных устройств по времени и дням недели." msgid "Block listed sites (Standard)" msgstr "Блокировать перечисленные сайты (стандартно)" @@ -578,6 +623,12 @@ msgstr "Заблокированные сайты" msgid "Blocked Sites (Domains)" msgstr "Заблокированные сайты (домены)" +msgid "Blocks access to private/LAN IP addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, etc.) for selected users before applying routing mode." +msgstr "Блокирует доступ к приватным/локальным IP-адресам (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 и др.) для указанных пользователей перед применением режима маршрутизации." + +msgid "Blocks port 853 (DNS-over-TLS) and prevents bypass via encrypted DNS or Private Relay on smartphones for devices in this profile." +msgstr "Блокирует порт 853 (DNS-over-TLS) и предотвращает обход через шифрованный DNS или Private Relay на смартфонах для устройств этого профиля." + msgid "Bootstrap DNS" msgstr "Bootstrap DNS" @@ -743,9 +794,15 @@ msgstr "Проверки пройдены" msgid "Checks passed with manual DHCP" msgstr "Проверки пройдены с ручным DHCP" +msgid "Child (🧒)" +msgstr "Ребёнок (🧒)" + msgid "China (cn)" msgstr "Китай (cn)" +msgid "Choose a visual icon for this profile" +msgstr "Выберите визуальную иконку для профиля" + msgid "Choose Hosts File..." msgstr "Выбрать файл Hosts..." @@ -834,7 +891,7 @@ msgid "Comma-separated list of Telegram user IDs authorized to control the bot." msgstr "Список Telegram user ID через запятую, авторизованных для управления ботом." msgid "Command-line arguments string..." -msgstr "" +msgstr "Строка аргументов командной строки..." msgid "Community Lists" msgstr "Community-списки" @@ -857,6 +914,9 @@ msgstr "Параллелизм" msgid "Conditions" msgstr "Условия" +msgid "confidence" +msgstr "уверенность" + msgid "Config File Path" msgstr "Путь к файлу конфигурации" @@ -936,7 +996,7 @@ msgid "Currently unavailable" msgstr "Временно недоступно" msgid "Custom" -msgstr "" +msgstr "Пользовательский" msgid "Custom API Endpoint URL" msgstr "Пользовательский URL эндпоинта API" @@ -963,7 +1023,7 @@ msgid "Custom header for handshake response" msgstr "Пользовательский заголовок для ответа рукопожатия" msgid "Custom interface/section" -msgstr "" +msgstr "Пользовательский интерфейс/секция" msgid "Custom OpenAI-Compatible API" msgstr "Пользовательский OpenAI-совместимый API" @@ -975,11 +1035,14 @@ msgid "Custom outbound configurations in JSON format" msgstr "Пользовательские конфигурации outbound в формате JSON" msgid "Custom strategy added!" -msgstr "" +msgstr "Пользовательская стратегия добавлена!" msgid "Daily Quota" msgstr "Дневная квота" +msgid "Daily Screen Time Quota (minutes)" +msgstr "Дневная квота экранного времени (минуты)" + msgid "Daily time quota (minutes)" msgstr "Дневной лимит времени (минуты)" @@ -989,6 +1052,9 @@ msgstr "Панель управления" msgid "Dashboard currently unavailable" msgstr "Дашборд сейчас недоступен" +msgid "Date" +msgstr "Дата" + msgid "Days of Week" msgstr "Дни недели" @@ -1025,8 +1091,8 @@ msgstr "Обнаруживает и отбрасывает пакеты STUN/TUR msgid "detour must be a non-empty string" msgstr "detour должен быть непустой строкой" -msgid "Device / IP / MAC" -msgstr "Устройство / IP / MAC" +msgid "dev." +msgstr "устр." msgid "Device filter" msgstr "Фильтр устройств" @@ -1043,6 +1109,9 @@ msgstr "Устройство или IP" msgid "Device updated" msgstr "Режим устройства обновлен" +msgid "Devices (MAC / IP)" +msgstr "Устройства (MAC / IP)" + msgid "Devices listed here are always routed through the assigned section, regardless of global rules." msgstr "Устройства из этого списка всегда маршрутизируются через назначенную секцию, независимо от глобальных правил." @@ -1086,7 +1155,7 @@ msgid "Disabling interception is incompatible with action=zapret2 because Tachyo msgstr "Отключение перехвата несовместимо с action=zapret2, потому что Tachyon направляет совпавший трафик через NFQUEUE." msgid "Disorder Values (-d)" -msgstr "" +msgstr "Значения Disorder (-d)" msgid "Display name" msgstr "Отображаемое имя" @@ -1271,9 +1340,15 @@ msgstr "Загружено" msgid "Downloading and applying rule sets and lists..." msgstr "Загрузка и применение наборов правил и списков..." +msgid "DPI Detected" +msgstr "DPI обнаружен" + msgid "DPI Engine" msgstr "Движок DPI" +msgid "DPI Type" +msgstr "Тип DPI" + msgid "Drag rows to change priority. The rule at the top is checked first." msgstr "Перетащите строки для изменения приоритета. Правило вверху проверяется первым." @@ -1292,6 +1367,12 @@ msgstr "напр. AES-256-GCM — оставьте пустым для знач msgid "e.g. google.com, 1.1.1.1, 443" msgstr "напр. google.com, 1.1.1.1, 443" +msgid "e.g. Kids" +msgstr "напр. Дети" + +msgid "e.g. Kids (Alice & Tim), Teenager, School PC, Guests" +msgstr "напр. Дети (Алиса и Тимур), Подросток, Школьный ПК, Гости" + msgid "e.g. Kids Phone (Night YouTube)" msgstr "например, Телефон ребенка (YouTube на ночь)" @@ -1406,8 +1487,11 @@ msgstr "Конец интервала расписания (например, 08 msgid "End Time (HH:MM)" msgstr "Время окончания (ЧЧ:ММ)" +msgid "Enforce SafeSearch & YouTube Restricted Mode" +msgstr "Безопасный поиск (SafeSearch) и строгий режим YouTube" + msgid "Engine" -msgstr "" +msgstr "Движок" msgid "Enter a complete sing-box inbound object" msgstr "Введите полный JSON объект inbound для sing-box" @@ -1508,6 +1592,12 @@ msgstr "Не удалось применить исправление" msgid "Failed to apply strategy" msgstr "Не удалось применить стратегию" +msgid "Failed to auto-apply strategy" +msgstr "Не удалось автоматически применить стратегию" + +msgid "Failed to clear fuzzer history" +msgstr "Не удалось очистить историю фаззера" + msgid "Failed to close connection" msgstr "Не удалось закрыть подключение" @@ -1526,6 +1616,9 @@ msgstr "Не удалось скопировать!" msgid "Failed to delete snapshot" msgstr "Не удалось удалить снапшот" +msgid "Failed to detect DPI type" +msgstr "Не удалось определить тип DPI" + msgid "Failed to execute" msgstr "Не удалось выполнить" @@ -1535,14 +1628,20 @@ msgstr "Не удалось создать отчёт об ошибке" msgid "Failed to generate WARP config:" msgstr "Не удалось сгенерировать конфигурацию WARP:" +msgid "Failed to get fuzzer history" +msgstr "Не удалось получить историю фаззера" + msgid "Failed to get fuzzer patterns" -msgstr "" +msgstr "Не удалось получить паттерны фаззера" msgid "Failed to get fuzzer status" -msgstr "" +msgstr "Не удалось получить статус фаззера" msgid "Failed to get fuzzer strategies" -msgstr "" +msgstr "Не удалось получить стратегии фаззера" + +msgid "Failed to load history" +msgstr "Не удалось загрузить историю" msgid "Failed to load snapshots" msgstr "Не удалось загрузить снапшоты" @@ -1563,7 +1662,7 @@ msgid "Failed to receive response from AI service." msgstr "Не удалось получить ответ от ИИ-сервиса." msgid "Failed to reset fuzzer patterns" -msgstr "" +msgstr "Не удалось сбросить паттерны фаззера" msgid "Failed to reset settings" msgstr "Не удалось сбросить настройки" @@ -1587,10 +1686,10 @@ msgid "Failed to save DNS Turbo Cache" msgstr "Не удалось сохранить DNS Turbo Cache" msgid "Failed to save fuzzer patterns" -msgstr "" +msgstr "Не удалось сохранить паттерны фаззера" msgid "Failed to save patterns" -msgstr "" +msgstr "Не удалось сохранить паттерны" msgid "Failed to save Smart Detect settings" msgstr "Ошибка сохранения настроек Smart Detect" @@ -1605,7 +1704,7 @@ msgid "Failed to start bot" msgstr "Не удалось запустить бота" msgid "Failed to start fuzzer" -msgstr "" +msgstr "Не удалось запустить фаззер" msgid "Failed to start service check." msgstr "Не удалось запустить проверку сервисов." @@ -1617,7 +1716,7 @@ msgid "Failed to stop bot" msgstr "Не удалось остановить бота" msgid "Failed to stop fuzzer" -msgstr "" +msgstr "Не удалось остановить фаззер" msgid "Failed to stop watchdog" msgstr "Не удалось остановить watchdog" @@ -1652,6 +1751,15 @@ msgstr "FakeTLS host" msgid "Fallback on unknown DC" msgstr "Fallback при неизвестном DC" +msgid "Family (🏠)" +msgstr "Семья (🏠)" + +msgid "Family Profile" +msgstr "Семейный профиль" + +msgid "Family Profiles" +msgstr "Семейные профили" + msgid "Faster DNS health monitoring than the default cycle. Switches bootstrap DNS on failure." msgstr "Более быстрый мониторинг состояния DNS, чем стандартный цикл. Переключает bootstrap DNS при сбое." @@ -1668,7 +1776,7 @@ msgid "Filter the servers that will be displayed on the dashboard." msgstr "Фильтровать серверы, отображаемые на дашборде." msgid "Filter:" -msgstr "" +msgstr "Фильтр:" msgid "Finland (fi)" msgstr "Финляндия (fi)" @@ -1692,10 +1800,10 @@ msgid "Flush Conntrack Table" msgstr "Очистить таблицу соед. (conntrack)" msgid "Fooling Methods (dpi-desync-fooling)" -msgstr "" +msgstr "Методы спуфинга (dpi-desync-fooling)" msgid "Fooling Methods (fooling)" -msgstr "" +msgstr "Методы спуфинга (fooling)" msgid "Force immediate download and refresh of all remote lists and rule sets" msgstr "Принудительно скачать и обновить все удаленные списки и наборы правил" @@ -1703,6 +1811,9 @@ msgstr "Принудительно скачать и обновить все у msgid "Forced device routing" msgstr "Принудительная маршрутизация устройств" +msgid "Forces SafeSearch on Google, Yandex, Bing, DuckDuckGo and Strict Restricted Mode on YouTube via DNS rewrite for all devices in this profile." +msgstr "Принудительно включает безопасный поиск в Google, Яндекс, Bing, DuckDuckGo и строгий ограниченный режим на YouTube через подмену DNS для всех устройств профиля." + msgid "Forces sing-box to tunnel DNS requests via DoQ with Encrypted Client Hello (ECH) for SNI hiding." msgstr "Принудительно направлять DNS-запросы через DoQ с Encrypted Client Hello (ECH) для скрытия SNI." @@ -1736,6 +1847,9 @@ msgstr "IP игровых консолей" msgid "Game Console Optimizer (NAT Type 1)" msgstr "Оптимизатор игровых консолей (NAT Type 1)" +msgid "Gamer (🎮)" +msgstr "Геймер (🎮)" + msgid "Gaming" msgstr "Игры" @@ -1791,7 +1905,10 @@ msgid "Global check failed" msgstr "Не удалось выполнить глобальную проверку" msgid "Global Default" -msgstr "" +msgstr "Глобально по умолчанию" + +msgid "Group devices into family profiles to manage content filtering, SafeSearch, and screen time limits in one place." +msgstr "Группируйте устройства в семейные профили для централизованного управления фильтрацией сайтов, безопасным поиском и лимитами экранного времени." msgid "gRPC service" msgstr "Сервис gRPC" @@ -1862,6 +1979,9 @@ msgstr "Проверка DNS с более высоким приоритетом msgid "History" msgstr "История" +msgid "History cleared" +msgstr "История очищена" + msgid "Host" msgstr "Хост" @@ -2253,7 +2373,7 @@ msgid "IP Addresses (IP CIDR)" msgstr "IP-адреса (IP CIDR)" msgid "IP Frag Bounds (--ip-frag)" -msgstr "" +msgstr "Границы фрагментации IP (--ip-frag)" msgid "IPs" msgstr "IP" @@ -2363,6 +2483,9 @@ msgstr "Устройства LAN" msgid "Language for AI Doctor diagnosis responses" msgstr "Язык ответов диагностики ИИ-доктора" +msgid "Laptop / PC (💻)" +msgstr "Ноутбук / ПК (💻)" + msgid "Latency test failed" msgstr "Проверка задержки не удалась" @@ -2565,10 +2688,10 @@ msgid "Must be a number in the range of 0 - 10000" msgstr "Должно быть числом в диапазоне 0 - 10000" msgid "My Strategies" -msgstr "" +msgstr "Мои стратегии" msgid "Name" -msgstr "" +msgstr "Имя" msgid "Name displayed on the dashboard" msgstr "Имя, отображаемое на дашборде" @@ -2633,8 +2756,11 @@ msgstr "Активные устройства в локальной сети н msgid "No active routing sections found." msgstr "Активные секции маршрутизации не найдены." +msgid "No benchmark history yet. Run a benchmark to see results here." +msgstr "История бенчмарков пуста. Запустите бенчмарк, чтобы увидеть результаты здесь." + msgid "No benchmark results yet. Configure options and click \"Start Benchmark\"." -msgstr "" +msgstr "Результатов бенчмарка пока нет. Настройте параметры и нажмите «Запустить бенчмарк»." msgid "No check targets found in the configuration." msgstr "Цели для проверки не найдены в конфигурации." @@ -2649,7 +2775,13 @@ msgid "No Custom Rules Matched" msgstr "Нет совпадений с пользовательскими правилами" msgid "No custom strategies added yet." -msgstr "" +msgstr "Пользовательские стратегии пока не добавлены." + +msgid "no devices" +msgstr "нет устройств" + +msgid "No devices assigned" +msgstr "Устройства не назначены" msgid "No DHCP clients detected" msgstr "DHCP-клиенты не обнаружены" @@ -2694,7 +2826,7 @@ msgid "No snapshots yet" msgstr "Снапшотов пока нет" msgid "No strategies match the active filter." -msgstr "" +msgstr "Нет стратегий, соответствующих выбранному фильтру." msgid "Node list is empty" msgstr "Список узлов пуст" @@ -2808,7 +2940,7 @@ msgid "Only the specified servers." msgstr "Только указанные серверы." msgid "OOB Values (-o)" -msgstr "" +msgstr "Значения OOB (-o)" msgid "Open" msgstr "Открыть" @@ -2856,7 +2988,7 @@ msgid "Optional — leave empty for default" msgstr "Опционально — оставьте пустым для значения по умолчанию" msgid "Optional context (e.g. \"Rostelecom, YouTube 4K buffering is slow\")..." -msgstr "" +msgstr "Дополнительный контекст (напр. «Ростелеком, YouTube 4K долго буферизуется»)..." msgid "Optional for local LLM" msgstr "Опционально для локальных LLM" @@ -2870,11 +3002,14 @@ msgstr "Опциональные значения должны быть прис msgid "Optional values must be attached with '=' here; a separate token would be ignored by nfqws2." msgstr "Опциональные значения должны быть присоединены через '=' здесь; отдельный токен будет игнорироваться nfqws2." +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." + msgid "Or paste hosts file content:" msgstr "Или вставьте содержимое файла hosts:" msgid "Other peers" -msgstr "" +msgstr "Другие пиры" msgid "outbounds must be a non-empty array of strings" msgstr "outbounds должен быть непустым массивом строк" @@ -2925,19 +3060,19 @@ msgid "Path must end with cache.db" msgstr "Путь должен заканчиваться на cache.db" msgid "Pattern Builder" -msgstr "" +msgstr "Конструктор паттернов" msgid "Patterns reset to defaults!" -msgstr "" +msgstr "Паттерны сброшены к значениям по умолчанию!" msgid "Patterns reset to factory defaults" -msgstr "" +msgstr "Паттерны сброшены к заводским настройкам" msgid "Patterns saved successfully" -msgstr "" +msgstr "Паттерны успешно сохранены" msgid "Patterns saved successfully!" -msgstr "" +msgstr "Паттерны успешно сохранены!" msgid "Pause updates" msgstr "Приостановить обновление" @@ -2984,6 +3119,12 @@ msgstr "Постоянный Keepalive" msgid "Persistent Smart Detect" msgstr "Постоянное умное определение" +msgid "Pets / IoT (🐾)" +msgstr "Питомцы / IoT (🐾)" + +msgid "Phone (📱)" +msgstr "Смартфон (📱)" + msgid "Pin on dashboard" msgstr "Закрепить на дашборде" @@ -2991,7 +3132,7 @@ msgid "Pin P2P isolation to the torrent client's own ports, comma separated. Eac msgstr "Закрепить изоляцию P2P за портами торрент-клиента, через запятую. Каждая запись — \"протокол\", \"протокол:порт\" или \"протокол:порт-порт\" (tcp/udp). Без порта весь протокол уходит напрямую." msgid "Please specify strategy name and arguments" -msgstr "" +msgstr "Пожалуйста, укажите имя стратегии и аргументы" msgid "Polling Interval (seconds)" msgstr "Интервал опроса (секунды)" @@ -3047,6 +3188,9 @@ msgstr "Предпочитаемый IP" msgid "Prefix text" msgstr "Текст префикса" +msgid "Preparing strategies and isolated nftables queue..." +msgstr "Подготовка стратегий и изолированной очереди nftables..." + msgid "Preshared Key" msgstr "Предварительный общий ключ" @@ -3074,6 +3218,21 @@ msgstr "Настройки приоритета" msgid "Private Key" msgstr "Приватный ключ" +msgid "Profile" +msgstr "Профиль" + +msgid "Profile / Devices" +msgstr "Профиль / Устройства" + +msgid "Profile Blocked Sites (24/7)" +msgstr "Заблокированные сайты профиля (24/7)" + +msgid "Profile Icon / Avatar" +msgstr "Иконка профиля / Аватар" + +msgid "Profile Name" +msgstr "Имя профиля" + msgid "Protection" msgstr "Защита" @@ -3120,7 +3279,7 @@ msgid "QUIC (HTTP/3)" msgstr "QUIC (HTTP/3)" msgid "RAG Knowledge Base + Live ISP Probe Context" -msgstr "" +msgstr "База знаний RAG + результаты живого зондирования провайдера" msgid "RDP" msgstr "RDP" @@ -3155,6 +3314,9 @@ msgstr "Пересобрать правила firewall" msgid "Rebuilt release" msgstr "Пересобранный релиз" +msgid "Recommended" +msgstr "Рекомендовано" + msgid "Recommended Quick Fixes:" msgstr "Рекомендуемые исправления:" @@ -3308,6 +3470,12 @@ msgstr "Восстанавливает заводские настройки Tac msgid "Restoring native direct internet (stopping Tachyon)..." msgstr "Восстановление прямого интернета (остановка Tachyon)..." +msgid "Restrict LAN access for specific users" +msgstr "Ограничить доступ к локальной сети для отдельных пользователей" + +msgid "Restricted users (auth_user)" +msgstr "Изолированные пользователи (auth_user)" + msgid "Resume updates" msgstr "Продолжить обновление" @@ -3399,7 +3567,7 @@ msgid "Running" msgstr "Запущен" msgid "Running benchmarks..." -msgstr "" +msgstr "Выполняется тестирование..." msgid "Running diagnostics…" msgstr "Выполняется диагностика…" @@ -3407,6 +3575,9 @@ msgstr "Выполняется диагностика…" msgid "Russia (ru)" msgstr "Россия (ru)" +msgid "SafeSearch" +msgstr "SafeSearch" + msgid "Sat" msgstr "Сб" @@ -3471,7 +3642,7 @@ msgid "Section name" msgstr "Имя секции" msgid "Section or tunnel interface used for Cloudflare WARP API registration. Supports Connection, WireGuard, AmneziaWG, and Interface sections. Leave empty to use direct WAN / default mixed proxy." -msgstr "" +msgstr "Секция или туннельный интерфейс для регистрации Cloudflare WARP API. Поддерживает секции Connection, WireGuard, AmneziaWG и Interface. Оставьте пустым для прямого WAN / стандартного mixed proxy." msgid "Section Rules Content" msgstr "Содержимое правил секции" @@ -3533,8 +3704,8 @@ msgstr "Выберите и упорядочите секции, через ко msgid "Select DNS protocol to use" msgstr "Выберите протокол DNS" -msgid "Select LAN devices to apply this schedule to, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes. IP addresses (e.g. 192.168.1.150) are used for DNS-level blocking and require a stable lease." -msgstr "Выберите устройства из локальной сети, либо укажите IP или MAC-адреса вручную. MAC-адреса (например AA:BB:CC:DD:EE:FF) работают даже если IP устройства меняется. IP-адреса (например 192.168.1.150) используются для блокировки на уровне DNS и требуют стабильного адреса." +msgid "Select LAN devices to assign to this profile, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes via DHCP." +msgstr "Выберите устройства из локальной сети или введите IP/MAC-адреса вручную. MAC-адреса (напр. AA:BB:CC:DD:EE:FF) сохраняют привязку при смене IP через DHCP." msgid "Select network interface for VPN connection" msgstr "Выберите интерфейс для VPN-подключения" @@ -3608,8 +3779,11 @@ msgstr "Отправлять уведомление в Telegram при пере msgid "Send a Telegram notification when proxy subscriptions are successfully updated." msgstr "Отправлять уведомление в Telegram при успешном обновлении подписок прокси." +msgid "Send Telegram alerts to parents when daily screen time is exhausted or blocked sites are accessed." +msgstr "Отправлять уведомления родителям в Telegram при исчерпании экранного времени или попытке открыть заблокированные сайты." + msgid "Sequence Overlaps (seqovl)" -msgstr "" +msgstr "Перекрытия последовательностей (seqovl)" msgid "Server" msgstr "Сервер" @@ -3767,6 +3941,9 @@ msgstr "Версия Sing-box совместима (новее 1.12.4)" msgid "Singapore (sg)" msgstr "Сингапур (sg)" +msgid "sites" +msgstr "сайтов" + msgid "Skip loopback & local entries (127.0.0.1, ::1, 0.0.0.0, localhost)" msgstr "Пропустить loopback и локальные записи (127.0.0.1, ::1, 0.0.0.0, localhost)" @@ -3831,16 +4008,16 @@ msgid "Speed" msgstr "Скорость" msgid "Split Modes (dpi-desync)" -msgstr "" +msgstr "Режимы разделения (dpi-desync)" msgid "Split Positions (dpi-desync-split-pos)" -msgstr "" +msgstr "Позиции разделения (dpi-desync-split-pos)" msgid "Split Positions (pos)" -msgstr "" +msgstr "Позиции разделения (pos)" msgid "Split Values (-s)" -msgstr "" +msgstr "Значения сплита (-s)" msgid "SSH" msgstr "SSH" @@ -3878,6 +4055,9 @@ msgstr "Отдельная служба Zapret2 активна" msgid "Standalone Zapret2 service is inactive" msgstr "Отдельная служба Zapret2 неактивна" +msgid "Standard" +msgstr "Стандартный" + msgid "Start" msgstr "Старт" @@ -3903,13 +4083,13 @@ msgid "Starting…" msgstr "Запуск…" msgid "State" -msgstr "" +msgstr "Состояние" msgid "Status" msgstr "Статус" msgid "Status / Suite" -msgstr "" +msgstr "Статус / Набор" msgid "Stop" msgstr "Стоп" @@ -3939,10 +4119,13 @@ msgid "Strategy benchmark started" msgstr "Бенчмарк стратегий запущен" msgid "Strategy deleted" -msgstr "" +msgstr "Стратегия удалена" msgid "Strategy Name" -msgstr "" +msgstr "Имя стратегии" + +msgid "Strict (🔒)" +msgstr "Строгий (🔒)" msgid "Strict ECH + DoQ DNS Enforcer" msgstr "Строгий ECH + DoQ DNS Enforcer" @@ -4071,7 +4254,7 @@ msgid "Tailscale" msgstr "Tailscale" msgid "Tailscale auth key" -msgstr "" +msgstr "Ключ авторизации Tailscale" msgid "Tailscale control URL" msgstr "Control URL Tailscale" @@ -4088,17 +4271,26 @@ msgstr "Режим Tailscale" msgid "Target" msgstr "Цель" -msgid "Target Devices (IP / MAC)" -msgstr "Целевые устройства (IP / MAC)" +msgid "Target Family Profiles" +msgstr "Семейные профили" msgid "Target Scope" msgstr "Область действия" msgid "Target Service / Suite" -msgstr "" +msgstr "Целевой сервис / Набор" msgid "TCP Window Sizes (wsize)" -msgstr "" +msgstr "Размеры окна TCP (wsize)" + +msgid "Teen (🧑)" +msgstr "Подросток (🧑)" + +msgid "Telegram" +msgstr "Telegram" + +msgid "Telegram Alerts" +msgstr "Оповещения в Telegram" msgid "Telegram Bot" msgstr "Telegram Бот" @@ -4136,6 +4328,9 @@ msgstr "Тестировать серверы, чьи имена соответ msgid "Test Telegram Connection" msgstr "Проверить подключение к Telegram" +msgid "Testing bypass strategies in isolated sandbox..." +msgstr "Тестирование стратегий обхода в изолированной песочнице..." + msgid "Testing strategy" msgstr "Тестирование стратегии" @@ -4197,7 +4392,7 @@ msgid "This option requires a value." msgstr "Этот параметр требует значение." msgid "This router" -msgstr "" +msgstr "Этот роутер" msgid "This will erase all Tachyon settings and restore the factory defaults. The service will restart. This action cannot be undone." msgstr "Все настройки Tachyon будут удалены и восстановлены заводские значения. Сервис будет перезапущен. Это действие нельзя отменить." @@ -4236,7 +4431,10 @@ msgid "TLS SNI" msgstr "TLS SNI" msgid "TLS-Rec Bounds (--tlsrec)" -msgstr "" +msgstr "Границы записей TLS (--tlsrec)" + +msgid "Toddler (👶)" +msgstr "Малыш (👶)" msgid "Token is required when the bot is enabled" msgstr "Токен обязателен, когда бот включён" @@ -4247,6 +4445,9 @@ msgstr "Допуск" msgid "Top level has the highest priority; lower levels are used as fallback" msgstr "Верхний уровень имеет наивысший приоритет; нижние уровни используются как запасные" +msgid "Total allowed network usage per day for devices in this profile. When the quota is reached, access is blocked until midnight. Enter 0 for unlimited." +msgstr "Суммарное разрешенное время работы в сети в день для устройств этого профиля. По исчерпании лимита доступ блокируется до полуночи. Введите 0 для отсутствия ограничений." + msgid "Total lines:" msgstr "Всего строк:" @@ -4320,10 +4521,10 @@ msgid "TTL value cannot be empty" msgstr "Значение TTL не может быть пустым" msgid "TTL Values (dpi-desync-ttl)" -msgstr "" +msgstr "Значения TTL (dpi-desync-ttl)" msgid "TTL Values (ttl)" -msgstr "" +msgstr "Значения TTL (ttl)" msgid "Tue" msgstr "Вт" @@ -4421,6 +4622,9 @@ msgstr "Неизвестный флаг NFQWS." msgid "Unknown NFQWS2 flag." msgstr "Неизвестный флаг NFQWS2." +msgid "Unlimited" +msgstr "Без ограничений" + msgid "Unspecified IP address is not allowed" msgstr "Неуказанный IP-адрес не разрешён" @@ -4560,7 +4764,10 @@ msgid "Used by" msgstr "Используется" msgid "User custom strategy" -msgstr "" +msgstr "Пользовательская стратегия" + +msgid "User names (e.g. from VLESS/Trojan/SS/JSON inbound users) that are forbidden from reaching LAN subnets. Leave empty to restrict all users on this inbound." +msgstr "Имена пользователей (например, из пользователей VLESS/Trojan/SS/JSON inbound), которым запрещен доступ к подсетям LAN. Оставьте пустым, чтобы ограничить всех пользователей данного inbound." msgid "User-Agent" msgstr "User-Agent" @@ -4679,6 +4886,9 @@ msgstr "Приватный ключ WireGuard из вашего аккаунта msgid "WireGuard private key from your Cloudflare WARP account" msgstr "Приватный ключ WireGuard из вашего аккаунта Cloudflare WARP" +msgid "Working" +msgstr "Рабочих" + msgid "XHTTP mode" msgstr "Режим XHTTP" @@ -4739,6 +4949,18 @@ msgstr "sing-box outbound для Zapret2 настроен" msgid "Zapret2 sing-box outbound is not configured" msgstr "sing-box outbound для Zapret2 не настроен" +msgid "Block internet access or specific proxy sections for individual devices based on time and days." +msgstr "Блокировка доступа в интернет или определенных секций маршрутизации для отдельных устройств по времени и дням недели." + +msgid "Device / IP / MAC" +msgstr "Устройство / IP / MAC" + +msgid "Select LAN devices to apply this schedule to, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes. IP addresses (e.g. 192.168.1.150) are used for DNS-level blocking and require a stable lease." +msgstr "Выберите устройства из локальной сети, либо укажите IP или MAC-адреса вручную. MAC-адреса (например AA:BB:CC:DD:EE:FF) работают даже если IP устройства меняется. IP-адреса (например 192.168.1.150) используются для блокировки на уровне DNS и требуют стабильного адреса." + +msgid "Target Devices (IP / MAC)" +msgstr "Целевые устройства (IP / MAC)" + msgid "🏆 Apply Best Strategy" msgstr "🏆 Применить лучшую стратегию" @@ -5093,69 +5315,8 @@ msgstr "Восстановление прямого интернета..." msgid "Find optimal DPI bypass strategies with isolated live probing" msgstr "Автоматический подбор оптимальных параметров обхода DPI в изолированном сэндбоксе" -msgid "DPI Detected" -msgstr "DPI обнаружен" - -msgid "confidence" -msgstr "уверенность" - -msgid "Recommended" -msgstr "Рекомендовано" - -msgid "Auto-apply best strategy" -msgstr "Авто-применение лучшей стратегии" - -msgid "Benchmark History" -msgstr "История бенчмарков" - -msgid "Refresh" -msgstr "Обновить" - msgid "Clear History" msgstr "Очистить историю" -msgid "No benchmark history yet. Run a benchmark to see results here." -msgstr "История бенчмарков пуста. Запустите бенчмарк, чтобы увидеть результаты здесь." - -msgid "Failed to load history" -msgstr "Не удалось загрузить историю" - -msgid "Date" -msgstr "Дата" - -msgid "DPI Type" -msgstr "Тип DPI" - -msgid "Best Strategy" -msgstr "Лучшая стратегия" - -msgid "Working" -msgstr "Рабочих" - msgid "Auto-applied best strategy" msgstr "Лучшая стратегия автоматически применена" - -msgid "Auto-apply failed" -msgstr "Авто-применение не удалось" - -msgid "Failed to detect DPI type" -msgstr "Не удалось определить тип DPI" - -msgid "Failed to auto-apply strategy" -msgstr "Не удалось автоматически применить стратегию" - -msgid "History cleared" -msgstr "История очищена" - -msgid "Restrict LAN access for specific users" -msgstr "Ограничить доступ к локальной сети для отдельных пользователей" - -msgid "Blocks access to private/LAN IP addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, etc.) for selected users before applying routing mode." -msgstr "Блокирует доступ к приватным/локальным IP-адресам (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 и др.) для указанных пользователей перед применением режима маршрутизации." - -msgid "Restricted users (auth_user)" -msgstr "Изолированные пользователи (auth_user)" - -msgid "User names (e.g. from VLESS/Trojan/SS/JSON inbound users) that are forbidden from reaching LAN subnets. Leave empty to restrict all users on this inbound." -msgstr "Имена пользователей (например, из пользователей VLESS/Trojan/SS/JSON inbound), которым запрещен доступ к подсетям LAN. Оставьте пустым, чтобы ограничить всех пользователей данного inbound." - diff --git a/fe-app-tachyon/package-lock.json b/fe-app-tachyon/package-lock.json index cae786a8..aadbb588 100644 --- a/fe-app-tachyon/package-lock.json +++ b/fe-app-tachyon/package-lock.json @@ -1,12 +1,12 @@ { "name": "fe-app-tachyon", - "version": "1.2.47", + "version": "1.3.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "fe-app-tachyon", - "version": "1.2.47", + "version": "1.3.6", "license": "MIT", "devDependencies": { "@babel/parser": "7.28.4", diff --git a/fe-app-tachyon/package.json b/fe-app-tachyon/package.json index 49925bd3..db7856fc 100644 --- a/fe-app-tachyon/package.json +++ b/fe-app-tachyon/package.json @@ -1,6 +1,6 @@ { "name": "fe-app-tachyon", - "version": "1.2.77", + "version": "1.3.6", "license": "MIT", "type": "module", "scripts": { diff --git a/fe-app-tachyon/src/partials/modal/styles.ts b/fe-app-tachyon/src/partials/modal/styles.ts index a47881f1..5c593cda 100644 --- a/fe-app-tachyon/src/partials/modal/styles.ts +++ b/fe-app-tachyon/src/partials/modal/styles.ts @@ -1,12 +1,19 @@ // language=CSS export const styles = ` -.tachyon-partial-modal__body {} +.tachyon-partial-modal__body { + width: 100%; + box-sizing: border-box; +} .tachyon-partial-modal__content { - max-height: 70vh; - overflow: scroll; + max-height: 75vh; + overflow-y: auto; + overflow-x: hidden; + -webkit-overflow-scrolling: touch; border-radius: 4px; + box-sizing: border-box; + width: 100%; } .tachyon-partial-modal__footer { @@ -33,4 +40,23 @@ export const styles = ` .tachyon-partial-modal__checkbox-text { line-height: 1.2; } + +@media (max-width: 640px) { + .tachyon-partial-modal__content { + max-height: 82vh; + } + .tachyon-partial-modal__footer { + flex-direction: column-reverse; + align-items: stretch; + } + .tachyon-partial-modal__footer button { + width: 100%; + min-height: 38px; + } + .tachyon-partial-modal__checkbox { + margin-right: 0; + margin-bottom: 6px; + width: 100%; + } +} `; diff --git a/fe-app-tachyon/src/styles.ts b/fe-app-tachyon/src/styles.ts index 3fc475a1..e91b82dc 100644 --- a/fe-app-tachyon/src/styles.ts +++ b/fe-app-tachyon/src/styles.ts @@ -163,4 +163,46 @@ ${PartialStyles} opacity: 1; transform: translateY(0); } + +/* Global Mobile & Responsive Layout Enhancements */ +@media (max-width: 768px) { + .cbi-section-table { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + border-collapse: collapse; + } + + .cbi-section-table-cell { + min-width: 0; + word-break: break-word; + overflow-wrap: anywhere; + } + + .cbi-section-actions { + display: flex; + flex-wrap: wrap; + gap: 6px; + } + + .cbi-dropdown { + max-width: 100%; + } + + .cbi-input-textarea, + .cbi-input-text, + .cbi-input-select { + max-width: 100%; + box-sizing: border-box; + } + + /* Modal responsiveness */ + .modal, + .cbi-modal { + max-width: 96vw !important; + box-sizing: border-box; + margin: 10px auto; + } +} `; diff --git a/fe-app-tachyon/src/tachyon/methods/shell/index.ts b/fe-app-tachyon/src/tachyon/methods/shell/index.ts index ed27f30e..d7234d16 100644 --- a/fe-app-tachyon/src/tachyon/methods/shell/index.ts +++ b/fe-app-tachyon/src/tachyon/methods/shell/index.ts @@ -1420,10 +1420,7 @@ export const TachyonShellMethods = { getFuzzerHistory: async (limit?: number) => { const response = await executeShellCommand({ command: '/usr/bin/tachyon', - args: [ - Tachyon.AvailableMethods.FUZZER_HISTORY, - String(limit || 20), - ], + args: [Tachyon.AvailableMethods.FUZZER_HISTORY, String(limit || 20)], timeout: COMPONENT_ACTION_RPC_TIMEOUT_MS, }); const parsed = parseJsonObjectOutput( diff --git a/fe-app-tachyon/src/tachyon/methods/shell/tests/componentAction.test.ts b/fe-app-tachyon/src/tachyon/methods/shell/tests/componentAction.test.ts index abed0f12..9a36da86 100644 --- a/fe-app-tachyon/src/tachyon/methods/shell/tests/componentAction.test.ts +++ b/fe-app-tachyon/src/tachyon/methods/shell/tests/componentAction.test.ts @@ -743,7 +743,9 @@ describe('TachyonShellMethods.componentAction', () => { running: !jobFinished, component: 'tachyon', action: 'install', - message: jobFinished ? 'Tachyon has been installed' : 'Component action is running', + message: jobFinished + ? 'Tachyon has been installed' + : 'Component action is running', current_version: '1.3.4', latest_version: '1.3.4', job_id: 'job-1', @@ -759,7 +761,9 @@ describe('TachyonShellMethods.componentAction', () => { running: !jobFinished, component: 'tachyon', action: 'install', - message: jobFinished ? 'Tachyon has been installed' : 'Component action is running', + message: jobFinished + ? 'Tachyon has been installed' + : 'Component action is running', current_version: '1.3.4', latest_version: '1.3.4', job_id: 'job-1', diff --git a/fe-app-tachyon/src/tachyon/methods/shell/tests/fuzzerAction.test.ts b/fe-app-tachyon/src/tachyon/methods/shell/tests/fuzzerAction.test.ts index 3785d453..37c4eec5 100644 --- a/fe-app-tachyon/src/tachyon/methods/shell/tests/fuzzerAction.test.ts +++ b/fe-app-tachyon/src/tachyon/methods/shell/tests/fuzzerAction.test.ts @@ -220,7 +220,9 @@ describe('TachyonShellMethods Fuzzer Actions', () => { zapret: { splits: ['1'] }, byedpi: { splits: ['1'] }, custom_strategies: [], - } as unknown as Parameters[0]; + } as unknown as Parameters< + typeof TachyonShellMethods.saveFuzzerPatterns + >[0]; const res = await TachyonShellMethods.saveFuzzerPatterns(patternsPayload); expect(res.success).toBe(true); diff --git a/fe-app-tachyon/src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts b/fe-app-tachyon/src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts index e9088041..9dacce39 100644 --- a/fe-app-tachyon/src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts +++ b/fe-app-tachyon/src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts @@ -124,8 +124,7 @@ export function renderStrategyFuzzerModal(ruleNames: string[] = []) { activeTab === 'patterns' ? 'flex' : 'none'; tabContentCustom.style.display = activeTab === 'custom' ? 'flex' : 'none'; tabContentAi.style.display = activeTab === 'ai' ? 'flex' : 'none'; - tabContentHistory.style.display = - activeTab === 'history' ? 'flex' : 'none'; + tabContentHistory.style.display = activeTab === 'history' ? 'flex' : 'none'; if (activeTab === 'patterns') renderPatternsTab(); if (activeTab === 'custom') renderCustomTab(); @@ -316,7 +315,8 @@ export function renderStrategyFuzzerModal(ruleNames: string[] = []) { E( 'div', { - style: 'font-size: 11px; cursor: pointer; display: flex; align-items: center; gap: 4px;', + style: + 'font-size: 11px; cursor: pointer; display: flex; align-items: center; gap: 4px;', }, [autoApplyCheckbox, E('span', {}, _('Auto-apply best strategy'))], ), @@ -459,7 +459,7 @@ export function renderStrategyFuzzerModal(ruleNames: string[] = []) { // Results Table const resultsContainer = E('div', { style: - 'max-height: 380px; overflow-y: auto; border: 1px solid var(--border-color, rgba(255,255,255,0.1)); border-radius: 6px;', + 'max-height: 380px; overflow-y: auto; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--border-color, rgba(255,255,255,0.1)); border-radius: 6px; width: 100%; box-sizing: border-box;', }); const tableEl = E( @@ -467,7 +467,7 @@ export function renderStrategyFuzzerModal(ruleNames: string[] = []) { { class: 'table', style: - 'width: 100%; margin: 0; font-size: 12px; text-align: left; border-collapse: collapse;', + 'width: 100%; min-width: 620px; margin: 0; font-size: 12px; text-align: left; border-collapse: collapse;', }, [ E( @@ -826,11 +826,14 @@ export function renderStrategyFuzzerModal(ruleNames: string[] = []) { type: 'text', class: 'cbi-input-text', placeholder: _('Strategy Name'), - style: 'flex: 1;', + style: 'flex: 1 1 180px; min-width: 140px;', }); const engineSel = E( 'select', - { class: 'cbi-input-select', style: 'width: 140px;' }, + { + class: 'cbi-input-select', + style: 'flex: 0 1 140px; min-width: 120px;', + }, [ E('option', { value: 'zapret2' }, 'Zapret v2'), E('option', { value: 'zapret' }, 'Zapret v1'), @@ -841,7 +844,7 @@ export function renderStrategyFuzzerModal(ruleNames: string[] = []) { type: 'text', class: 'cbi-input-text', placeholder: _('Command-line arguments string...'), - style: 'flex: 2; font-family: monospace;', + style: 'flex: 2 1 240px; min-width: 180px; font-family: monospace;', }); const addBtn = renderButton({ @@ -1015,7 +1018,7 @@ export function renderStrategyFuzzerModal(ruleNames: string[] = []) { placeholder: _( 'Optional context (e.g. "Rostelecom, YouTube 4K buffering is slow")...', ), - style: 'flex: 1; font-size: 12px;', + style: 'flex: 1 1 240px; min-width: 180px; font-size: 12px;', }); const aiSynthesizeBtn = renderButton({ @@ -1483,7 +1486,10 @@ export function renderStrategyFuzzerModal(ruleNames: string[] = []) { return; } - const typeColors: Record = { + const typeColors: Record< + string, + { bg: string; border: string; icon: string } + > = { rst: { bg: 'rgba(220, 53, 69, 0.12)', border: '#dc3545', icon: '🔴' }, throttle: { bg: 'rgba(255, 193, 7, 0.12)', diff --git a/fe-app-tachyon/src/tachyon/tabs/updates/styles.ts b/fe-app-tachyon/src/tachyon/tabs/updates/styles.ts index 002c003b..e1338619 100644 --- a/fe-app-tachyon/src/tachyon/tabs/updates/styles.ts +++ b/fe-app-tachyon/src/tachyon/tabs/updates/styles.ts @@ -39,6 +39,12 @@ export const styles = ` width: 100%; min-width: 0; } + + .tachyon_updates-page__component { + width: 100%; + min-width: 0; + box-sizing: border-box; + } } .tachyon_updates-page__component { @@ -48,7 +54,8 @@ export const styles = ` display: flex; flex-direction: column; gap: 10px; - min-width: max-content; + min-width: 0; + box-sizing: border-box; } .tachyon_updates-page__component__header { diff --git a/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js index 097a5594..d44028ee 100644 --- a/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js +++ b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js @@ -4221,10 +4221,7 @@ var TachyonShellMethods = { getFuzzerHistory: async (limit) => { const response = await executeShellCommand({ command: "/usr/bin/tachyon", - args: [ - Tachyon.AvailableMethods.FUZZER_HISTORY, - String(limit || 20) - ], + args: [Tachyon.AvailableMethods.FUZZER_HISTORY, String(limit || 20)], timeout: COMPONENT_ACTION_RPC_TIMEOUT_MS }); const parsed = parseJsonObjectOutput( @@ -10291,12 +10288,19 @@ var styles2 = ` // src/partials/modal/styles.ts var styles3 = ` -.tachyon-partial-modal__body {} +.tachyon-partial-modal__body { + width: 100%; + box-sizing: border-box; +} .tachyon-partial-modal__content { - max-height: 70vh; - overflow: scroll; + max-height: 75vh; + overflow-y: auto; + overflow-x: hidden; + -webkit-overflow-scrolling: touch; border-radius: 4px; + box-sizing: border-box; + width: 100%; } .tachyon-partial-modal__footer { @@ -10323,6 +10327,25 @@ var styles3 = ` .tachyon-partial-modal__checkbox-text { line-height: 1.2; } + +@media (max-width: 640px) { + .tachyon-partial-modal__content { + max-height: 82vh; + } + .tachyon-partial-modal__footer { + flex-direction: column-reverse; + align-items: stretch; + } + .tachyon-partial-modal__footer button { + width: 100%; + min-height: 38px; + } + .tachyon-partial-modal__checkbox { + margin-right: 0; + margin-bottom: 6px; + width: 100%; + } +} `; // src/partials/button/renderButton.ts @@ -12297,13 +12320,13 @@ function renderStrategyFuzzerModal(ruleNames = []) { ] ); const resultsContainer = E("div", { - style: "max-height: 380px; overflow-y: auto; border: 1px solid var(--border-color, rgba(255,255,255,0.1)); border-radius: 6px;" + style: "max-height: 380px; overflow-y: auto; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--border-color, rgba(255,255,255,0.1)); border-radius: 6px; width: 100%; box-sizing: border-box;" }); const tableEl = E( "table", { class: "table", - style: "width: 100%; margin: 0; font-size: 12px; text-align: left; border-collapse: collapse;" + style: "width: 100%; min-width: 620px; margin: 0; font-size: 12px; text-align: left; border-collapse: collapse;" }, [ E( @@ -12621,11 +12644,14 @@ function renderStrategyFuzzerModal(ruleNames = []) { type: "text", class: "cbi-input-text", placeholder: _("Strategy Name"), - style: "flex: 1;" + style: "flex: 1 1 180px; min-width: 140px;" }); const engineSel = E( "select", - { class: "cbi-input-select", style: "width: 140px;" }, + { + class: "cbi-input-select", + style: "flex: 0 1 140px; min-width: 120px;" + }, [ E("option", { value: "zapret2" }, "Zapret v2"), E("option", { value: "zapret" }, "Zapret v1"), @@ -12636,7 +12662,7 @@ function renderStrategyFuzzerModal(ruleNames = []) { type: "text", class: "cbi-input-text", placeholder: _("Command-line arguments string..."), - style: "flex: 2; font-family: monospace;" + style: "flex: 2 1 240px; min-width: 180px; font-family: monospace;" }); const addBtn = renderButton({ text: _("+ Add Strategy"), @@ -12789,7 +12815,7 @@ function renderStrategyFuzzerModal(ruleNames = []) { placeholder: _( 'Optional context (e.g. "Rostelecom, YouTube 4K buffering is slow")...' ), - style: "flex: 1; font-size: 12px;" + style: "flex: 1 1 240px; min-width: 180px; font-size: 12px;" }); const aiSynthesizeBtn = renderButton({ text: _("\u{1F9E0} Synthesize with AI"), @@ -19833,6 +19859,12 @@ var styles6 = ` width: 100%; min-width: 0; } + + .tachyon_updates-page__component { + width: 100%; + min-width: 0; + box-sizing: border-box; + } } .tachyon_updates-page__component { @@ -19842,7 +19874,8 @@ var styles6 = ` display: flex; flex-direction: column; gap: 10px; - min-width: max-content; + min-width: 0; + box-sizing: border-box; } .tachyon_updates-page__component__header { @@ -20268,6 +20301,48 @@ ${PartialStyles} opacity: 1; transform: translateY(0); } + +/* Global Mobile & Responsive Layout Enhancements */ +@media (max-width: 768px) { + .cbi-section-table { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + border-collapse: collapse; + } + + .cbi-section-table-cell { + min-width: 0; + word-break: break-word; + overflow-wrap: anywhere; + } + + .cbi-section-actions { + display: flex; + flex-wrap: wrap; + gap: 6px; + } + + .cbi-dropdown { + max-width: 100%; + } + + .cbi-input-textarea, + .cbi-input-text, + .cbi-input-select { + max-width: 100%; + box-sizing: border-box; + } + + /* Modal responsiveness */ + .modal, + .cbi-modal { + max-width: 96vw !important; + box-sizing: border-box; + margin: 10px auto; + } +} `; // src/helpers/injectGlobalStyles.ts diff --git a/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js index 600b76c7..9289ff4c 100644 --- a/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js +++ b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js @@ -8,6 +8,18 @@ const UCI_PACKAGE = "tachyon"; +const AVATAR_PRESETS = { + "👶": _("Toddler (👶)"), + "🧒": _("Child (🧒)"), + "🧑": _("Teen (🧑)"), + "🎮": _("Gamer (🎮)"), + "📱": _("Phone (📱)"), + "💻": _("Laptop / PC (💻)"), + "🏠": _("Family (🏠)"), + "🔒": _("Strict (🔒)"), + "🐾": _("Pets / IoT (🐾)"), +}; + const DAY_LABELS = { monday: _("Monday"), tuesday: _("Tuesday"), @@ -182,7 +194,9 @@ function validateDevice(sectionId, value) { return _("Invalid IP or MAC address. Expected e.g. 192.168.1.150 or AA:BB:CC:DD:EE:FF"); } -function createParentalContent(section) { +// ─── Family Profiles Section ────────────────────────────────────────────────── + +function createProfileContent(section) { // Enabled switch let o = section.option(form.Flag, "enabled", _("Enable")); o.default = "1"; @@ -190,15 +204,43 @@ function createParentalContent(section) { o.editable = true; o.width = "5rem"; - // Device column in table - o = section.option(form.DummyValue, "_device_display", _("Device / IP / MAC")); + // Profile display (Avatar + Name) + o = section.option(form.DummyValue, "_profile_display", _("Profile")); + o.rawhtml = true; + o.modalonly = false; + o.cfgvalue = function (sectionId) { + const avatar = uci.get(UCI_PACKAGE, sectionId, "avatar") || "👶"; + const label = uci.get(UCI_PACKAGE, sectionId, "label") || sectionId; + const rawDevs = uci.get(UCI_PACKAGE, sectionId, "device_ip"); + const devCount = normalizeListValues(rawDevs).length; + const devBadge = + devCount > 0 + ? `${devCount} ${_("dev.")}` + : `${_("no devices")}`; + + return ( + `
` + + `${avatar}` + + `${label}` + + devBadge + + `
` + ); + }; + o.textvalue = function (sectionId) { + const avatar = uci.get(UCI_PACKAGE, sectionId, "avatar") || "👶"; + const label = uci.get(UCI_PACKAGE, sectionId, "label") || sectionId; + return `${avatar} ${label}`; + }; + + // Assigned Devices column + o = section.option(form.DummyValue, "_devices_display", _("Devices (MAC / IP)")); o.rawhtml = true; o.modalonly = false; o.cfgvalue = function (sectionId) { const rawIp = uci.get(UCI_PACKAGE, sectionId, "device_ip"); const devs = normalizeListValues(rawIp); if (devs.length === 0) { - return '' + _("All devices") + ""; + return '' + _("No devices assigned") + ""; } const isMacAddr = (dev) => /^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}$/.test(dev); @@ -207,22 +249,353 @@ function createParentalContent(section) { const badges = [...macs, ...ips] .map((dev) => { const isMac = isMacAddr(dev); - const bg = isMac ? "#2d3748" : "#2a3441"; - const color = isMac ? "#b794f4" : "#63b3ed"; const label = isMac ? "MAC" : "IP"; return ( - `` + + `` + `${label}:` + dev + "" ); }) .join(""); - return "
" + badges + "
"; + return '
' + badges + "
"; }; o.textvalue = function (sectionId) { const devs = normalizeListValues(uci.get(UCI_PACKAGE, sectionId, "device_ip")); - return devs.length === 0 ? _("All devices") : devs.join(", "); + return devs.length === 0 ? _("No devices assigned") : devs.join(", "); + }; + + // Daily quota column + o = section.option(form.DummyValue, "_quota_display", _("Daily Quota")); + o.rawhtml = true; + o.modalonly = false; + o.cfgvalue = function (sectionId) { + const raw = Number(uci.get(UCI_PACKAGE, sectionId, "daily_quota_minutes")) || 0; + if (raw <= 0) { + return '' + _("Unlimited") + ""; + } + return ( + '⏳ ' + + raw + + " " + + _("min/day") + + "" + ); + }; + o.textvalue = function (sectionId) { + const raw = Number(uci.get(UCI_PACKAGE, sectionId, "daily_quota_minutes")) || 0; + return raw > 0 ? `${raw} ${_("min/day")}` : _("Unlimited"); + }; + + // Protection / Features column + o = section.option(form.DummyValue, "_features_display", _("Protection")); + o.rawhtml = true; + o.modalonly = false; + o.cfgvalue = function (sectionId) { + const safeSearch = uci.get(UCI_PACKAGE, sectionId, "safe_search") === "1"; + const blockDoh = uci.get(UCI_PACKAGE, sectionId, "block_doh") === "1"; + const rawDomains = uci.get(UCI_PACKAGE, sectionId, "blocked_domains"); + const domainCount = normalizeListValues(rawDomains).length; + const notify = uci.get(UCI_PACKAGE, sectionId, "notify") === "1"; + + let badges = []; + if (safeSearch) { + badges.push('🛡️ ' + _("SafeSearch") + ""); + } + if (blockDoh) { + badges.push('🔒 ' + _("Anti-Bypass (DoH)") + ""); + } + if (domainCount > 0) { + badges.push('🚫 ' + domainCount + " " + _("sites") + ""); + } + if (notify) { + badges.push('🔔 ' + _("Telegram") + ""); + } + + if (badges.length === 0) { + return '' + _("Standard") + ""; + } + return '
' + badges.join("") + "
"; + }; + o.textvalue = function (sectionId) { + const safeSearch = uci.get(UCI_PACKAGE, sectionId, "safe_search") === "1"; + const blockDoh = uci.get(UCI_PACKAGE, sectionId, "block_doh") === "1"; + const rawDomains = uci.get(UCI_PACKAGE, sectionId, "blocked_domains"); + const domainCount = normalizeListValues(rawDomains).length; + let list = []; + if (safeSearch) list.push("SafeSearch"); + if (blockDoh) list.push("DoH Block"); + if (domainCount > 0) list.push(`${domainCount} sites`); + return list.length === 0 ? _("Standard") : list.join(", "); + }; + + // Status column + o = section.option(form.DummyValue, "_status_display", _("Status")); + o.rawhtml = true; + o.modalonly = false; + o.cfgvalue = function (sectionId) { + const enabled = uci.get(UCI_PACKAGE, sectionId, "enabled") !== "0"; + if (!enabled) { + return ( + '' + + '' + + _("Disabled") + + "" + ); + } + return ( + '' + + '' + + _("Active") + + "" + ); + }; + o.textvalue = function (sectionId) { + const enabled = uci.get(UCI_PACKAGE, sectionId, "enabled") !== "0"; + return enabled ? _("Active") : _("Disabled"); + }; + + // ─── Modal Form Options ─────────────────────────────────────────────────── + + // Profile Avatar selector + o = section.option(form.ListValue, "avatar", _("Profile Icon / Avatar"), _("Choose a visual icon for this profile")); + o.modalonly = true; + o.default = "👶"; + Object.entries(AVATAR_PRESETS).forEach(([icon, label]) => { + o.value(icon, label); + }); + + // Profile Label / Name + o = section.option(form.Value, "label", _("Profile Name"), _("e.g. Kids (Alice & Tim), Teenager, School PC, Guests")); + o.modalonly = true; + o.rmempty = false; + o.placeholder = _("e.g. Kids"); + + // Device selector with LAN hostnames integration + o = section.option( + form.DynamicList, + "device_ip", + _("Assigned Devices (MAC / IP)"), + _("Select LAN devices to assign to this profile, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes via DHCP."), + ); + o.modalonly = true; + o.rmempty = true; + o.placeholder = "192.168.1.150 or AA:BB:CC:DD:EE:FF"; + o.validate = validateDevice; + o.renderWidget = function (sectionId, optionIndex, cfgvalue) { + return local_devices.createLocalDeviceDynamicListWidget( + this, + sectionId, + cfgvalue, + ); + }; + + // Daily time quota (minutes per day); 0 disables the limit + o = section.option( + form.Value, + "daily_quota_minutes", + _("Daily Screen Time Quota (minutes)"), + _( + "Total allowed network usage per day for devices in this profile. When the quota is reached, access is blocked until midnight. Enter 0 for unlimited.", + ), + ); + o.modalonly = true; + o.rmempty = true; + o.default = "0"; + o.placeholder = "0"; + o.validate = function (_sectionId, value) { + if (value === "" || value === null || value === undefined) return true; + const n = Number(value); + if (!Number.isInteger(n) || n < 0 || n > 1440) + return _("Enter a whole number of minutes between 0 and 1440"); + return true; + }; + + // Enforce SafeSearch + o = section.option( + form.Flag, + "safe_search", + _("Enforce SafeSearch & YouTube Restricted Mode"), + _("Forces SafeSearch on Google, Yandex, Bing, DuckDuckGo and Strict Restricted Mode on YouTube via DNS rewrite for all devices in this profile."), + ); + o.modalonly = true; + o.default = "1"; + o.rmempty = false; + + // Block DoH / DoT (Anti-Bypass) + o = section.option( + form.Flag, + "block_doh", + _("Anti-Bypass: Block Private DNS / DoH / DoT"), + _("Blocks port 853 (DNS-over-TLS) and prevents bypass via encrypted DNS or Private Relay on smartphones for devices in this profile."), + ); + o.modalonly = true; + o.default = "1"; + o.rmempty = false; + + // Profile-level blocked domains + o = section.option( + form.TextValue, + "blocked_domains", + _("Profile Blocked Sites (24/7)"), + _("Always block these domains for all devices in this profile. Enter one domain per line or use category preset buttons."), + ); + o.modalonly = true; + o.rmempty = true; + o.rows = 5; + o.wrap = "soft"; + o.textarea = true; + o.placeholder = "tiktok.com\nroblox.com"; + o.validate = function (sectionId, value) { + if (!value) return true; + const lines = `${value}`.split(/\r?\n/).map((l) => l.trim()).filter(Boolean); + for (const line of lines) { + const clean = line.replace(/^(full:|keyword:|regex:)/, ""); + if (/^(full:|keyword:|regex:)/.test(line) && !clean) { + return _("Invalid domain: empty prefix value"); + } + if (/^regex:/.test(line)) continue; + if (!/^([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/.test(clean)) { + return _("Invalid domain: " + line); + } + } + return true; + }; + o.write = function (sectionId, value) { + const lines = `${value || ""}`.split(/\r?\n/).map((l) => l.trim()).filter(Boolean); + const existingList = normalizeListValues(uci.get(UCI_PACKAGE, sectionId, "blocked_domains")); + for (const d of lines) { + if (!existingList.includes(d)) { + uci.add_list(UCI_PACKAGE, sectionId, "blocked_domains", d); + } + } + for (const d of existingList) { + if (!lines.includes(d)) { + uci.remove_list(UCI_PACKAGE, sectionId, "blocked_domains", d); + } + } + }; + o.load = function (sectionId) { + return normalizeListValues(uci.get(UCI_PACKAGE, sectionId, "blocked_domains")).join("\n"); + }; + o.remove = function (sectionId) { + uci.unset(UCI_PACKAGE, sectionId, "blocked_domains"); + }; + o.renderWidget = function (sectionId, optionIndex, cfgvalue) { + const container = E("div", { style: "width:100%;box-sizing:border-box;" }); + const presetRow = E("div", { style: "margin-bottom:6px;display:flex;flex-wrap:wrap;gap:4px;" }); + Object.entries(DOMAIN_PRESETS).forEach(([key, preset]) => { + const btn = E( + "button", + { + class: "cbi-button cbi-button-neutral", + type: "button", + style: "padding:2px 8px;font-size:11px;", + title: preset.domains.join(", "), + }, + preset.icon + " " + preset.label, + ); + btn.addEventListener("click", function () { + const textarea = container.querySelector("textarea"); + if (!textarea) return; + const current = textarea.value.split(/\r?\n/).map((l) => l.trim()).filter(Boolean); + const merged = current.slice(); + for (const d of preset.domains) { + if (!merged.includes(d)) merged.push(d); + } + textarea.value = merged.join("\n"); + }); + presetRow.appendChild(btn); + }); + container.appendChild(presetRow); + + const textarea = E("textarea", { + id: `cbid.tachyon.${sectionId}.blocked_domains`, + class: "cbi-input-textarea", + style: "width:100%;min-height:100px;box-sizing:border-box;", + placeholder: "tiktok.com\nroblox.com", + }); + if (cfgvalue) textarea.value = cfgvalue; + container.appendChild(textarea); + return container; + }; + + // Telegram notifications + o = section.option( + form.Flag, + "notify", + _("Telegram Alerts"), + _("Send Telegram alerts to parents when daily screen time is exhausted or blocked sites are accessed."), + ); + o.modalonly = true; + o.default = "1"; + o.rmempty = false; +} + +// ─── Schedule Rules Section ─────────────────────────────────────────────────── + +function createParentalContent(section) { + // Enabled switch + let o = section.option(form.Flag, "enabled", _("Enable")); + o.default = "1"; + o.rmempty = false; + o.editable = true; + o.width = "5rem"; + + // Device / Target profile column in table + o = section.option(form.DummyValue, "_device_display", _("Profile / Devices")); + o.rawhtml = true; + o.modalonly = false; + o.cfgvalue = function (sectionId) { + const rawProfiles = uci.get(UCI_PACKAGE, sectionId, "profile"); + const profiles = normalizeListValues(rawProfiles); + const rawIp = uci.get(UCI_PACKAGE, sectionId, "device_ip"); + const devs = normalizeListValues(rawIp); + + let items = []; + + if (profiles.length > 0) { + profiles.forEach((pName) => { + const prof = uci.get(UCI_PACKAGE, pName); + const avatar = (prof && prof.avatar) || "👶"; + const label = (prof && prof.label) || pName; + const devCount = prof ? normalizeListValues(prof.device_ip).length : 0; + items.push( + `` + + `${avatar} ${label} (${devCount} ${_("dev.")})` + + `` + ); + }); + } + + if (devs.length > 0) { + const isMacAddr = (dev) => + /^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}$/.test(dev); + const macs = devs.filter(isMacAddr); + const ips = devs.filter((d) => !isMacAddr(d)); + [...macs, ...ips].forEach((dev) => { + const isMac = isMacAddr(dev); + const label = isMac ? "MAC" : "IP"; + items.push( + `` + + `${label}:` + + dev + + "" + ); + }); + } + + if (items.length === 0) { + return '' + _("All devices") + ""; + } + + return '
' + items.join("") + "
"; + }; + o.textvalue = function (sectionId) { + const profiles = normalizeListValues(uci.get(UCI_PACKAGE, sectionId, "profile")); + const devs = normalizeListValues(uci.get(UCI_PACKAGE, sectionId, "device_ip")); + const list = [...profiles.map((p) => `Profile: ${p}`), ...devs]; + return list.length === 0 ? _("All devices") : list.join(", "); }; // Target column in table @@ -232,7 +605,7 @@ function createParentalContent(section) { o.cfgvalue = function (sectionId) { const target = uci.get(UCI_PACKAGE, sectionId, "target") || "all"; if (target === "all") { - return '🚫 ' + _("All Internet") + ""; + return '🚫 ' + _("All Internet") + ""; } const rawSecs = uci.get(UCI_PACKAGE, sectionId, "sections"); const secNames = normalizeListValues(rawSecs); @@ -247,13 +620,13 @@ function createParentalContent(section) { const sec = uci.get(UCI_PACKAGE, name); const label = (sec && (sec.label || sec[".name"])) || name; return ( - '🔒 ' + + '🔒 ' + label + "" ); }) .join(""); - return "
" + badges + "
"; + return '
' + badges + "
"; }; o.textvalue = function (sectionId) { const target = uci.get(UCI_PACKAGE, sectionId, "target") || "all"; @@ -269,9 +642,9 @@ function createParentalContent(section) { o.cfgvalue = function (sectionId) { const action = uci.get(UCI_PACKAGE, sectionId, "action") || "block"; if (action === "allow") { - return '✅ ' + _("Allow in interval") + ""; + return '✅ ' + _("Allow in interval") + ""; } - return '🚫 ' + _("Block in interval") + ""; + return '🚫 ' + _("Block in interval") + ""; }; o.textvalue = function (sectionId) { const action = uci.get(UCI_PACKAGE, sectionId, "action") || "block"; @@ -287,11 +660,11 @@ function createParentalContent(section) { const e = uci.get(UCI_PACKAGE, sectionId, "end_time") || "23:59"; const days = formatDaysDisplay(uci.get(UCI_PACKAGE, sectionId, "days")); return ( - '
' + + '
' + s + " — " + e + - '
' + + '

' + days + "
" ); @@ -313,7 +686,7 @@ function createParentalContent(section) { return '' + _("None") + ""; } return ( - '⏳ ' + + '⏳ ' + raw + " " + _("min/day") + @@ -337,17 +710,17 @@ function createParentalContent(section) { } const modeBadge = mode === "allow" - ? '🟢 ' + _("Allow only") + "" - : '🚫 ' + _("Block") + ""; + ? '🟢 ' + _("Allow only") + "" + : '🚫 ' + _("Block") + ""; const badges = domains .map( (d) => - '' + + '' + d + "", ) .join(""); - return "
" + modeBadge + "
" + badges + "
"; + return "
" + modeBadge + '
' + badges + "
"; }; o.textvalue = function (sectionId) { const domains = normalizeListValues(uci.get(UCI_PACKAGE, sectionId, "blocked_domains")); @@ -364,8 +737,8 @@ function createParentalContent(section) { const enabled = uci.get(UCI_PACKAGE, sectionId, "enabled") !== "0"; if (!enabled) { return ( - '' + - '' + + '' + + '' + _("Disabled") + "" ); @@ -373,20 +746,20 @@ function createParentalContent(section) { const active = isScheduleCurrentlyActive(sectionId); const action = uci.get(UCI_PACKAGE, sectionId, "action") || "block"; if (active) { - const color = action === "allow" ? "#48bb78" : "#e53e3e"; - const bg = action === "allow" ? "rgba(72,187,120,0.2)" : "rgba(229,62,62,0.2)"; - const border = action === "allow" ? "rgba(72,187,120,0.4)" : "rgba(229,62,62,0.4)"; + const color = action === "allow" ? "var(--success-color-medium, #38a169)" : "var(--error-color-medium, #e53e3e)"; + const bg = action === "allow" ? "rgba(72,187,120,0.15)" : "rgba(229,62,62,0.15)"; + const border = action === "allow" ? "rgba(72,187,120,0.3)" : "rgba(229,62,62,0.3)"; const text = action === "allow" ? _("Active (Allowed)") : _("Active (Blocking)"); return ( `` + - `` + + `` + text + "" ); } return ( - '' + - '' + + '' + + '' + _("Pending") + "" ); @@ -408,15 +781,37 @@ function createParentalContent(section) { o.rmempty = true; o.placeholder = _("e.g. Kids Phone (Night YouTube)"); + // Target Family Profile selector + o = section.option( + form.DynamicList, + "profile", + _("Target Family Profiles"), + _("Apply this schedule rule to all devices in the selected family profile(s)."), + ); + o.modalonly = true; + o.rmempty = true; + o.load = function (sectionId) { + this.keylist = []; + this.vallist = []; + const profList = uci.sections(UCI_PACKAGE, "profile") || []; + profList.forEach((p) => { + const pName = p[".name"]; + const pAvatar = p.avatar || "👶"; + const pLabel = p.label ? `${pAvatar} ${p.label}` : `${pAvatar} ${pName}`; + this.value(pName, pLabel); + }); + return form.DynamicList.prototype.load.apply(this, [sectionId]); + }; + // Device selector with LAN hostnames integration o = section.option( form.DynamicList, "device_ip", - _("Target Devices (IP / MAC)"), - _("Select LAN devices to apply this schedule to, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes. IP addresses (e.g. 192.168.1.150) are used for DNS-level blocking and require a stable lease."), + _("Additional Individual Devices (IP / MAC)"), + _("Optionally specify individual devices not in a profile. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the IP changes."), ); o.modalonly = true; - o.rmempty = false; + o.rmempty = true; o.placeholder = "192.168.1.150 or AA:BB:CC:DD:EE:FF"; o.validate = validateDevice; o.renderWidget = function (sectionId, optionIndex, cfgvalue) { @@ -581,7 +976,7 @@ function createParentalContent(section) { uci.unset(UCI_PACKAGE, sectionId, "blocked_domains"); }; o.renderWidget = function (sectionId, optionIndex, cfgvalue) { - const container = E("div", { style: "width:100%;" }); + const container = E("div", { style: "width:100%;box-sizing:border-box;" }); // Preset buttons row const presetRow = E("div", { style: "margin-bottom:6px;display:flex;flex-wrap:wrap;gap:4px;" }); @@ -613,7 +1008,7 @@ function createParentalContent(section) { const textarea = E("textarea", { id: `cbid.tachyon.${sectionId}.blocked_domains`, class: "cbi-input-textarea", - style: "width:100%;min-height:110px;", + style: "width:100%;min-height:110px;box-sizing:border-box;", placeholder: "youtube.com\ngooglevideo.com", }); if (cfgvalue) textarea.value = cfgvalue; @@ -657,6 +1052,7 @@ function createParentalContent(section) { } const EntryPoint = { + createProfileContent, createParentalContent, }; diff --git a/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js index 9127cec6..4276fbec 100644 --- a/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js +++ b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js @@ -460,11 +460,25 @@ const EntryPoint = { }); server.createServerContent(serverSection, uiCapabilities); + const profileSection = tachyonMap.section( + form.GridSection, + "profile", + _("Family Profiles"), + _("Group devices into family profiles to manage content filtering, SafeSearch, and screen time limits in one place."), + ); + configureGridSection( + profileSection, + "profile", + _("Family Profile"), + _("Add a family profile"), + ); + parental.createProfileContent(profileSection); + const parentalSection = tachyonMap.section( form.GridSection, "schedule", _("Parental Control"), - _("Block internet access or specific proxy sections for individual devices based on time and days."), + _("Block internet access or specific proxy sections for family profiles or individual devices based on time and days."), ); configureGridSection( parentalSection, diff --git a/luci-app-tachyon/po/ru/tachyon.po b/luci-app-tachyon/po/ru/tachyon.po index 22254200..b87e9de0 100644 --- a/luci-app-tachyon/po/ru/tachyon.po +++ b/luci-app-tachyon/po/ru/tachyon.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: TACHYON\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-27 13:54+0300\n" -"PO-Revision-Date: 2026-08-27 13:54+0300\n" +"POT-Creation-Date: 2026-08-29 13:56+0300\n" +"PO-Revision-Date: 2026-08-29 13:56+0300\n" "Last-Translator: Dushnilin\n" "Language-Team: none\n" "Language: ru\n" @@ -36,7 +36,7 @@ msgid "+ Add priority" msgstr "+ Добавить приоритет" msgid "+ Add Strategy" -msgstr "" +msgstr "+ Добавить стратегию" msgid "+ Add URLTest" msgstr "+ Добавить URLTest" @@ -63,10 +63,10 @@ msgid "⚡ DPI Strategy Fuzzer" msgstr "⚡ DPI Strategy Fuzzer" msgid "⚡ Fast (>1MB/s)" -msgstr "" +msgstr "⚡ Быстрые (>1 МБ/с)" msgid "⚡ QUIC / HTTP/3 (UDP 443)" -msgstr "" +msgstr "⚡ QUIC / HTTP/3 (UDP 443)" msgid "⚡ Quick Benchmark (Presets ~12-14)" msgstr "⚡ Быстрый бенчмарк (Пресеты ~12-14)" @@ -74,63 +74,75 @@ msgstr "⚡ Быстрый бенчмарк (Пресеты ~12-14)" msgid "⚡ Strategy Fuzzer & Auto-Tuner" msgstr "⚡ Подборщик стратегий и авто-тюнер" +msgid "✅ Auto-applied best strategy" +msgstr "✅ Лучшая стратегия применена автоматически" + msgid "✅ Benchmark completed! Optimal strategy identified." msgstr "✅ Бенчмарк завершен! Оптимальная стратегия определена." msgid "✅ Working only" -msgstr "" +msgstr "✅ Только рабочие" msgid "✈️ Telegram Suite (Web + Bot API)" -msgstr "" +msgstr "✈️ Telegram Suite (Web + Bot API)" msgid "✔ Online" -msgstr "" +msgstr "✔ В сети" msgid "✔ Running" msgstr "✔ Работает" msgid "✘ Offline" -msgstr "" +msgstr "✘ Не в сети" msgid "✘ Stopped" msgstr "✘ Остановлено" msgid "🌐 Custom Target URL..." -msgstr "" +msgstr "🌐 Пользовательский URL цели..." msgid "🎬 YouTube Suite (Web + 4K Stream)" -msgstr "" +msgstr "🎬 YouTube Suite (Web + 4K Stream)" msgid "🏆 Apply Best Match" -msgstr "" +msgstr "🏆 Применить наилучшую" msgid "🏴‍☠️ RuTracker Suite" -msgstr "" +msgstr "🏴‍☠️ RuTracker Suite" msgid "💬 Discord Suite (API + WSS + CDN)" -msgstr "" +msgstr "💬 Discord Suite (API + WSS + CDN)" msgid "💾 Save Custom Patterns" -msgstr "" +msgstr "💾 Сохранить пользовательские паттерны" msgid "📸 Instagram / Meta (Web + CDN)" -msgstr "" +msgstr "📸 Instagram / Meta (Web + CDN)" + +msgid "🔄 Refresh" +msgstr "🔄 Обновить" msgid "🔄 Reset to Factory Defaults" -msgstr "" +msgstr "🔄 Сбросить к заводским настройкам" msgid "🔍 Combinatorial Deep Fuzzing (~40-80+)" -msgstr "" +msgstr "🔍 Комбинаторный глубокий фаззинг (~40-80+)" msgid "🔑 Generate" msgstr "🔑 Сгенерировать" +msgid "🗑️ Clear History" +msgstr "🗑️ Очистить историю" + msgid "🧠 Synthesize with AI" msgstr "🧠 Сгенерировать через ИИ" msgid "🧠 Synthesizing..." msgstr "🧠 Генерация..." +msgid "🚀 Initializing benchmark in sandbox..." +msgstr "🚀 Инициализация бенчмарка в песочнице..." + msgid "🚀 Start Benchmark" msgstr "🚀 Начать бенчмарк" @@ -138,7 +150,7 @@ msgid "🛑 Stop Benchmark" msgstr "🛑 Остановить бенчмарк" msgid "🛠️ My Custom Strategies Only" -msgstr "" +msgstr "🛠️ Только мои стратегии" msgid "Accept external proxy connections and route them with sing-box." msgstr "Принимать внешние прокси-подключения и маршрутизировать их через sing-box." @@ -156,7 +168,7 @@ msgid "Action Mode" msgstr "Режим действия" msgid "Actions" -msgstr "" +msgstr "Действия" msgid "Active" msgstr "Активные" @@ -182,6 +194,9 @@ msgstr "Активный основной DNS" msgid "Active routes" msgstr "Активные маршруты" +msgid "Add a family profile" +msgstr "Добавить семейный профиль" + msgid "Add a schedule rule" msgstr "Добавить правило расписания" @@ -195,7 +210,7 @@ msgid "Add at least one DNS server" msgstr "Добавьте как минимум один DNS-сервер" msgid "Add Custom DPI Strategy" -msgstr "" +msgstr "Добавить стратегию DPI" msgid "Add prefix to nodes" msgstr "Добавить префикс к узлам" @@ -215,6 +230,9 @@ msgstr "Добавьте URL или локальные пути к списка msgid "Add URLTest / Priority group" msgstr "Добавить группу URLTest / Приоритет" +msgid "Additional Individual Devices (IP / MAC)" +msgstr "Дополнительные устройства (IP / MAC)" + msgid "Additional marking rules found" msgstr "Найдены дополнительные правила маркировки" @@ -288,10 +306,10 @@ msgid "AI Doctor Language" msgstr "Язык ИИ-доктора" msgid "AI Doctor RAG" -msgstr "" +msgstr "AI Doctor RAG" msgid "AI DPI Engineer & Strategy Synthesizer" -msgstr "" +msgstr "ИИ DPI-инженер и синтезатор стратегий" msgid "AI Model" msgstr "Модель ИИ" @@ -395,6 +413,9 @@ msgstr "ALPN" msgid "Alter ID" msgstr "Alter ID" +msgid "Always block these domains for all devices in this profile. Enter one domain per line or use category preset buttons." +msgstr "Всегда блокировать эти домены для всех устройств в этом профиле. Вводите по одному домену на строку или используйте кнопки категорий." + msgid "AmneziaWG config loaded successfully!" msgstr "Конфигурация AmneziaWG успешно загружена!" @@ -407,6 +428,12 @@ msgstr "Анонимизированный отчет скопирован в б msgid "Another component action is already running" msgstr "Другое действие уже выполняется" +msgid "Anti-Bypass (DoH)" +msgstr "Защита от обхода (DoH)" + +msgid "Anti-Bypass: Block Private DNS / DoH / DoT" +msgstr "Защита от обхода: блокировка Private DNS / DoH / DoT" + msgid "API Key for OpenAI (sk-...) or DeepSeek (optional for Ollama / LM Studio)" msgstr "API-ключ для OpenAI (sk-...) или DeepSeek (опционально для Ollama / LM Studio)" @@ -425,6 +452,9 @@ msgstr "Применять правила секции только к указ msgid "Apply Strategy To" msgstr "Применить стратегию к" +msgid "Apply this schedule rule to all devices in the selected family profile(s)." +msgstr "Применить это правило расписания ко всем устройствам в выбранных семейных профилях." + msgid "Applying fix" msgstr "Применение исправления" @@ -432,11 +462,14 @@ msgid "Applying..." msgstr "Применение..." msgid "Arguments" -msgstr "" +msgstr "Аргументы" msgid "Ask Tachyon AI Assistant a question..." msgstr "Задайте вопрос ИИ-ассистенту..." +msgid "Assigned Devices (MAC / IP)" +msgstr "Назначенные устройства (MAC / IP)" + msgid "At least one Admin Chat ID is required" msgstr "Требуется как минимум один Chat ID администратора" @@ -453,7 +486,7 @@ msgid "Auto" msgstr "Авто" msgid "Auto Modes (--auto)" -msgstr "" +msgstr "Авто-режимы (--auto)" msgid "Auto refresh" msgstr "Автообновление" @@ -461,6 +494,12 @@ msgstr "Автообновление" msgid "Auto update" msgstr "Автообновление" +msgid "Auto-apply best strategy" +msgstr "Авто-применение лучшей стратегии" + +msgid "Auto-apply failed" +msgstr "Авто-применение не удалось" + msgid "Auto-detected domains" msgstr "Автоопределённые домены" @@ -501,7 +540,7 @@ msgid "Automatically increase check intervals when healthy (to 5 min) and decrea msgstr "Автоматически увеличивать интервалы проверки при нормальном состоянии (до 5 мин) и уменьшать при проблемах (до 120с)." msgid "Automatically runs a diagnostic probe against the target service, queries the built-in DPI Knowledge Base, and synthesizes 3-5 custom bypass strategies tailored to your ISP." -msgstr "" +msgstr "Автоматически выполняет диагностический зонд целевого сервиса, опрашивает встроенную базу знаний DPI и синтезирует 3-5 стратегий обхода, адаптированных под вашего провайдера." msgid "Automatically select the fastest node in the current level" msgstr "Автовыбор самого быстрого узла уровня" @@ -534,7 +573,10 @@ msgid "Belarus (by)" msgstr "Беларусь (by)" msgid "Benchmark & Test" -msgstr "" +msgstr "Бенчмарк и тестирование" + +msgid "Benchmark History" +msgstr "История бенчмарков" msgid "Benchmark stopped" msgstr "Бенчмарк остановлен" @@ -542,6 +584,9 @@ msgstr "Бенчмарк остановлен" msgid "Benchmarking in progress..." msgstr "Выполняется бенчмарк..." +msgid "Best Strategy" +msgstr "Лучшая стратегия" + msgid "BitTorrent / P2P" msgstr "BitTorrent / P2P" @@ -557,8 +602,8 @@ msgstr "Блокировать на уровне DNS" msgid "Block in interval" msgstr "Блокируется в интервале" -msgid "Block internet access or specific proxy sections for individual devices based on time and days." -msgstr "Блокировка доступа в интернет или определенных секций маршрутизации для отдельных устройств по времени и дням недели." +msgid "Block internet access or specific proxy sections for family profiles or individual devices based on time and days." +msgstr "Блокировка доступа в интернет или определенных секций прокси для семейных профилей или отдельных устройств по времени и дням недели." msgid "Block listed sites (Standard)" msgstr "Блокировать перечисленные сайты (стандартно)" @@ -578,6 +623,12 @@ msgstr "Заблокированные сайты" msgid "Blocked Sites (Domains)" msgstr "Заблокированные сайты (домены)" +msgid "Blocks access to private/LAN IP addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, etc.) for selected users before applying routing mode." +msgstr "Блокирует доступ к приватным/локальным IP-адресам (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 и др.) для указанных пользователей перед применением режима маршрутизации." + +msgid "Blocks port 853 (DNS-over-TLS) and prevents bypass via encrypted DNS or Private Relay on smartphones for devices in this profile." +msgstr "Блокирует порт 853 (DNS-over-TLS) и предотвращает обход через шифрованный DNS или Private Relay на смартфонах для устройств этого профиля." + msgid "Bootstrap DNS" msgstr "Bootstrap DNS" @@ -743,9 +794,15 @@ msgstr "Проверки пройдены" msgid "Checks passed with manual DHCP" msgstr "Проверки пройдены с ручным DHCP" +msgid "Child (🧒)" +msgstr "Ребёнок (🧒)" + msgid "China (cn)" msgstr "Китай (cn)" +msgid "Choose a visual icon for this profile" +msgstr "Выберите визуальную иконку для профиля" + msgid "Choose Hosts File..." msgstr "Выбрать файл Hosts..." @@ -834,7 +891,7 @@ msgid "Comma-separated list of Telegram user IDs authorized to control the bot." msgstr "Список Telegram user ID через запятую, авторизованных для управления ботом." msgid "Command-line arguments string..." -msgstr "" +msgstr "Строка аргументов командной строки..." msgid "Community Lists" msgstr "Community-списки" @@ -857,6 +914,9 @@ msgstr "Параллелизм" msgid "Conditions" msgstr "Условия" +msgid "confidence" +msgstr "уверенность" + msgid "Config File Path" msgstr "Путь к файлу конфигурации" @@ -936,7 +996,7 @@ msgid "Currently unavailable" msgstr "Временно недоступно" msgid "Custom" -msgstr "" +msgstr "Пользовательский" msgid "Custom API Endpoint URL" msgstr "Пользовательский URL эндпоинта API" @@ -963,7 +1023,7 @@ msgid "Custom header for handshake response" msgstr "Пользовательский заголовок для ответа рукопожатия" msgid "Custom interface/section" -msgstr "" +msgstr "Пользовательский интерфейс/секция" msgid "Custom OpenAI-Compatible API" msgstr "Пользовательский OpenAI-совместимый API" @@ -975,11 +1035,14 @@ msgid "Custom outbound configurations in JSON format" msgstr "Пользовательские конфигурации outbound в формате JSON" msgid "Custom strategy added!" -msgstr "" +msgstr "Пользовательская стратегия добавлена!" msgid "Daily Quota" msgstr "Дневная квота" +msgid "Daily Screen Time Quota (minutes)" +msgstr "Дневная квота экранного времени (минуты)" + msgid "Daily time quota (minutes)" msgstr "Дневной лимит времени (минуты)" @@ -989,6 +1052,9 @@ msgstr "Панель управления" msgid "Dashboard currently unavailable" msgstr "Дашборд сейчас недоступен" +msgid "Date" +msgstr "Дата" + msgid "Days of Week" msgstr "Дни недели" @@ -1025,8 +1091,8 @@ msgstr "Обнаруживает и отбрасывает пакеты STUN/TUR msgid "detour must be a non-empty string" msgstr "detour должен быть непустой строкой" -msgid "Device / IP / MAC" -msgstr "Устройство / IP / MAC" +msgid "dev." +msgstr "устр." msgid "Device filter" msgstr "Фильтр устройств" @@ -1043,6 +1109,9 @@ msgstr "Устройство или IP" msgid "Device updated" msgstr "Режим устройства обновлен" +msgid "Devices (MAC / IP)" +msgstr "Устройства (MAC / IP)" + msgid "Devices listed here are always routed through the assigned section, regardless of global rules." msgstr "Устройства из этого списка всегда маршрутизируются через назначенную секцию, независимо от глобальных правил." @@ -1086,7 +1155,7 @@ msgid "Disabling interception is incompatible with action=zapret2 because Tachyo msgstr "Отключение перехвата несовместимо с action=zapret2, потому что Tachyon направляет совпавший трафик через NFQUEUE." msgid "Disorder Values (-d)" -msgstr "" +msgstr "Значения Disorder (-d)" msgid "Display name" msgstr "Отображаемое имя" @@ -1271,9 +1340,15 @@ msgstr "Загружено" msgid "Downloading and applying rule sets and lists..." msgstr "Загрузка и применение наборов правил и списков..." +msgid "DPI Detected" +msgstr "DPI обнаружен" + msgid "DPI Engine" msgstr "Движок DPI" +msgid "DPI Type" +msgstr "Тип DPI" + msgid "Drag rows to change priority. The rule at the top is checked first." msgstr "Перетащите строки для изменения приоритета. Правило вверху проверяется первым." @@ -1292,6 +1367,12 @@ msgstr "напр. AES-256-GCM — оставьте пустым для знач msgid "e.g. google.com, 1.1.1.1, 443" msgstr "напр. google.com, 1.1.1.1, 443" +msgid "e.g. Kids" +msgstr "напр. Дети" + +msgid "e.g. Kids (Alice & Tim), Teenager, School PC, Guests" +msgstr "напр. Дети (Алиса и Тимур), Подросток, Школьный ПК, Гости" + msgid "e.g. Kids Phone (Night YouTube)" msgstr "например, Телефон ребенка (YouTube на ночь)" @@ -1406,8 +1487,11 @@ msgstr "Конец интервала расписания (например, 08 msgid "End Time (HH:MM)" msgstr "Время окончания (ЧЧ:ММ)" +msgid "Enforce SafeSearch & YouTube Restricted Mode" +msgstr "Безопасный поиск (SafeSearch) и строгий режим YouTube" + msgid "Engine" -msgstr "" +msgstr "Движок" msgid "Enter a complete sing-box inbound object" msgstr "Введите полный JSON объект inbound для sing-box" @@ -1508,6 +1592,12 @@ msgstr "Не удалось применить исправление" msgid "Failed to apply strategy" msgstr "Не удалось применить стратегию" +msgid "Failed to auto-apply strategy" +msgstr "Не удалось автоматически применить стратегию" + +msgid "Failed to clear fuzzer history" +msgstr "Не удалось очистить историю фаззера" + msgid "Failed to close connection" msgstr "Не удалось закрыть подключение" @@ -1526,6 +1616,9 @@ msgstr "Не удалось скопировать!" msgid "Failed to delete snapshot" msgstr "Не удалось удалить снапшот" +msgid "Failed to detect DPI type" +msgstr "Не удалось определить тип DPI" + msgid "Failed to execute" msgstr "Не удалось выполнить" @@ -1535,14 +1628,20 @@ msgstr "Не удалось создать отчёт об ошибке" msgid "Failed to generate WARP config:" msgstr "Не удалось сгенерировать конфигурацию WARP:" +msgid "Failed to get fuzzer history" +msgstr "Не удалось получить историю фаззера" + msgid "Failed to get fuzzer patterns" -msgstr "" +msgstr "Не удалось получить паттерны фаззера" msgid "Failed to get fuzzer status" -msgstr "" +msgstr "Не удалось получить статус фаззера" msgid "Failed to get fuzzer strategies" -msgstr "" +msgstr "Не удалось получить стратегии фаззера" + +msgid "Failed to load history" +msgstr "Не удалось загрузить историю" msgid "Failed to load snapshots" msgstr "Не удалось загрузить снапшоты" @@ -1563,7 +1662,7 @@ msgid "Failed to receive response from AI service." msgstr "Не удалось получить ответ от ИИ-сервиса." msgid "Failed to reset fuzzer patterns" -msgstr "" +msgstr "Не удалось сбросить паттерны фаззера" msgid "Failed to reset settings" msgstr "Не удалось сбросить настройки" @@ -1587,10 +1686,10 @@ msgid "Failed to save DNS Turbo Cache" msgstr "Не удалось сохранить DNS Turbo Cache" msgid "Failed to save fuzzer patterns" -msgstr "" +msgstr "Не удалось сохранить паттерны фаззера" msgid "Failed to save patterns" -msgstr "" +msgstr "Не удалось сохранить паттерны" msgid "Failed to save Smart Detect settings" msgstr "Ошибка сохранения настроек Smart Detect" @@ -1605,7 +1704,7 @@ msgid "Failed to start bot" msgstr "Не удалось запустить бота" msgid "Failed to start fuzzer" -msgstr "" +msgstr "Не удалось запустить фаззер" msgid "Failed to start service check." msgstr "Не удалось запустить проверку сервисов." @@ -1617,7 +1716,7 @@ msgid "Failed to stop bot" msgstr "Не удалось остановить бота" msgid "Failed to stop fuzzer" -msgstr "" +msgstr "Не удалось остановить фаззер" msgid "Failed to stop watchdog" msgstr "Не удалось остановить watchdog" @@ -1652,6 +1751,15 @@ msgstr "FakeTLS host" msgid "Fallback on unknown DC" msgstr "Fallback при неизвестном DC" +msgid "Family (🏠)" +msgstr "Семья (🏠)" + +msgid "Family Profile" +msgstr "Семейный профиль" + +msgid "Family Profiles" +msgstr "Семейные профили" + msgid "Faster DNS health monitoring than the default cycle. Switches bootstrap DNS on failure." msgstr "Более быстрый мониторинг состояния DNS, чем стандартный цикл. Переключает bootstrap DNS при сбое." @@ -1668,7 +1776,7 @@ msgid "Filter the servers that will be displayed on the dashboard." msgstr "Фильтровать серверы, отображаемые на дашборде." msgid "Filter:" -msgstr "" +msgstr "Фильтр:" msgid "Finland (fi)" msgstr "Финляндия (fi)" @@ -1692,10 +1800,10 @@ msgid "Flush Conntrack Table" msgstr "Очистить таблицу соед. (conntrack)" msgid "Fooling Methods (dpi-desync-fooling)" -msgstr "" +msgstr "Методы спуфинга (dpi-desync-fooling)" msgid "Fooling Methods (fooling)" -msgstr "" +msgstr "Методы спуфинга (fooling)" msgid "Force immediate download and refresh of all remote lists and rule sets" msgstr "Принудительно скачать и обновить все удаленные списки и наборы правил" @@ -1703,6 +1811,9 @@ msgstr "Принудительно скачать и обновить все у msgid "Forced device routing" msgstr "Принудительная маршрутизация устройств" +msgid "Forces SafeSearch on Google, Yandex, Bing, DuckDuckGo and Strict Restricted Mode on YouTube via DNS rewrite for all devices in this profile." +msgstr "Принудительно включает безопасный поиск в Google, Яндекс, Bing, DuckDuckGo и строгий ограниченный режим на YouTube через подмену DNS для всех устройств профиля." + msgid "Forces sing-box to tunnel DNS requests via DoQ with Encrypted Client Hello (ECH) for SNI hiding." msgstr "Принудительно направлять DNS-запросы через DoQ с Encrypted Client Hello (ECH) для скрытия SNI." @@ -1736,6 +1847,9 @@ msgstr "IP игровых консолей" msgid "Game Console Optimizer (NAT Type 1)" msgstr "Оптимизатор игровых консолей (NAT Type 1)" +msgid "Gamer (🎮)" +msgstr "Геймер (🎮)" + msgid "Gaming" msgstr "Игры" @@ -1791,7 +1905,10 @@ msgid "Global check failed" msgstr "Не удалось выполнить глобальную проверку" msgid "Global Default" -msgstr "" +msgstr "Глобально по умолчанию" + +msgid "Group devices into family profiles to manage content filtering, SafeSearch, and screen time limits in one place." +msgstr "Группируйте устройства в семейные профили для централизованного управления фильтрацией сайтов, безопасным поиском и лимитами экранного времени." msgid "gRPC service" msgstr "Сервис gRPC" @@ -1862,6 +1979,9 @@ msgstr "Проверка DNS с более высоким приоритетом msgid "History" msgstr "История" +msgid "History cleared" +msgstr "История очищена" + msgid "Host" msgstr "Хост" @@ -2253,7 +2373,7 @@ msgid "IP Addresses (IP CIDR)" msgstr "IP-адреса (IP CIDR)" msgid "IP Frag Bounds (--ip-frag)" -msgstr "" +msgstr "Границы фрагментации IP (--ip-frag)" msgid "IPs" msgstr "IP" @@ -2363,6 +2483,9 @@ msgstr "Устройства LAN" msgid "Language for AI Doctor diagnosis responses" msgstr "Язык ответов диагностики ИИ-доктора" +msgid "Laptop / PC (💻)" +msgstr "Ноутбук / ПК (💻)" + msgid "Latency test failed" msgstr "Проверка задержки не удалась" @@ -2565,10 +2688,10 @@ msgid "Must be a number in the range of 0 - 10000" msgstr "Должно быть числом в диапазоне 0 - 10000" msgid "My Strategies" -msgstr "" +msgstr "Мои стратегии" msgid "Name" -msgstr "" +msgstr "Имя" msgid "Name displayed on the dashboard" msgstr "Имя, отображаемое на дашборде" @@ -2633,8 +2756,11 @@ msgstr "Активные устройства в локальной сети н msgid "No active routing sections found." msgstr "Активные секции маршрутизации не найдены." +msgid "No benchmark history yet. Run a benchmark to see results here." +msgstr "История бенчмарков пуста. Запустите бенчмарк, чтобы увидеть результаты здесь." + msgid "No benchmark results yet. Configure options and click \"Start Benchmark\"." -msgstr "" +msgstr "Результатов бенчмарка пока нет. Настройте параметры и нажмите «Запустить бенчмарк»." msgid "No check targets found in the configuration." msgstr "Цели для проверки не найдены в конфигурации." @@ -2649,7 +2775,13 @@ msgid "No Custom Rules Matched" msgstr "Нет совпадений с пользовательскими правилами" msgid "No custom strategies added yet." -msgstr "" +msgstr "Пользовательские стратегии пока не добавлены." + +msgid "no devices" +msgstr "нет устройств" + +msgid "No devices assigned" +msgstr "Устройства не назначены" msgid "No DHCP clients detected" msgstr "DHCP-клиенты не обнаружены" @@ -2694,7 +2826,7 @@ msgid "No snapshots yet" msgstr "Снапшотов пока нет" msgid "No strategies match the active filter." -msgstr "" +msgstr "Нет стратегий, соответствующих выбранному фильтру." msgid "Node list is empty" msgstr "Список узлов пуст" @@ -2808,7 +2940,7 @@ msgid "Only the specified servers." msgstr "Только указанные серверы." msgid "OOB Values (-o)" -msgstr "" +msgstr "Значения OOB (-o)" msgid "Open" msgstr "Открыть" @@ -2856,7 +2988,7 @@ msgid "Optional — leave empty for default" msgstr "Опционально — оставьте пустым для значения по умолчанию" msgid "Optional context (e.g. \"Rostelecom, YouTube 4K buffering is slow\")..." -msgstr "" +msgstr "Дополнительный контекст (напр. «Ростелеком, YouTube 4K долго буферизуется»)..." msgid "Optional for local LLM" msgstr "Опционально для локальных LLM" @@ -2870,11 +3002,14 @@ msgstr "Опциональные значения должны быть прис msgid "Optional values must be attached with '=' here; a separate token would be ignored by nfqws2." msgstr "Опциональные значения должны быть присоединены через '=' здесь; отдельный токен будет игнорироваться nfqws2." +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." + msgid "Or paste hosts file content:" msgstr "Или вставьте содержимое файла hosts:" msgid "Other peers" -msgstr "" +msgstr "Другие пиры" msgid "outbounds must be a non-empty array of strings" msgstr "outbounds должен быть непустым массивом строк" @@ -2925,19 +3060,19 @@ msgid "Path must end with cache.db" msgstr "Путь должен заканчиваться на cache.db" msgid "Pattern Builder" -msgstr "" +msgstr "Конструктор паттернов" msgid "Patterns reset to defaults!" -msgstr "" +msgstr "Паттерны сброшены к значениям по умолчанию!" msgid "Patterns reset to factory defaults" -msgstr "" +msgstr "Паттерны сброшены к заводским настройкам" msgid "Patterns saved successfully" -msgstr "" +msgstr "Паттерны успешно сохранены" msgid "Patterns saved successfully!" -msgstr "" +msgstr "Паттерны успешно сохранены!" msgid "Pause updates" msgstr "Приостановить обновление" @@ -2984,6 +3119,12 @@ msgstr "Постоянный Keepalive" msgid "Persistent Smart Detect" msgstr "Постоянное умное определение" +msgid "Pets / IoT (🐾)" +msgstr "Питомцы / IoT (🐾)" + +msgid "Phone (📱)" +msgstr "Смартфон (📱)" + msgid "Pin on dashboard" msgstr "Закрепить на дашборде" @@ -2991,7 +3132,7 @@ msgid "Pin P2P isolation to the torrent client's own ports, comma separated. Eac msgstr "Закрепить изоляцию P2P за портами торрент-клиента, через запятую. Каждая запись — \"протокол\", \"протокол:порт\" или \"протокол:порт-порт\" (tcp/udp). Без порта весь протокол уходит напрямую." msgid "Please specify strategy name and arguments" -msgstr "" +msgstr "Пожалуйста, укажите имя стратегии и аргументы" msgid "Polling Interval (seconds)" msgstr "Интервал опроса (секунды)" @@ -3047,6 +3188,9 @@ msgstr "Предпочитаемый IP" msgid "Prefix text" msgstr "Текст префикса" +msgid "Preparing strategies and isolated nftables queue..." +msgstr "Подготовка стратегий и изолированной очереди nftables..." + msgid "Preshared Key" msgstr "Предварительный общий ключ" @@ -3074,6 +3218,21 @@ msgstr "Настройки приоритета" msgid "Private Key" msgstr "Приватный ключ" +msgid "Profile" +msgstr "Профиль" + +msgid "Profile / Devices" +msgstr "Профиль / Устройства" + +msgid "Profile Blocked Sites (24/7)" +msgstr "Заблокированные сайты профиля (24/7)" + +msgid "Profile Icon / Avatar" +msgstr "Иконка профиля / Аватар" + +msgid "Profile Name" +msgstr "Имя профиля" + msgid "Protection" msgstr "Защита" @@ -3120,7 +3279,7 @@ msgid "QUIC (HTTP/3)" msgstr "QUIC (HTTP/3)" msgid "RAG Knowledge Base + Live ISP Probe Context" -msgstr "" +msgstr "База знаний RAG + результаты живого зондирования провайдера" msgid "RDP" msgstr "RDP" @@ -3155,6 +3314,9 @@ msgstr "Пересобрать правила firewall" msgid "Rebuilt release" msgstr "Пересобранный релиз" +msgid "Recommended" +msgstr "Рекомендовано" + msgid "Recommended Quick Fixes:" msgstr "Рекомендуемые исправления:" @@ -3308,6 +3470,12 @@ msgstr "Восстанавливает заводские настройки Tac msgid "Restoring native direct internet (stopping Tachyon)..." msgstr "Восстановление прямого интернета (остановка Tachyon)..." +msgid "Restrict LAN access for specific users" +msgstr "Ограничить доступ к локальной сети для отдельных пользователей" + +msgid "Restricted users (auth_user)" +msgstr "Изолированные пользователи (auth_user)" + msgid "Resume updates" msgstr "Продолжить обновление" @@ -3399,7 +3567,7 @@ msgid "Running" msgstr "Запущен" msgid "Running benchmarks..." -msgstr "" +msgstr "Выполняется тестирование..." msgid "Running diagnostics…" msgstr "Выполняется диагностика…" @@ -3407,6 +3575,9 @@ msgstr "Выполняется диагностика…" msgid "Russia (ru)" msgstr "Россия (ru)" +msgid "SafeSearch" +msgstr "SafeSearch" + msgid "Sat" msgstr "Сб" @@ -3471,7 +3642,7 @@ msgid "Section name" msgstr "Имя секции" msgid "Section or tunnel interface used for Cloudflare WARP API registration. Supports Connection, WireGuard, AmneziaWG, and Interface sections. Leave empty to use direct WAN / default mixed proxy." -msgstr "" +msgstr "Секция или туннельный интерфейс для регистрации Cloudflare WARP API. Поддерживает секции Connection, WireGuard, AmneziaWG и Interface. Оставьте пустым для прямого WAN / стандартного mixed proxy." msgid "Section Rules Content" msgstr "Содержимое правил секции" @@ -3533,8 +3704,8 @@ msgstr "Выберите и упорядочите секции, через ко msgid "Select DNS protocol to use" msgstr "Выберите протокол DNS" -msgid "Select LAN devices to apply this schedule to, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes. IP addresses (e.g. 192.168.1.150) are used for DNS-level blocking and require a stable lease." -msgstr "Выберите устройства из локальной сети, либо укажите IP или MAC-адреса вручную. MAC-адреса (например AA:BB:CC:DD:EE:FF) работают даже если IP устройства меняется. IP-адреса (например 192.168.1.150) используются для блокировки на уровне DNS и требуют стабильного адреса." +msgid "Select LAN devices to assign to this profile, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes via DHCP." +msgstr "Выберите устройства из локальной сети или введите IP/MAC-адреса вручную. MAC-адреса (напр. AA:BB:CC:DD:EE:FF) сохраняют привязку при смене IP через DHCP." msgid "Select network interface for VPN connection" msgstr "Выберите интерфейс для VPN-подключения" @@ -3608,8 +3779,11 @@ msgstr "Отправлять уведомление в Telegram при пере msgid "Send a Telegram notification when proxy subscriptions are successfully updated." msgstr "Отправлять уведомление в Telegram при успешном обновлении подписок прокси." +msgid "Send Telegram alerts to parents when daily screen time is exhausted or blocked sites are accessed." +msgstr "Отправлять уведомления родителям в Telegram при исчерпании экранного времени или попытке открыть заблокированные сайты." + msgid "Sequence Overlaps (seqovl)" -msgstr "" +msgstr "Перекрытия последовательностей (seqovl)" msgid "Server" msgstr "Сервер" @@ -3767,6 +3941,9 @@ msgstr "Версия Sing-box совместима (новее 1.12.4)" msgid "Singapore (sg)" msgstr "Сингапур (sg)" +msgid "sites" +msgstr "сайтов" + msgid "Skip loopback & local entries (127.0.0.1, ::1, 0.0.0.0, localhost)" msgstr "Пропустить loopback и локальные записи (127.0.0.1, ::1, 0.0.0.0, localhost)" @@ -3831,16 +4008,16 @@ msgid "Speed" msgstr "Скорость" msgid "Split Modes (dpi-desync)" -msgstr "" +msgstr "Режимы разделения (dpi-desync)" msgid "Split Positions (dpi-desync-split-pos)" -msgstr "" +msgstr "Позиции разделения (dpi-desync-split-pos)" msgid "Split Positions (pos)" -msgstr "" +msgstr "Позиции разделения (pos)" msgid "Split Values (-s)" -msgstr "" +msgstr "Значения сплита (-s)" msgid "SSH" msgstr "SSH" @@ -3878,6 +4055,9 @@ msgstr "Отдельная служба Zapret2 активна" msgid "Standalone Zapret2 service is inactive" msgstr "Отдельная служба Zapret2 неактивна" +msgid "Standard" +msgstr "Стандартный" + msgid "Start" msgstr "Старт" @@ -3903,13 +4083,13 @@ msgid "Starting…" msgstr "Запуск…" msgid "State" -msgstr "" +msgstr "Состояние" msgid "Status" msgstr "Статус" msgid "Status / Suite" -msgstr "" +msgstr "Статус / Набор" msgid "Stop" msgstr "Стоп" @@ -3939,10 +4119,13 @@ msgid "Strategy benchmark started" msgstr "Бенчмарк стратегий запущен" msgid "Strategy deleted" -msgstr "" +msgstr "Стратегия удалена" msgid "Strategy Name" -msgstr "" +msgstr "Имя стратегии" + +msgid "Strict (🔒)" +msgstr "Строгий (🔒)" msgid "Strict ECH + DoQ DNS Enforcer" msgstr "Строгий ECH + DoQ DNS Enforcer" @@ -4071,7 +4254,7 @@ msgid "Tailscale" msgstr "Tailscale" msgid "Tailscale auth key" -msgstr "" +msgstr "Ключ авторизации Tailscale" msgid "Tailscale control URL" msgstr "Control URL Tailscale" @@ -4088,17 +4271,26 @@ msgstr "Режим Tailscale" msgid "Target" msgstr "Цель" -msgid "Target Devices (IP / MAC)" -msgstr "Целевые устройства (IP / MAC)" +msgid "Target Family Profiles" +msgstr "Семейные профили" msgid "Target Scope" msgstr "Область действия" msgid "Target Service / Suite" -msgstr "" +msgstr "Целевой сервис / Набор" msgid "TCP Window Sizes (wsize)" -msgstr "" +msgstr "Размеры окна TCP (wsize)" + +msgid "Teen (🧑)" +msgstr "Подросток (🧑)" + +msgid "Telegram" +msgstr "Telegram" + +msgid "Telegram Alerts" +msgstr "Оповещения в Telegram" msgid "Telegram Bot" msgstr "Telegram Бот" @@ -4136,6 +4328,9 @@ msgstr "Тестировать серверы, чьи имена соответ msgid "Test Telegram Connection" msgstr "Проверить подключение к Telegram" +msgid "Testing bypass strategies in isolated sandbox..." +msgstr "Тестирование стратегий обхода в изолированной песочнице..." + msgid "Testing strategy" msgstr "Тестирование стратегии" @@ -4197,7 +4392,7 @@ msgid "This option requires a value." msgstr "Этот параметр требует значение." msgid "This router" -msgstr "" +msgstr "Этот роутер" msgid "This will erase all Tachyon settings and restore the factory defaults. The service will restart. This action cannot be undone." msgstr "Все настройки Tachyon будут удалены и восстановлены заводские значения. Сервис будет перезапущен. Это действие нельзя отменить." @@ -4236,7 +4431,10 @@ msgid "TLS SNI" msgstr "TLS SNI" msgid "TLS-Rec Bounds (--tlsrec)" -msgstr "" +msgstr "Границы записей TLS (--tlsrec)" + +msgid "Toddler (👶)" +msgstr "Малыш (👶)" msgid "Token is required when the bot is enabled" msgstr "Токен обязателен, когда бот включён" @@ -4247,6 +4445,9 @@ msgstr "Допуск" msgid "Top level has the highest priority; lower levels are used as fallback" msgstr "Верхний уровень имеет наивысший приоритет; нижние уровни используются как запасные" +msgid "Total allowed network usage per day for devices in this profile. When the quota is reached, access is blocked until midnight. Enter 0 for unlimited." +msgstr "Суммарное разрешенное время работы в сети в день для устройств этого профиля. По исчерпании лимита доступ блокируется до полуночи. Введите 0 для отсутствия ограничений." + msgid "Total lines:" msgstr "Всего строк:" @@ -4320,10 +4521,10 @@ msgid "TTL value cannot be empty" msgstr "Значение TTL не может быть пустым" msgid "TTL Values (dpi-desync-ttl)" -msgstr "" +msgstr "Значения TTL (dpi-desync-ttl)" msgid "TTL Values (ttl)" -msgstr "" +msgstr "Значения TTL (ttl)" msgid "Tue" msgstr "Вт" @@ -4421,6 +4622,9 @@ msgstr "Неизвестный флаг NFQWS." msgid "Unknown NFQWS2 flag." msgstr "Неизвестный флаг NFQWS2." +msgid "Unlimited" +msgstr "Без ограничений" + msgid "Unspecified IP address is not allowed" msgstr "Неуказанный IP-адрес не разрешён" @@ -4560,7 +4764,10 @@ msgid "Used by" msgstr "Используется" msgid "User custom strategy" -msgstr "" +msgstr "Пользовательская стратегия" + +msgid "User names (e.g. from VLESS/Trojan/SS/JSON inbound users) that are forbidden from reaching LAN subnets. Leave empty to restrict all users on this inbound." +msgstr "Имена пользователей (например, из пользователей VLESS/Trojan/SS/JSON inbound), которым запрещен доступ к подсетям LAN. Оставьте пустым, чтобы ограничить всех пользователей данного inbound." msgid "User-Agent" msgstr "User-Agent" @@ -4679,6 +4886,9 @@ msgstr "Приватный ключ WireGuard из вашего аккаунта msgid "WireGuard private key from your Cloudflare WARP account" msgstr "Приватный ключ WireGuard из вашего аккаунта Cloudflare WARP" +msgid "Working" +msgstr "Рабочих" + msgid "XHTTP mode" msgstr "Режим XHTTP" @@ -4739,6 +4949,18 @@ msgstr "sing-box outbound для Zapret2 настроен" msgid "Zapret2 sing-box outbound is not configured" msgstr "sing-box outbound для Zapret2 не настроен" +msgid "Block internet access or specific proxy sections for individual devices based on time and days." +msgstr "Блокировка доступа в интернет или определенных секций маршрутизации для отдельных устройств по времени и дням недели." + +msgid "Device / IP / MAC" +msgstr "Устройство / IP / MAC" + +msgid "Select LAN devices to apply this schedule to, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes. IP addresses (e.g. 192.168.1.150) are used for DNS-level blocking and require a stable lease." +msgstr "Выберите устройства из локальной сети, либо укажите IP или MAC-адреса вручную. MAC-адреса (например AA:BB:CC:DD:EE:FF) работают даже если IP устройства меняется. IP-адреса (например 192.168.1.150) используются для блокировки на уровне DNS и требуют стабильного адреса." + +msgid "Target Devices (IP / MAC)" +msgstr "Целевые устройства (IP / MAC)" + msgid "🏆 Apply Best Strategy" msgstr "🏆 Применить лучшую стратегию" @@ -5093,69 +5315,8 @@ msgstr "Восстановление прямого интернета..." msgid "Find optimal DPI bypass strategies with isolated live probing" msgstr "Автоматический подбор оптимальных параметров обхода DPI в изолированном сэндбоксе" -msgid "DPI Detected" -msgstr "DPI обнаружен" - -msgid "confidence" -msgstr "уверенность" - -msgid "Recommended" -msgstr "Рекомендовано" - -msgid "Auto-apply best strategy" -msgstr "Авто-применение лучшей стратегии" - -msgid "Benchmark History" -msgstr "История бенчмарков" - -msgid "Refresh" -msgstr "Обновить" - msgid "Clear History" msgstr "Очистить историю" -msgid "No benchmark history yet. Run a benchmark to see results here." -msgstr "История бенчмарков пуста. Запустите бенчмарк, чтобы увидеть результаты здесь." - -msgid "Failed to load history" -msgstr "Не удалось загрузить историю" - -msgid "Date" -msgstr "Дата" - -msgid "DPI Type" -msgstr "Тип DPI" - -msgid "Best Strategy" -msgstr "Лучшая стратегия" - -msgid "Working" -msgstr "Рабочих" - msgid "Auto-applied best strategy" msgstr "Лучшая стратегия автоматически применена" - -msgid "Auto-apply failed" -msgstr "Авто-применение не удалось" - -msgid "Failed to detect DPI type" -msgstr "Не удалось определить тип DPI" - -msgid "Failed to auto-apply strategy" -msgstr "Не удалось автоматически применить стратегию" - -msgid "History cleared" -msgstr "История очищена" - -msgid "Restrict LAN access for specific users" -msgstr "Ограничить доступ к локальной сети для отдельных пользователей" - -msgid "Blocks access to private/LAN IP addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, etc.) for selected users before applying routing mode." -msgstr "Блокирует доступ к приватным/локальным IP-адресам (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 и др.) для указанных пользователей перед применением режима маршрутизации." - -msgid "Restricted users (auth_user)" -msgstr "Изолированные пользователи (auth_user)" - -msgid "User names (e.g. from VLESS/Trojan/SS/JSON inbound users) that are forbidden from reaching LAN subnets. Leave empty to restrict all users on this inbound." -msgstr "Имена пользователей (например, из пользователей VLESS/Trojan/SS/JSON inbound), которым запрещен доступ к подсетям LAN. Оставьте пустым, чтобы ограничить всех пользователей данного inbound." - diff --git a/luci-app-tachyon/po/templates/tachyon.pot b/luci-app-tachyon/po/templates/tachyon.pot index 872c36ba..a31d7e88 100644 --- a/luci-app-tachyon/po/templates/tachyon.pot +++ b/luci-app-tachyon/po/templates/tachyon.pot @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: TACHYON\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-27 10:54+0300\n" -"PO-Revision-Date: 2026-08-27 10:54+0300\n" +"POT-Creation-Date: 2026-08-29 10:56+0300\n" +"PO-Revision-Date: 2026-08-29 10:56+0300\n" "Last-Translator: Dushnilin \n" "Language-Team: LANGUAGE \n" "Language: \n" @@ -48,8 +48,8 @@ msgstr "" msgid "+ Add priority" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12509 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:803 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12668 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:851 msgid "+ Add Strategy" msgstr "" @@ -69,8 +69,8 @@ msgstr "" msgid "⚙ Advanced Settings" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12848 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1197 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13131 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1388 msgid "⚠️ Benchmark completed. No working bypass found for this target." msgstr "" @@ -82,114 +82,124 @@ msgstr "" msgid "⚠️ If all Main DNS fail 3 times, queries will be sent to your ISP's DNS in plaintext. Only use as a last resort to prevent complete internet loss." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10668 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10789 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:162 msgid "⚡ DPI Strategy Fuzzer" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12142 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:383 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12299 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:429 msgid "⚡ Fast (>1MB/s)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11970 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:187 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12099 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:198 msgid "⚡ QUIC / HTTP/3 (UDP 443)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12007 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:232 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12136 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:243 msgid "⚡ Quick Benchmark (Presets ~12-14)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13028 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1418 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13446 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1767 msgid "⚡ Strategy Fuzzer & Auto-Tuner" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12848 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1196 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13174 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1446 +msgid "✅ Auto-applied best strategy" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13131 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1387 msgid "✅ Benchmark completed! Optimal strategy identified." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12133 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:374 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12290 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:420 msgid "✅ Working only" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11967 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:184 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12096 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:195 msgid "✈️ Telegram Suite (Web + Bot API)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8305 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8400 #: src/tachyon/tabs/dashboard/initController.ts:1941 msgid "✔ Online" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8262 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8269 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8357 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8364 #: src/tachyon/tabs/dashboard/initController.ts:1891 #: src/tachyon/tabs/dashboard/initController.ts:1900 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:498 msgid "✔ Running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8305 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8400 #: src/tachyon/tabs/dashboard/initController.ts:1941 msgid "✘ Offline" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8262 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8269 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8357 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8364 #: src/tachyon/tabs/dashboard/initController.ts:1891 #: src/tachyon/tabs/dashboard/initController.ts:1900 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:498 msgid "✘ Stopped" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11971 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:188 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12100 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:199 msgid "🌐 Custom Target URL..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11952 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:169 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12081 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:180 msgid "🎬 YouTube Suite (Web + 4K Stream)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12099 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:337 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12256 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:383 msgid "🏆 Apply Best Match" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11969 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:186 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12098 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:197 msgid "🏴‍☠️ RuTracker Suite" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11957 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:174 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12086 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:185 msgid "💬 Discord Suite (API + WSS + CDN)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12458 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:743 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12614 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:788 msgid "💾 Save Custom Patterns" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11962 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:179 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12091 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:190 msgid "📸 Instagram / Meta (Web + CDN)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12470 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:756 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12899 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1117 +msgid "🔄 Refresh" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12626 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:801 msgid "🔄 Reset to Factory Defaults" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12012 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:237 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12141 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:248 msgid "🔍 Combinatorial Deep Fuzzing (~40-80+)" msgstr "" @@ -197,36 +207,46 @@ msgstr "" msgid "🔑 Generate" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12662 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12972 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:979 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1344 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12904 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1122 +msgid "🗑️ Clear History" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12821 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13389 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1025 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1692 msgid "🧠 Synthesize with AI" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12927 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1290 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13344 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1638 msgid "🧠 Synthesizing..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12227 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12874 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12921 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:483 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1229 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1283 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13277 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1564 +msgid "🚀 Initializing benchmark in sandbox..." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12382 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13165 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13337 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:527 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1434 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1630 msgid "🚀 Start Benchmark" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12903 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12953 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1263 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1323 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13267 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13370 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1552 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1671 msgid "🛑 Stop Benchmark" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12014 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:239 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12143 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:250 msgid "🛠️ My Custom Strategies Only" msgstr "" @@ -234,7 +254,7 @@ msgstr "" msgid "Accept external proxy connections and route them with sing-box." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3274 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3297 msgid "Accept routes" msgstr "" @@ -243,42 +263,44 @@ msgstr "" msgid "Action" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9268 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9363 #: src/tachyon/helpers/notifyActionFailure.ts:40 msgid "Action failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:467 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:862 msgid "Action Mode" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12202 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12575 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:455 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:879 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12357 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12734 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:499 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:926 msgid "Actions" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7664 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15600 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16185 -#: src/tachyon/tabs/dashboard/initController.ts:1127 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7759 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16018 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16603 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:349 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:355 #: src/tachyon/tabs/monitoring/initController.ts:722 #: src/tachyon/tabs/monitoring/render.ts:20 +#: src/tachyon/tabs/dashboard/initController.ts:1127 msgid "Active" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:379 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:399 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:752 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:772 msgid "Active (Allowed)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:379 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:399 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:752 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:772 msgid "Active (Blocking)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9363 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9458 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:56 msgid "Active Bootstrap DNS" msgstr "" @@ -290,22 +312,26 @@ msgstr "" msgid "Active Clients" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8248 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8343 #: src/tachyon/tabs/dashboard/initController.ts:1876 msgid "Active Connections" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9370 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9465 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:67 msgid "Active Main DNS" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11074 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11195 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:245 msgid "Active routes" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:473 +msgid "Add a family profile" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:487 msgid "Add a schedule rule" msgstr "" @@ -323,8 +349,8 @@ msgstr "" msgid "Add at least one DNS server" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12543 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:843 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12702 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:891 msgid "Add Custom DPI Strategy" msgstr "" @@ -352,7 +378,11 @@ msgstr "" msgid "Add URLTest / Priority group" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9705 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:810 +msgid "Additional Individual Devices (IP / MAC)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9800 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:106 msgid "Additional marking rules found" msgstr "" @@ -383,7 +413,7 @@ msgstr "" msgid "Administrator Chat IDs" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:73 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:85 msgid "Adult content" msgstr "" @@ -395,11 +425,11 @@ msgstr "" msgid "Advanced System" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3257 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3280 msgid "Advertise exit node" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3267 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3290 msgid "Advertise routes" msgstr "" @@ -424,18 +454,18 @@ msgstr "" msgid "AI API Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11818 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11939 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:235 msgid "AI Chat & Tachyon Assistant" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10658 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10779 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:152 msgid "AI Chat Assistant" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12680 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1000 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12839 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1046 msgid "AI Diagnostics & Strategy Rationale" msgstr "" @@ -443,14 +473,14 @@ msgstr "" msgid "AI Doctor (ChatGPT / DeepSeek API)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14760 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15178 #: src/tachyon/tabs/diagnostic/initController.ts:1563 msgid "AI Doctor Diagnosis" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14221 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14763 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14771 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14639 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15181 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15189 #: src/tachyon/tabs/diagnostic/initController.ts:857 #: src/tachyon/tabs/diagnostic/initController.ts:1569 #: src/tachyon/tabs/diagnostic/initController.ts:1577 @@ -462,13 +492,13 @@ msgstr "" msgid "AI Doctor Language" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11891 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:91 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12014 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:95 msgid "AI Doctor RAG" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12702 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1025 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12861 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1071 msgid "AI DPI Engineer & Strategy Synthesizer" msgstr "" @@ -482,23 +512,23 @@ msgstr "" msgid "AI Provider" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11745 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11866 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:151 msgid "AI service error" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12943 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1309 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13360 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1657 msgid "AI successfully synthesized custom strategies!" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12966 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1338 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13383 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1686 msgid "AI Synthesis Error" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12965 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1337 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13382 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1685 msgid "AI synthesis failed" msgstr "" @@ -510,12 +540,12 @@ msgstr "" msgid "AI Watchdog settings saved. Restart watchdog to apply." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12124 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15619 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16150 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12281 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16037 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16568 #: src/tachyon/tabs/monitoring/initController.ts:681 #: src/tachyon/tabs/monitoring/render.ts:40 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:365 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:411 msgid "All" msgstr "" @@ -523,13 +553,13 @@ msgstr "" msgid "All checks passed — Telegram bot should work correctly" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:201 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:225 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:589 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:598 msgid "All devices" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11927 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:140 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12056 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:151 msgid "All Engines (Full Matrix)" msgstr "" @@ -537,12 +567,12 @@ msgstr "" msgid "All except selected" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:235 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:260 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:608 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:633 msgid "All Internet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:439 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:834 msgid "All Internet (Complete internet cutoff)" msgstr "" @@ -558,8 +588,8 @@ msgstr "" msgid "All remaining servers means every server not already assigned to a higher-priority level." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15627 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16123 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16045 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16541 #: src/tachyon/tabs/monitoring/initController.ts:644 #: src/tachyon/tabs/monitoring/render.ts:49 msgid "All Routes" @@ -569,8 +599,8 @@ msgstr "" msgid "All servers" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11083 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11186 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11204 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11307 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:257 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:376 msgid "All services" @@ -580,12 +610,12 @@ msgstr "" msgid "All traffic from these IP addresses will be routed through the section unconditionally, ignoring all other conditions." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:473 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:868 msgid "Allow / Enable ONLY in scheduled hours (White period)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:272 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:278 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:645 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:651 msgid "Allow in interval" msgstr "" @@ -593,15 +623,15 @@ msgstr "" msgid "Allow Insecure TLS" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:340 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:713 msgid "Allow only" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:634 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1029 msgid "Allow only listed sites (Whitelist)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:356 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:729 msgid "Allow only:" msgstr "" @@ -621,14 +651,18 @@ msgstr "" msgid "Allows Tachyon to send diagnostic snapshots to ChatGPT or DeepSeek API for intelligent root-cause analysis and auto-repair recommendations." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2786 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2809 msgid "ALPN" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3020 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3043 msgid "Alter ID" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:441 +msgid "Always block these domains for all devices in this profile. Enter one domain per line or use category preset buttons." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8301 msgid "AmneziaWG config loaded successfully!" msgstr "" @@ -637,27 +671,35 @@ msgstr "" msgid "AmneziaWG Generator" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14296 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14714 #: src/tachyon/tabs/diagnostic/initController.ts:970 msgid "Anonymized support report copied to clipboard" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18770 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19188 #: src/tachyon/tabs/updates/initController.ts:906 msgid "Another component action is already running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:306 +msgid "Anti-Bypass (DoH)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:429 +msgid "Anti-Bypass: Block Private DNS / DoH / DoT" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1791 msgid "API Key for OpenAI (sk-...) or DeepSeek (optional for Ollama / LM Studio)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12983 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1356 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13400 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1704 msgid "Applied" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12817 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1158 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13099 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1348 msgid "Apply" msgstr "" @@ -669,31 +711,39 @@ msgstr "" msgid "Apply section rules only to the specified local IP addresses" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12050 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:280 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12179 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:291 msgid "Apply Strategy To" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14426 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:789 +msgid "Apply this schedule rule to all devices in the selected family profile(s)." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14844 #: src/tachyon/tabs/diagnostic/initController.ts:1181 msgid "Applying fix" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14424 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14842 #: src/tachyon/tabs/diagnostic/initController.ts:1179 msgid "Applying..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12569 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:872 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12728 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:920 msgid "Arguments" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11669 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11790 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:60 msgid "Ask Tachyon AI Assistant a question..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:378 +msgid "Assigned Devices (MAC / IP)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2201 msgid "At least one Admin Chat ID is required" msgstr "" @@ -711,30 +761,42 @@ msgid "Auth Digest" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2280 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7504 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7844 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10901 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7599 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7939 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11022 #: src/tachyon/tabs/dashboard/initController.ts:923 #: src/tachyon/tabs/dashboard/initController.ts:1355 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:452 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:35 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:452 msgid "Auto" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12432 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:715 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12588 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:760 msgid "Auto Modes (--auto)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10487 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10608 #: src/partials/modal/renderModal.ts:286 msgid "Auto refresh" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3177 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3200 msgid "Auto update" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12204 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:321 +msgid "Auto-apply best strategy" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13179 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13184 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1451 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1456 +msgid "Auto-apply failed" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1993 msgid "Auto-detected domains" msgstr "" @@ -756,7 +818,7 @@ msgstr "" msgid "Auto-generate HWID" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14354 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14772 #: src/tachyon/tabs/diagnostic/initController.ts:1094 msgid "Auto-Heal Network Stack" msgstr "" @@ -789,12 +851,12 @@ msgstr "" msgid "Automatically increase check intervals when healthy (to 5 min) and decrease on problems (to 120s)." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12713 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1036 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12872 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1082 msgid "Automatically runs a diagnostic probe against the target service, queries the built-in DPI Knowledge Base, and synthesizes 3-5 custom bypass strategies tailored to your ISP." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7924 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8019 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3157 #: src/tachyon/tabs/dashboard/initController.ts:1458 msgid "Automatically select the fastest node in the current level" @@ -804,19 +866,19 @@ msgstr "" msgid "Automatically update remote hosts lists on schedule" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10971 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11161 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11092 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11282 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:125 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:346 msgid "Available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10564 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10685 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:58 msgid "Available actions" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11163 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11284 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:348 msgid "Avg. latency" msgstr "" @@ -827,7 +889,7 @@ msgstr "" msgid "Backend validation failed: %s" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10918 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11039 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:58 msgid "Basic connectivity" msgstr "" @@ -836,7 +898,7 @@ msgstr "" msgid "Bearer Auth Token" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:480 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:875 msgid "Beginning of the schedule interval (e.g. 22:00)" msgstr "" @@ -844,73 +906,91 @@ msgstr "" msgid "Belarus (by)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11888 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:88 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12011 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:92 msgid "Benchmark & Test" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12897 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1256 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12895 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1113 +msgid "Benchmark History" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13261 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1545 msgid "Benchmark stopped" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12071 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:306 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12228 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:352 msgid "Benchmarking in progress..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12945 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1168 +msgid "Best Strategy" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9535 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9554 msgid "BitTorrent / P2P" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:341 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:714 msgid "Block" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:472 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:867 msgid "Block / Disable in scheduled hours (Standard)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:640 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1035 msgid "Block at DNS level" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:274 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:278 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:647 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:651 msgid "Block in interval" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:467 -msgid "Block internet access or specific proxy sections for individual devices based on time and days." +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:481 +msgid "Block internet access or specific proxy sections for family profiles or individual devices based on time and days." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:633 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1028 msgid "Block listed sites (Standard)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:356 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:729 msgid "Block:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:629 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1024 msgid "Block: deny the listed sites. Allow only (whitelist): deny everything except the listed sites. Whitelist mode requires DNS-level blocking and applies to the schedule window." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10919 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11040 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:59 msgid "Blocked resources" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:329 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:702 msgid "Blocked Sites" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:539 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:934 msgid "Blocked Sites (Domains)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9363 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2727 +msgid "Blocks access to private/LAN IP addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, etc.) for selected users before applying routing mode." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:430 +msgid "Blocks port 853 (DNS-over-TLS) and prevents bypass via encrypted DNS or Private Relay on smartphones for devices in this profile." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9458 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:57 msgid "Bootstrap DNS" msgstr "" @@ -923,24 +1003,24 @@ msgstr "" msgid "Bot Status" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9743 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9762 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9838 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9857 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:51 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:79 msgid "Browser FakeIP check could not be completed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9762 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9857 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:82 msgid "Browser is not using FakeIP" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9762 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9857 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:81 msgid "Browser is using FakeIP correctly" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14910 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15328 #: src/tachyon/tabs/diagnostic/initController.ts:1745 msgid "Bug report downloaded" msgstr "" @@ -953,12 +1033,12 @@ msgstr "" msgid "By flag emoji from name" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11926 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13007 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13007 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:139 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1389 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1390 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12055 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13424 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13424 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:150 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1737 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1738 msgid "ByeDPI (ciadpi)" msgstr "" @@ -981,32 +1061,32 @@ msgstr "" msgid "ByeDPI option requires a value: %s" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10015 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10110 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:71 msgid "ByeDPI package is installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10015 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10110 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:72 msgid "ByeDPI package is not installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10010 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10105 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:64 msgid "ByeDPI provider binary is available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10010 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10105 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:65 msgid "ByeDPI provider binary is not available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10030 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10125 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:107 msgid "ByeDPI sing-box outbound is configured" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10030 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10125 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:108 msgid "ByeDPI sing-box outbound is not configured" msgstr "" @@ -1039,7 +1119,7 @@ msgstr "" msgid "Cache file path cannot be empty" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14807 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15225 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7721 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:434 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:575 @@ -1049,14 +1129,14 @@ msgstr "" msgid "Cancel" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9343 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9407 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9588 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9651 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9813 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9897 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9985 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13160 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9438 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9502 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9683 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9746 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9908 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9992 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10080 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13578 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:26 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:27 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:172 @@ -1080,7 +1160,7 @@ msgstr "" msgid "Cascade connection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2796 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2819 msgid "Certificate path" msgstr "" @@ -1088,18 +1168,18 @@ msgstr "" msgid "Certificate pin is unavailable. Apply or restart the server to generate the default certificate, then open this dialog again." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11596 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11717 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:865 msgid "Check again" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11546 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11667 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:793 msgid "Check all" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17980 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18494 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18398 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18912 #: src/tachyon/tabs/updates/initController.ts:540 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:321 msgid "Check completed!" @@ -1112,26 +1192,26 @@ msgstr "" msgid "Check Connection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11421 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11534 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11542 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11655 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:652 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:778 msgid "Check domain" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7911 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8006 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2645 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3108 #: src/tachyon/tabs/dashboard/initController.ts:1445 msgid "Check interval" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11100 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11221 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:276 msgid "Check mode:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10678 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10799 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:172 msgid "Check Services" msgstr "" @@ -1140,43 +1220,43 @@ msgstr "" msgid "Check timeout after which the server is considered dead" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18828 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19246 #: src/tachyon/tabs/updates/initController.ts:975 msgid "Check update" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7909 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8004 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2671 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3095 #: src/tachyon/tabs/dashboard/initController.ts:1443 msgid "Check URL" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11761 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11882 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:170 msgid "Check YouTube" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8040 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8135 #: src/tachyon/tabs/dashboard/initController.ts:1624 msgid "Checking Connection..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17809 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18227 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:112 msgid "Checking for updates..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9333 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9397 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9578 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9639 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9722 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9803 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9887 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9975 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13148 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15167 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9428 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9492 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9673 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9734 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9817 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9898 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9982 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10070 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13566 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15585 #: src/tachyon/tabs/diagnostic/initController.ts:2051 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:14 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:15 @@ -1206,41 +1286,49 @@ msgstr "" msgid "Checking…" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5396 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5491 #: src/tachyon/tabs/diagnostic/helpers/getCheckTitle.ts:2 msgid "checks" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9303 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9781 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9398 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9876 #: src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:10 #: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:26 msgid "Checks failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9292 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9738 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9792 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9387 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9833 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9887 #: src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:23 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:43 #: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:13 msgid "Checks passed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9315 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9410 #: src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:27 msgid "Checks passed with manual DHCP" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:13 +msgid "Child (🧒)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9255 msgid "China (cn)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:361 +msgid "Choose a visual icon for this profile" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7540 msgid "Choose Hosts File..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:435 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:830 msgid "Choose whether to restrict the entire internet or only specific Tachyon routing sections." msgstr "" @@ -1248,7 +1336,7 @@ msgstr "" msgid "Choose whether to route traffic to all destinations except selected countries (Exclude) or only to selected countries (Include)." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:447 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:842 msgid "Choose which routing sections to apply this schedule to." msgstr "" @@ -1269,12 +1357,12 @@ msgstr "" msgid "Clear" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14347 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14765 #: src/tachyon/tabs/diagnostic/initController.ts:1087 msgid "Clear DNS cache" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3336 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3359 msgid "Client Address" msgstr "" @@ -1282,11 +1370,11 @@ msgstr "" msgid "Client Certificate" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3348 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3371 msgid "Client DNS" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2894 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2917 msgid "Client fingerprint" msgstr "" @@ -1306,62 +1394,62 @@ msgstr "" msgid "Client link QR code" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3396 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3419 msgid "Client Private Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3406 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3429 msgid "Client Public Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3337 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3360 msgid "Client VPN IP address (e.g. 10.0.0.2/32)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7782 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10466 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11019 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11601 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11811 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12239 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14751 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16324 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16367 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18075 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18110 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7877 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10587 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11140 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11722 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11932 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12394 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15169 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16742 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16785 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18493 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18528 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3660 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10239 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1803 #: src/partials/modal/renderModal.ts:263 -#: src/tachyon/tabs/dashboard/initController.ts:1267 -#: src/tachyon/tabs/diagnostic/initController.ts:1553 #: src/tachyon/tabs/monitoring/initController.ts:893 #: src/tachyon/tabs/monitoring/initController.ts:948 +#: src/tachyon/tabs/diagnostic/initController.ts:1553 +#: src/tachyon/tabs/dashboard/initController.ts:1267 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:227 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:178 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:871 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:497 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:541 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:442 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:488 msgid "Close" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15646 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15647 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16064 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16065 #: src/tachyon/tabs/monitoring/render.ts:68 #: src/tachyon/tabs/monitoring/render.ts:69 msgid "Close all connections" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16293 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16294 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16711 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16712 #: src/tachyon/tabs/monitoring/initController.ts:860 #: src/tachyon/tabs/monitoring/initController.ts:861 msgid "Close connection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15609 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16191 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16027 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16609 #: src/tachyon/tabs/monitoring/initController.ts:729 #: src/tachyon/tabs/monitoring/render.ts:29 msgid "Closed" @@ -1387,8 +1475,8 @@ msgstr "" msgid "Comma-separated list of Telegram user IDs authorized to control the bot." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12505 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:798 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12664 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:846 msgid "Command-line arguments string..." msgstr "" @@ -1396,7 +1484,7 @@ msgstr "" msgid "Community Lists" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6345 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6440 #: src/tachyon/services/core.service.ts:43 msgid "Component update available" msgstr "" @@ -1405,16 +1493,16 @@ msgstr "" msgid "Component update check interval" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:539 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:553 msgid "Components" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5986 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6081 #: src/tachyon/helpers/singBoxVariant.ts:60 msgid "compressed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3129 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3152 msgid "Concurrency" msgstr "" @@ -1422,6 +1510,11 @@ msgstr "" msgid "Conditions" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13251 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1534 +msgid "confidence" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1539 msgid "Config File Path" msgstr "" @@ -1439,11 +1532,11 @@ msgid "Configure User-Agent in the item settings" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2412 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5224 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13226 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5319 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13644 #: src/tachyon/methods/custom/getDashboardSections.ts:1651 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:620 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:141 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:620 msgid "Conflict" msgstr "" @@ -1462,7 +1555,7 @@ msgstr "" msgid "Connected" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14507 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14925 #: src/tachyon/tabs/diagnostic/initController.ts:1276 msgid "Connected Devices" msgstr "" @@ -1471,26 +1564,26 @@ msgstr "" msgid "Connection URL" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16419 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16837 #: src/tachyon/tabs/monitoring/initController.ts:1012 msgid "Connections are unavailable" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13255 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13673 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:174 msgid "Connectivity probe failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12934 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1299 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13351 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1647 msgid "Consulting DPI Knowledge Base & AI..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:628 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1023 msgid "Content Mode" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3455 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3478 msgid "Cookie packet junk size (S3)" msgstr "" @@ -1500,32 +1593,32 @@ msgstr "" msgid "Copied" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10459 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10580 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1753 #: src/partials/modal/renderModal.ts:258 msgid "Copy" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17851 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18269 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:160 msgid "Copy log" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2317 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2318 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7714 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7809 #: src/tachyon/tabs/dashboard/initController.ts:1192 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:498 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:499 msgid "Copy proxy link" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14713 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15131 #: src/tachyon/tabs/diagnostic/initController.ts:1511 msgid "Copy Support Report" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9768 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9863 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:89 msgid "Could not compare FakeIP and control public IPs" msgstr "" @@ -1534,7 +1627,7 @@ msgstr "" msgid "Country code (e.g. ru, us, de)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14664 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15082 #: src/tachyon/tabs/diagnostic/initController.ts:1452 msgid "Current Diagnosis" msgstr "" @@ -1552,7 +1645,7 @@ msgstr "" msgid "Currently unavailable" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10921 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11042 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:61 msgid "Custom" msgstr "" @@ -1570,24 +1663,24 @@ msgstr "" msgid "Custom DNS Records (Hosts)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10920 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11041 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:60 msgid "Custom domains" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3480 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3503 msgid "Custom header for cookie packet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3486 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3509 msgid "Custom header for data packet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3468 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3491 msgid "Custom header for handshake initiation" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3474 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3497 msgid "Custom header for handshake response" msgstr "" @@ -1607,20 +1700,25 @@ msgstr "" msgid "Custom outbound configurations in JSON format" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12528 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:826 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12687 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:874 msgid "Custom strategy added!" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:307 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:269 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:680 msgid "Daily Quota" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:516 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:397 +msgid "Daily Screen Time Quota (minutes)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:911 msgid "Daily time quota (minutes)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:515 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:529 msgid "Dashboard" msgstr "" @@ -1629,7 +1727,12 @@ msgstr "" msgid "Dashboard currently unavailable" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:503 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12941 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1164 +msgid "Date" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:898 msgid "Days of Week" msgstr "" @@ -1655,11 +1758,11 @@ msgstr "" msgid "Delay value cannot be empty" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12630 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12789 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1828 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:615 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:621 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:940 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:986 msgid "Delete" msgstr "" @@ -1686,8 +1789,9 @@ msgstr "" msgid "detour must be a non-empty string" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:194 -msgid "Device / IP / MAC" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:218 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:565 +msgid "dev." msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9486 @@ -1706,31 +1810,35 @@ msgstr "" msgid "Device or IP" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14582 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15000 #: src/tachyon/tabs/diagnostic/initController.ts:1359 msgid "Device updated" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:236 +msgid "Devices (MAC / IP)" +msgstr "" + #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:1274 msgid "Devices listed here are always routed through the assigned section, regardless of global rules." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9317 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9412 #: src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:37 msgid "DHCP has DNS server" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9317 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9412 #: src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:36 msgid "DHCP is managed manually" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:503 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:517 msgid "Diagnostics" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10892 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10898 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11013 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11019 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2704 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:25 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:32 @@ -1741,7 +1849,7 @@ msgstr "" msgid "Direct (Default)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14570 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14988 #: src/tachyon/tabs/diagnostic/initController.ts:1346 msgid "Direct Bypass" msgstr "" @@ -1750,12 +1858,12 @@ msgstr "" msgid "Direct connection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14564 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14982 #: src/tachyon/tabs/diagnostic/initController.ts:1337 msgid "Direct WAN" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10600 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10721 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:94 msgid "Disable autostart" msgstr "" @@ -1768,8 +1876,10 @@ msgstr "" msgid "Disable the QUIC protocol to improve compatibility or fix issues with video streaming" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:369 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:396 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:342 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:355 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:742 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:769 msgid "Disabled" msgstr "" @@ -1777,8 +1887,8 @@ msgstr "" msgid "Disabling interception is incompatible with action=zapret2 because Tachyon sends matched traffic through NFQUEUE." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12420 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:703 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12576 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:748 msgid "Disorder Values (-d)" msgstr "" @@ -1804,7 +1914,7 @@ msgstr "" msgid "DNS Failures Before Switching" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9375 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9470 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:75 msgid "DNS on router" msgstr "" @@ -1857,7 +1967,7 @@ msgstr "" msgid "DNS server address cannot be empty" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3349 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3372 msgid "DNS server pushed to the client configuration" msgstr "" @@ -1907,7 +2017,7 @@ msgstr "" msgid "DNS Unavailability Timeout" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13105 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13523 #: src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:26 msgid "Do not panic, everything can be fixed, just..." msgstr "" @@ -1936,25 +2046,25 @@ msgstr "" msgid "Do not test specified servers." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14135 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14155 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14163 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14553 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14573 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14581 #: src/tachyon/tabs/diagnostic/initController.ts:731 #: src/tachyon/tabs/diagnostic/initController.ts:773 #: src/tachyon/tabs/diagnostic/initController.ts:781 msgid "Doctor failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14144 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14146 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14146 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14562 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14564 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14564 #: src/tachyon/tabs/diagnostic/initController.ts:747 #: src/tachyon/tabs/diagnostic/initController.ts:759 #: src/tachyon/tabs/diagnostic/initController.ts:760 msgid "Doctor repair" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9496 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9591 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:54 msgid "Does not resolve" msgstr "" @@ -1984,7 +2094,7 @@ msgstr "" msgid "Domains automatically detected by Smart Detect or added via Telegram bot. You can manually edit or remove them here." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:540 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:935 msgid "Domains to block for the selected devices. Leave empty to block all internet. Enter one domain per line, e.g. youtube.com. Use the preset buttons to quickly add common categories." msgstr "" @@ -1996,14 +2106,14 @@ msgstr "" msgid "Dont Touch My DHCP!" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8225 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8237 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8320 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8332 #: src/tachyon/tabs/dashboard/initController.ts:1851 #: src/tachyon/tabs/dashboard/initController.ts:1864 msgid "Downlink" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10454 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10575 #: src/partials/modal/renderModal.ts:253 msgid "Download" msgstr "" @@ -2048,9 +2158,9 @@ msgstr "" msgid "Download through" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16317 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16364 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16503 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16735 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16782 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16921 #: src/tachyon/tabs/monitoring/initController.ts:886 #: src/tachyon/tabs/monitoring/initController.ts:945 #: src/tachyon/tabs/monitoring/initController.ts:1134 @@ -2061,11 +2171,21 @@ msgstr "" msgid "Downloading and applying rule sets and lists..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11940 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:155 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13250 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1533 +msgid "DPI Detected" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12069 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:166 msgid "DPI Engine" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12944 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1167 +msgid "DPI Type" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:432 msgid "Drag rows to change priority. The rule at the top is checked first." msgstr "" @@ -2092,7 +2212,15 @@ msgstr "" msgid "e.g. google.com, 1.1.1.1, 443" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:409 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:372 +msgid "e.g. Kids" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:369 +msgid "e.g. Kids (Alice & Tim), Teenager, School PC, Guests" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:782 msgid "e.g. Kids Phone (Night YouTube)" msgstr "" @@ -2109,7 +2237,8 @@ msgstr "" msgid "Edit" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:187 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:201 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:539 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7235 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2618 msgid "Enable" @@ -2131,7 +2260,7 @@ msgstr "" msgid "Enable Anomaly Detection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2981 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3004 msgid "Enable authentication" msgstr "" @@ -2139,7 +2268,7 @@ msgstr "" msgid "Enable automatic updates for remote lists and rule sets" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10610 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10731 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:104 msgid "Enable autostart" msgstr "" @@ -2152,7 +2281,7 @@ msgstr "" msgid "Enable Config Validation" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14355 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14773 #: src/tachyon/tabs/diagnostic/initController.ts:1095 msgid "Enable Direct WAN Bypass" msgstr "" @@ -2243,22 +2372,28 @@ msgstr "" msgid "Enables the background watchdog process to monitor services and auto-recover on failures." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:492 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:887 msgid "End of the schedule interval (e.g. 08:00). Supports spans crossing midnight." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:491 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:886 msgid "End Time (HH:MM)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12185 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12568 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:438 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:871 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:418 +msgid "Enforce SafeSearch & YouTube Restricted Mode" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12340 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12727 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12942 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:482 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:919 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1165 msgid "Engine" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2727 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2750 msgid "Enter a complete sing-box inbound object" msgstr "" @@ -2273,7 +2408,7 @@ msgstr "" msgid "Enter a display name" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11414 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11535 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:644 msgid "Enter a domain or IP to check (e.g. example.com)..." msgstr "" @@ -2283,7 +2418,8 @@ msgstr "" msgid "Enter a level name" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:529 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:410 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:924 msgid "Enter a whole number of minutes between 0 and 1440" msgstr "" @@ -2329,7 +2465,7 @@ msgstr "" msgid "Error updating lists:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:160 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:172 msgid "Every day" msgstr "" @@ -2406,38 +2542,48 @@ msgstr "" msgid "External nfqws2 config files bypass Tachyon queue management and explicit validation." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14442 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14860 #: src/tachyon/tabs/diagnostic/initController.ts:1202 msgid "Failed to apply fix" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4026 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12987 -#: src/tachyon/methods/shell/index.ts:1149 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1360 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4036 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13404 +#: src/tachyon/methods/shell/index.ts:1159 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1708 msgid "Failed to apply strategy" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16692 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16706 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4213 +#: src/tachyon/methods/shell/index.ts:1411 +msgid "Failed to auto-apply strategy" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4251 +#: src/tachyon/methods/shell/index.ts:1456 +msgid "Failed to clear fuzzer history" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17110 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17124 #: src/tachyon/tabs/monitoring/initController.ts:1400 #: src/tachyon/tabs/monitoring/initController.ts:1415 msgid "Failed to close connection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16721 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16733 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17139 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17151 #: src/tachyon/tabs/monitoring/initController.ts:1434 #: src/tachyon/tabs/monitoring/initController.ts:1447 msgid "Failed to close connections" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12969 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1341 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13386 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1689 msgid "Failed to communicate with AI provider" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14300 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14718 #: src/tachyon/tabs/diagnostic/initController.ts:974 msgid "Failed to copy report to clipboard" msgstr "" @@ -2452,12 +2598,17 @@ msgstr "" msgid "Failed to delete snapshot" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3280 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3283 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18579 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18579 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18639 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18811 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4190 +#: src/tachyon/methods/shell/index.ts:1383 +msgid "Failed to detect DPI type" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3284 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3287 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18997 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18997 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19057 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19229 #: src/tachyon/methods/shell/index.ts:171 #: src/tachyon/methods/shell/index.ts:178 #: src/tachyon/tabs/updates/initController.ts:661 @@ -2467,7 +2618,7 @@ msgstr "" msgid "Failed to execute" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14913 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15331 #: src/tachyon/tabs/diagnostic/initController.ts:1748 msgid "Failed to generate bug report" msgstr "" @@ -2477,21 +2628,31 @@ msgstr "" msgid "Failed to generate WARP config:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4109 -#: src/tachyon/methods/shell/index.ts:1274 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4233 +#: src/tachyon/methods/shell/index.ts:1433 +msgid "Failed to get fuzzer history" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4119 +#: src/tachyon/methods/shell/index.ts:1287 msgid "Failed to get fuzzer patterns" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3984 -#: src/tachyon/methods/shell/index.ts:1101 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3994 +#: src/tachyon/methods/shell/index.ts:1111 msgid "Failed to get fuzzer status" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4053 -#: src/tachyon/methods/shell/index.ts:1201 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4063 +#: src/tachyon/methods/shell/index.ts:1211 msgid "Failed to get fuzzer strategies" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12998 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1230 +msgid "Failed to load history" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:630 msgid "Failed to load snapshots" msgstr "" @@ -2500,7 +2661,7 @@ msgstr "" msgid "Failed to parse file:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11062 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11183 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:231 msgid "Failed to parse target list." msgstr "" @@ -2509,18 +2670,18 @@ msgstr "" msgid "Failed to parse WARP config:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3657 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3661 #: src/tachyon/methods/shell/index.ts:664 msgid "Failed to read operation log" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11714 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11835 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:115 msgid "Failed to receive response from AI service." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4161 -#: src/tachyon/methods/shell/index.ts:1336 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4171 +#: src/tachyon/methods/shell/index.ts:1362 msgid "Failed to reset fuzzer patterns" msgstr "" @@ -2528,8 +2689,8 @@ msgstr "" msgid "Failed to reset settings" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14741 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14832 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15159 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15250 #: src/tachyon/tabs/diagnostic/initController.ts:1543 #: src/tachyon/tabs/diagnostic/initController.ts:1651 msgid "Failed to restore native internet" @@ -2556,13 +2717,13 @@ msgstr "" msgid "Failed to save DNS Turbo Cache" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4135 -#: src/tachyon/methods/shell/index.ts:1305 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4145 +#: src/tachyon/methods/shell/index.ts:1320 msgid "Failed to save fuzzer patterns" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12465 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:751 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12621 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:796 msgid "Failed to save patterns" msgstr "" @@ -2574,8 +2735,8 @@ msgstr "" msgid "Failed to save snapshot" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12919 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1281 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13335 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1628 msgid "Failed to start benchmark" msgstr "" @@ -2583,13 +2744,13 @@ msgstr "" msgid "Failed to start bot" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3961 -#: src/tachyon/methods/shell/index.ts:1075 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3971 +#: src/tachyon/methods/shell/index.ts:1085 msgid "Failed to start fuzzer" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11045 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11617 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11166 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11738 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:213 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:890 msgid "Failed to start service check." @@ -2603,8 +2764,8 @@ msgstr "" msgid "Failed to stop bot" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3998 -#: src/tachyon/methods/shell/index.ts:1116 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4008 +#: src/tachyon/methods/shell/index.ts:1126 msgid "Failed to stop fuzzer" msgstr "" @@ -2612,30 +2773,30 @@ msgstr "" msgid "Failed to stop watchdog" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7325 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7331 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7420 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7426 #: src/tachyon/tabs/dashboard/initController.ts:700 #: src/tachyon/tabs/dashboard/initController.ts:706 msgid "Failed to switch proxy" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4086 -#: src/tachyon/methods/shell/index.ts:1246 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4096 +#: src/tachyon/methods/shell/index.ts:1256 msgid "Failed to synthesize AI strategies" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14587 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15005 #: src/tachyon/tabs/diagnostic/initController.ts:1364 msgid "Failed to update device" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7031 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7031 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7046 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7079 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7082 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7982 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7985 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7126 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7126 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7141 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7174 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7177 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8077 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8080 #: src/tachyon/tabs/dashboard/initController.ts:309 #: src/tachyon/tabs/dashboard/initController.ts:310 #: src/tachyon/tabs/dashboard/initController.ts:330 @@ -2650,45 +2811,57 @@ msgstr "" msgid "Failover failure threshold" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9768 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9863 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:91 msgid "FakeIP and control checks use different public IPs" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9768 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9863 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:92 msgid "FakeIP and control checks use the same public IP" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9740 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9835 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:46 msgid "FakeIP works; public IP comparison is inconclusive" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3104 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3127 msgid "FakeTLS host" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3186 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3209 msgid "Fallback on unknown DC" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:18 +msgid "Family (🏠)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:472 +msgid "Family Profile" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:466 +msgid "Family Profiles" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1866 msgid "Faster DNS health monitoring than the default cycle. Switches bootstrap DNS on failure." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7929 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8024 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3168 #: src/tachyon/tabs/dashboard/initController.ts:1464 msgid "Faster server search interval" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4546 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4641 #: src/tachyon/methods/custom/getDashboardSections.ts:661 msgid "Fastest" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11228 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11349 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:425 msgid "Filter by service:" msgstr "" @@ -2697,8 +2870,8 @@ msgstr "" msgid "Filter the servers that will be displayed on the dashboard." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12114 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:355 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12271 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:401 msgid "Filter:" msgstr "" @@ -2706,17 +2879,17 @@ msgstr "" msgid "Finland (fi)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9560 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9655 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:136 msgid "Firewall WAN port" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14436 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14854 #: src/tachyon/tabs/diagnostic/initController.ts:1196 msgid "Fix applied" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14341 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14759 #: src/tachyon/tabs/diagnostic/initController.ts:1081 msgid "Fix resolv.conf" msgstr "" @@ -2726,25 +2899,25 @@ msgstr "" msgid "Fix the highlighted fields and save again." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14144 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14432 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14562 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14850 #: src/tachyon/tabs/diagnostic/initController.ts:753 #: src/tachyon/tabs/diagnostic/initController.ts:1192 msgid "Fixed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14358 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14776 #: src/tachyon/tabs/diagnostic/initController.ts:1098 msgid "Flush Conntrack Table" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12389 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:670 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12545 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:715 msgid "Fooling Methods (dpi-desync-fooling)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12340 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:619 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12496 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:664 msgid "Fooling Methods (fooling)" msgstr "" @@ -2756,6 +2929,10 @@ msgstr "" msgid "Forced device routing" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:419 +msgid "Forces SafeSearch on Google, Yandex, Bing, DuckDuckGo and Strict Restricted Mode on YouTube via DNS rewrite for all devices in this profile." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1619 msgid "Forces sing-box to tunnel DNS requests via DoQ with Encrypted Client Hello (ECH) for SNI hiding." msgstr "" @@ -2764,27 +2941,27 @@ msgstr "" msgid "France (fr)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:26 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:38 msgid "Fri" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:16 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:28 msgid "Friday" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3149 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3172 msgid "Fronting IP" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3138 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3161 msgid "Fronting port" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3159 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3182 msgid "Fronting proxy protocol" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11764 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11885 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:173 msgid "Full System Diagnostic" msgstr "" @@ -2801,7 +2978,11 @@ msgstr "" msgid "Game Console Optimizer (NAT Type 1)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:63 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:15 +msgid "Gamer (🎮)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:75 msgid "Gaming" msgstr "" @@ -2809,7 +2990,7 @@ msgstr "" msgid "Generate a random 16-character hexadecimal HWID" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10705 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10826 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:199 msgid "Generate bug report" msgstr "" @@ -2829,7 +3010,7 @@ msgstr "" msgid "Generate WARP Config" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9524 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9619 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:89 msgid "Generated inbound" msgstr "" @@ -2862,7 +3043,7 @@ msgstr "" msgid "GET endpoints are open on LAN. POST endpoints require Authorization: Bearer ." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10619 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10740 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:113 msgid "Get global check" msgstr "" @@ -2871,28 +3052,32 @@ msgstr "" msgid "Give the snapshot a name. It is saved with the current date and can be restored from this list later." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14110 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14528 #: src/tachyon/tabs/diagnostic/initController.ts:703 msgid "Global check" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14121 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14125 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14539 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14543 #: src/tachyon/tabs/diagnostic/initController.ts:714 #: src/tachyon/tabs/diagnostic/initController.ts:718 msgid "Global check failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12983 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1356 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13400 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1704 msgid "Global Default" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2961 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:467 +msgid "Group devices into family profiles to manage content filtering, SafeSearch, and screen time limits in one place." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2984 msgid "gRPC service" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3214 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3237 msgid "Handshake timeout" msgstr "" @@ -2900,28 +3085,28 @@ msgstr "" msgid "Health Checks" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11629 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11750 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:14 msgid "Hello! I am Tachyon AI Assistant. How can I help you today? Ask me about domain blocks, diagnostics, or router settings." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3522 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3528 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3534 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3545 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3551 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3557 msgid "Hex or binary junk payload" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3504 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3510 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3516 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3527 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3533 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3539 msgid "Hex or binary payload" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3492 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3515 msgid "Hex or binary payload for init" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3498 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3521 msgid "Hex or binary payload for response" msgstr "" @@ -2969,12 +3154,12 @@ msgstr "" msgid "Hide URLTest group nodes" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10506 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10627 #: src/partials/modal/renderModal.ts:310 msgid "Hide values" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7916 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8011 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3132 #: src/tachyon/tabs/dashboard/initController.ts:1450 msgid "Higher-level check interval" @@ -2984,13 +3169,22 @@ msgstr "" msgid "Higher-priority DNS Check" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14688 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12015 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15106 #: src/tachyon/tabs/diagnostic/initController.ts:1480 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:96 msgid "History" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16307 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16360 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4256 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12908 +#: src/tachyon/methods/shell/index.ts:1461 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1126 +msgid "History cleared" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16725 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16778 #: src/tachyon/tabs/monitoring/initController.ts:876 #: src/tachyon/tabs/monitoring/initController.ts:941 msgid "Host" @@ -3041,12 +3235,12 @@ msgstr "" msgid "HTTP" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5287 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5382 #: src/tachyon/api.ts:27 msgid "HTTP error" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2954 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2977 msgid "HTTP hosts" msgstr "" @@ -3058,9 +3252,9 @@ msgstr "" msgid "HWID" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7800 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7895 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2684 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3204 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3227 #: src/tachyon/tabs/dashboard/initController.ts:1295 msgid "Idle timeout" msgstr "" @@ -3096,7 +3290,7 @@ msgstr "" msgid "Import URLTest groups returned by this subscription provider" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2726 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2749 msgid "Inbound JSON" msgstr "" @@ -3144,15 +3338,15 @@ msgstr "" msgid "Information" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3540 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3563 msgid "Init handshake timeout" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3467 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3490 msgid "Init packet header (H1)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3443 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3466 msgid "Init packet junk size (S1)" msgstr "" @@ -3184,42 +3378,42 @@ msgstr "" msgid "Init Packet Payload (I5)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3491 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3514 msgid "Init payload (I1)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3539 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3562 msgid "Init timeout (Itime)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18065 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18837 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18483 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19255 #: src/tachyon/tabs/updates/initController.ts:989 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:431 msgid "Install" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19260 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19678 #: src/tachyon/tabs/updates/initController.ts:1502 msgid "Install another build:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13001 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13004 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13007 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1379 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1384 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1389 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13418 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13421 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13424 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1727 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1732 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1737 msgid "Installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19140 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19558 #: src/tachyon/tabs/updates/initController.ts:1363 msgid "Installed build → Available build" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18358 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19148 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18776 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19566 #: src/tachyon/tabs/updates/initController.ts:359 #: src/tachyon/tabs/updates/initController.ts:1371 msgid "Installed version is newer than release" @@ -3237,8 +3431,8 @@ msgstr "" msgid "Interface monitoring for Bad WAN" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7802 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7934 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7897 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8029 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2698 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3184 #: src/tachyon/tabs/dashboard/initController.ts:1297 @@ -3254,7 +3448,7 @@ msgstr "" msgid "Interrupt connections when URLTest switches the selected server" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7798 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7893 #: src/tachyon/tabs/dashboard/initController.ts:1293 msgid "Interval" msgstr "" @@ -3286,7 +3480,8 @@ msgstr "" msgid "Invalid domain address" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:554 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:455 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:949 msgid "Invalid domain: empty prefix value" msgstr "" @@ -3372,7 +3567,7 @@ msgstr "" msgid "Invalid IP address" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:182 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:194 msgid "Invalid IP or MAC address. Expected e.g. 192.168.1.150 or AA:BB:CC:DD:EE:FF" msgstr "" @@ -3500,7 +3695,7 @@ msgstr "" msgid "Invalid SOCKS URL: parsing failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:109 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:121 msgid "Invalid time format. Expected HH:MM (e.g. 22:00)" msgstr "" @@ -3624,8 +3819,8 @@ msgstr "" msgid "IP Addresses (IP CIDR)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12444 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:727 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12600 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:772 msgid "IP Frag Bounds (--ip-frag)" msgstr "" @@ -3645,19 +3840,19 @@ msgstr "" msgid "Isolate BitTorrent traffic and force it direct to prevent VPN bans" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14144 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14562 #: src/tachyon/tabs/diagnostic/initController.ts:749 msgid "Issues" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9298 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9787 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9393 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9882 #: src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:17 #: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:20 msgid "Issues detected" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14458 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14876 #: src/tachyon/tabs/diagnostic/initController.ts:1221 msgid "Issues detected. Review the diagnosis above." msgstr "" @@ -3705,7 +3900,7 @@ msgstr "" msgid "Junk Min Size (Jmin)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3425 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3448 msgid "Junk packet count (Jc)" msgstr "" @@ -3713,39 +3908,39 @@ msgstr "" msgid "Junk Packet Count (Jc)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3437 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3460 msgid "Junk packet max size (Jmax)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3431 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3454 msgid "Junk packet min size (Jmin)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3521 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3544 msgid "Junk payload (J1)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3527 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3550 msgid "Junk payload (J2)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3533 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3556 msgid "Junk payload (J3)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3456 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3479 msgid "Junk size for cookie packet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3444 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3467 msgid "Junk size for initiation packet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3450 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3473 msgid "Junk size for response packet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3462 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3485 msgid "Junk size for transport packet" msgstr "" @@ -3770,7 +3965,7 @@ msgstr "" msgid "Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2811 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2834 msgid "Key path" msgstr "" @@ -3778,7 +3973,7 @@ msgstr "" msgid "Keyword must not contain spaces or commas" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14674 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15092 #: src/tachyon/tabs/diagnostic/initController.ts:1464 msgid "LAN Devices" msgstr "" @@ -3787,8 +3982,12 @@ msgstr "" msgid "Language for AI Doctor diagnosis responses" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3543 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3562 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:17 +msgid "Laptop / PC (💻)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3547 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3566 #: src/tachyon/methods/shell/index.ts:519 #: src/tachyon/methods/shell/index.ts:540 msgid "Latency test failed" @@ -3798,14 +3997,14 @@ msgstr "" msgid "Latency test URL" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18360 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19146 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18778 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19564 #: src/tachyon/tabs/updates/initController.ts:362 #: src/tachyon/tabs/updates/initController.ts:1369 msgid "Latest version is installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19148 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19566 #: src/tachyon/tabs/updates/initController.ts:1371 msgid "Latest version:" msgstr "" @@ -3818,7 +4017,7 @@ msgstr "" msgid "Level name" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:517 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:912 msgid "Limit device network usage per day. When the quota is exhausted, the device is blocked until midnight. 0 disables the limit." msgstr "" @@ -3842,7 +4041,7 @@ msgstr "" msgid "Listen port" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9554 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9649 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:125 msgid "Listening port" msgstr "" @@ -3881,31 +4080,31 @@ msgstr "" msgid "Loading client link..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14477 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14895 #: src/tachyon/tabs/diagnostic/initController.ts:1243 msgid "Loading connected LAN devices..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15678 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16410 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16096 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16828 #: src/tachyon/tabs/monitoring/initController.ts:1002 #: src/tachyon/tabs/monitoring/render.ts:101 msgid "Loading connections" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10994 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11033 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11115 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11154 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:150 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:194 msgid "Loading service list..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19012 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19025 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19035 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19045 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19055 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19065 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19430 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19443 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19453 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19463 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19473 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19483 #: src/tachyon/tabs/updates/initController.ts:1201 #: src/tachyon/tabs/updates/initController.ts:1216 #: src/tachyon/tabs/updates/initController.ts:1234 @@ -3927,12 +4126,12 @@ msgstr "" msgid "Log Level" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5988 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6083 #: src/tachyon/helpers/singBoxVariant.ts:62 msgid "lx" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9370 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9465 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:67 msgid "Main DNS" msgstr "" @@ -3942,8 +4141,8 @@ msgid "Main DNS server. If multiple servers are selected, a timeout switches to msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2280 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7497 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7837 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7592 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7932 #: src/tachyon/tabs/dashboard/initController.ts:914 #: src/tachyon/tabs/dashboard/initController.ts:1346 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:450 @@ -3966,7 +4165,7 @@ msgstr "" msgid "MASQUE Private Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3297 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3320 msgid "Masquerade LAN traffic into tailnet" msgstr "" @@ -3990,7 +4189,7 @@ msgstr "" msgid "Max reconnects per hour before alert (default 10)." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3438 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3461 msgid "Maximum size of junk packets" msgstr "" @@ -3998,16 +4197,16 @@ msgstr "" msgid "Maximum time to wait for example.com to resolve during a DNS health check." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8249 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8344 #: src/tachyon/tabs/dashboard/initController.ts:1877 msgid "Memory Usage" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:84 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:96 msgid "Messengers" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2968 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2991 msgid "Method" msgstr "" @@ -4015,8 +4214,10 @@ msgstr "" msgid "Metrics Retention (hours)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:319 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:325 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:281 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:287 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:692 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:698 msgid "min/day" msgstr "" @@ -4024,7 +4225,7 @@ msgstr "" msgid "Minimum latency difference in milliseconds that triggers switching to a faster server." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3432 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3455 msgid "Minimum size of junk packets" msgstr "" @@ -4040,7 +4241,7 @@ msgstr "" msgid "Mixed Proxy Username" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:266 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:639 msgid "Mode" msgstr "" @@ -4048,11 +4249,11 @@ msgstr "" msgid "Model name to use. Leave empty to use default (gpt-4o-mini / claude-3-5-haiku / deepseek-chat / llama3:latest)." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:22 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:34 msgid "Mon" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:12 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:24 msgid "Monday" msgstr "" @@ -4060,7 +4261,7 @@ msgstr "" msgid "Monitored Interfaces" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:527 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:541 msgid "Monitoring" msgstr "" @@ -4081,7 +4282,7 @@ msgid "Move up" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8384 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3356 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3379 msgid "MTU" msgstr "" @@ -4094,13 +4295,13 @@ msgstr "" msgid "Must be a number in the range of 0 - 10000" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11890 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:90 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12013 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:94 msgid "My Strategies" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12567 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:870 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12726 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:918 msgid "Name" msgstr "" @@ -4113,14 +4314,14 @@ msgstr "" msgid "Name shown in the priority level list" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14731 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14824 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15149 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15242 #: src/tachyon/tabs/diagnostic/initController.ts:1533 #: src/tachyon/tabs/diagnostic/initController.ts:1643 msgid "Native internet restored. Tachyon stopped." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3287 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3310 msgid "Native tailscaled (tailnet reachable from LAN without client)" msgstr "" @@ -4145,20 +4346,20 @@ msgstr "" msgid "New domains:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6343 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6438 #: src/tachyon/services/core.service.ts:38 msgid "New version %s is available for %s" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9855 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9941 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9950 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10036 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:100 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:97 msgid "NFQUEUE range is available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9855 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9941 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9950 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10036 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:99 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:96 msgid "NFQUEUE range overlaps with another rule" @@ -4180,10 +4381,10 @@ msgstr "" msgid "NFQWS2 strategy cannot be empty" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7425 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7428 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7488 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7828 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7520 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7523 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7583 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7923 #: src/tachyon/tabs/dashboard/initController.ts:822 #: src/tachyon/tabs/dashboard/initController.ts:826 #: src/tachyon/tabs/dashboard/initController.ts:902 @@ -4196,12 +4397,12 @@ msgstr "" msgid "No active clients" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16429 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16847 #: src/tachyon/tabs/monitoring/initController.ts:1026 msgid "No active connections" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14488 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14906 #: src/tachyon/tabs/diagnostic/initController.ts:1255 msgid "No active DHCP clients found on local network." msgstr "" @@ -4211,22 +4412,27 @@ msgstr "" msgid "No active routing sections found." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12217 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:470 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12928 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1151 +msgid "No benchmark history yet. Run a benchmark to see results here." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12372 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:514 msgid "No benchmark results yet. Configure options and click \"Start Benchmark\"." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11069 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11190 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:239 msgid "No check targets found in the configuration." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16429 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16847 #: src/tachyon/tabs/monitoring/initController.ts:1027 msgid "No closed connections" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9480 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:32 msgid "No conflict detected" msgstr "" @@ -4235,17 +4441,26 @@ msgstr "" msgid "No Custom Rules Matched" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12592 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:898 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12751 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:945 msgid "No custom strategies added yet." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14271 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:219 +msgid "no devices" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:243 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:265 +msgid "No devices assigned" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14689 #: src/tachyon/tabs/diagnostic/initController.ts:943 msgid "No DHCP clients detected" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14604 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15022 #: src/tachyon/tabs/diagnostic/initController.ts:1382 msgid "No diagnostic history available yet." msgstr "" @@ -4254,7 +4469,7 @@ msgstr "" msgid "No domains detected yet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9600 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9695 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:187 msgid "No enabled server inbounds configured" msgstr "" @@ -4263,43 +4478,43 @@ msgstr "" msgid "No file selected" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14465 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14883 #: src/tachyon/tabs/diagnostic/initController.ts:1230 msgid "No issues detected. System is running normally." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14146 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14564 #: src/tachyon/tabs/diagnostic/initController.ts:760 msgid "No issues found" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9705 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9800 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:105 msgid "No other marking rules found" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9533 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9628 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:99 msgid "No public firewall port required" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10020 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10115 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:79 msgid "No rules use ByeDPI" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9845 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9940 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:79 msgid "No rules use Zapret" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9931 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10026 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:82 msgid "No rules use Zapret2" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:243 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:262 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:616 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:635 msgid "No sections selected" msgstr "" @@ -4307,42 +4522,42 @@ msgstr "" msgid "No snapshots yet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12746 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1076 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13025 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1264 msgid "No strategies match the active filter." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7730 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7825 #: src/tachyon/tabs/dashboard/initController.ts:1211 msgid "Node list is empty" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7569 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7664 #: src/tachyon/tabs/dashboard/initController.ts:1010 msgid "Nodes" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14268 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:313 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:325 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:336 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:355 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14686 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:686 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:698 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:709 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:728 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:449 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2741 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3033 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3042 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2764 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3056 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3065 #: src/tachyon/tabs/diagnostic/initController.ts:934 msgid "None" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2412 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5224 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9489 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13237 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5319 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9584 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13655 #: src/tachyon/methods/custom/getDashboardSections.ts:1654 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:623 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:46 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:152 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:623 msgid "Not configured" msgstr "" @@ -4353,69 +4568,69 @@ msgstr "" msgid "Not connected" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9510 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9610 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9605 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9705 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:70 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:199 msgid "Not detected" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10869 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10990 #: src/tachyon/tabs/diagnostic/partials/renderCheckSection.ts:193 msgid "Not implement yet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5973 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5978 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13001 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13004 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13007 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19035 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19045 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19055 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19065 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6068 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6073 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13418 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13421 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13424 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19453 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19463 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19473 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19483 #: src/tachyon/helpers/singBoxVariant.ts:38 #: src/tachyon/helpers/singBoxVariant.ts:46 #: src/tachyon/tabs/updates/initController.ts:1237 #: src/tachyon/tabs/updates/initController.ts:1251 #: src/tachyon/tabs/updates/initController.ts:1265 #: src/tachyon/tabs/updates/initController.ts:1279 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1380 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1385 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1390 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1728 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1733 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1738 msgid "Not installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9503 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9598 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:62 msgid "Not public" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9561 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9656 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:139 msgid "Not required for this listen address" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2195 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2578 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13188 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13207 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13212 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13260 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:332 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:826 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13606 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13625 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13630 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13678 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:91 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:118 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:124 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:180 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:332 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:826 msgid "Not responding" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5562 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13668 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13838 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13884 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13946 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5657 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14086 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14256 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14302 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14364 #: src/tachyon/tabs/diagnostic/diagnostic.store.ts:142 #: src/tachyon/tabs/diagnostic/initController.ts:127 #: src/tachyon/tabs/diagnostic/initController.ts:358 @@ -4428,7 +4643,7 @@ msgstr "" msgid "Not set" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:651 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1046 msgid "Notify in Telegram" msgstr "" @@ -4472,15 +4687,15 @@ msgstr "" msgid "Number of consecutive successful checks required before returning to a higher-priority DNS server." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3426 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3449 msgid "Number of junk packets before handshake (1-10)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3041 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3064 msgid "Obfuscation" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3064 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3087 msgid "Obfuscation password" msgstr "" @@ -4527,13 +4742,13 @@ msgstr "" msgid "Only the specified servers." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12426 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:709 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12582 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:754 msgid "OOB Values (-o)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19123 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19160 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19541 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19578 #: src/tachyon/tabs/updates/initController.ts:1345 #: src/tachyon/tabs/updates/initController.ts:1384 msgid "Open" @@ -4543,46 +4758,46 @@ msgstr "" msgid "Open priority settings and enter a display name" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13110 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13528 #: src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:31 msgid "Open Project Page" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17980 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18398 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:324 msgid "Operation completed successfully!" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18106 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18524 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:483 msgid "Operation failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17807 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17862 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18225 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18280 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:110 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:172 msgid "Operation in progress..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17848 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18266 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:157 msgid "Operation log" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3657 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3661 #: src/tachyon/methods/shell/index.ts:663 msgid "Operation log is not available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17844 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18262 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:152 msgid "Operation started. Waiting for log output..." msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:1066 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3523 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3591 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3527 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3595 #: src/helpers/withTimeout.ts:7 #: src/tachyon/methods/shell/index.ts:489 #: src/tachyon/methods/shell/index.ts:577 @@ -4593,12 +4808,12 @@ msgstr "" msgid "Optimization" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14360 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14778 #: src/tachyon/tabs/diagnostic/initController.ts:1100 msgid "Optimize AWG MTU" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14352 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14770 #: src/tachyon/tabs/diagnostic/initController.ts:1092 msgid "Optimize RAM memory" msgstr "" @@ -4612,8 +4827,8 @@ msgstr "" msgid "Optional — leave empty for default" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12656 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:972 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12815 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1018 msgid "Optional context (e.g. \"Rostelecom, YouTube 4K buffering is slow\")..." msgstr "" @@ -4633,11 +4848,15 @@ msgstr "" msgid "Optional values must be attached with '=' here; a separate token would be ignored by nfqws2." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:811 +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 "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7705 msgid "Or paste hosts file content:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8338 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8433 #: src/tachyon/tabs/dashboard/initController.ts:1985 msgid "Other peers" msgstr "" @@ -4667,11 +4886,11 @@ msgstr "" msgid "P2P Leak Protection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3123 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3146 msgid "Padding" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:466 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:480 msgid "Parental Control" msgstr "" @@ -4681,7 +4900,7 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8492 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8580 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3004 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3027 msgid "Password" msgstr "" @@ -4711,49 +4930,49 @@ msgstr "" msgid "Path must end with cache.db" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11889 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:89 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12012 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:93 msgid "Pattern Builder" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12477 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:763 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12633 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:808 msgid "Patterns reset to defaults!" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4154 -#: src/tachyon/methods/shell/index.ts:1329 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4164 +#: src/tachyon/methods/shell/index.ts:1352 msgid "Patterns reset to factory defaults" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4130 -#: src/tachyon/methods/shell/index.ts:1300 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4140 +#: src/tachyon/methods/shell/index.ts:1314 msgid "Patterns saved successfully" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12463 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:749 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12619 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:794 msgid "Patterns saved successfully!" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15658 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15659 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16202 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16076 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16077 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16620 #: src/tachyon/tabs/monitoring/initController.ts:746 #: src/tachyon/tabs/monitoring/render.ts:80 #: src/tachyon/tabs/monitoring/render.ts:81 msgid "Pause updates" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3503 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3526 msgid "Payload (I3)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3509 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3532 msgid "Payload (I4)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3515 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3538 msgid "Payload (I5)" msgstr "" @@ -4773,14 +4992,14 @@ msgstr "" msgid "PEM-encoded client private key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5492 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:390 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:400 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5587 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:763 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:773 #: src/tachyon/tabs/diagnostic/diagnostic.store.ts:63 msgid "Pending" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10949 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11070 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:98 msgid "Pending..." msgstr "" @@ -4799,7 +5018,7 @@ msgid "Periodically checks if the proxy is responding. Restarts Tachyon after co msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8391 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3366 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3389 msgid "Persistent Keepalive" msgstr "" @@ -4807,6 +5026,14 @@ msgstr "" msgid "Persistent Smart Detect" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:20 +msgid "Pets / IoT (🐾)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:16 +msgid "Phone (📱)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2707 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3193 msgid "Pin on dashboard" @@ -4816,8 +5043,8 @@ msgstr "" msgid "Pin P2P isolation to the torrent client's own ports, comma separated. Each entry is \"proto\", \"proto:port\" or \"proto:port-port\" (tcp/udp). Without a port the whole protocol is routed direct." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12516 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:811 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12675 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:859 msgid "Please specify strategy name and arguments" msgstr "" @@ -4833,7 +5060,7 @@ msgstr "" msgid "Port cannot be empty" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9469 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9564 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:19 msgid "Port conflict" msgstr "" @@ -4876,7 +5103,7 @@ msgstr "" msgid "Pre-shared key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3416 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3439 msgid "Pre-shared Key (PSK)" msgstr "" @@ -4888,7 +5115,7 @@ msgstr "" msgid "Prefer IPv6" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3166 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3189 msgid "Preferred IP" msgstr "" @@ -4896,6 +5123,11 @@ msgstr "" msgid "Prefix text" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13280 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1567 +msgid "Preparing strategies and isolated nftables queue..." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8378 msgid "Preshared Key" msgstr "" @@ -4911,14 +5143,14 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2349 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2350 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7952 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8047 #: src/tachyon/tabs/dashboard/initController.ts:1494 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:536 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:537 msgid "Priority details" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7902 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7997 #: src/tachyon/tabs/dashboard/initController.ts:1431 msgid "Priority details are unavailable" msgstr "" @@ -4942,6 +5174,27 @@ msgstr "" msgid "Private Key" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:208 +msgid "Profile" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:546 +msgid "Profile / Devices" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:440 +msgid "Profile Blocked Sites (24/7)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:361 +msgid "Profile Icon / Avatar" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:369 +msgid "Profile Name" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:291 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:650 msgid "Protection" msgstr "" @@ -4953,17 +5206,17 @@ msgstr "" msgid "Protocol" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12036 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:265 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12165 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:276 msgid "Provider Global Default" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10895 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11016 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:29 msgid "Proxy" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14564 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14982 #: src/tachyon/tabs/diagnostic/initController.ts:1338 msgid "Proxy / DPI" msgstr "" @@ -4980,7 +5233,7 @@ msgstr "" msgid "Proxy Health Check URL" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7421 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7516 #: src/tachyon/tabs/dashboard/initController.ts:817 msgid "Proxy link is unavailable" msgstr "" @@ -4997,7 +5250,7 @@ msgstr "" msgid "PSK" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9484 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9579 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2690 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:40 msgid "Public host" @@ -5012,8 +5265,8 @@ msgstr "" msgid "QUIC (HTTP/3)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12706 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1029 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12865 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1075 msgid "RAG Knowledge Base + Live ISP Probe Context" msgstr "" @@ -5026,27 +5279,27 @@ msgstr "" msgid "Read error" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2829 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2852 msgid "Reality fake site" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2840 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2863 msgid "Reality fake site port" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2883 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2906 msgid "Reality max time difference" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2851 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2874 msgid "Reality private key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2858 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2881 msgid "Reality public key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2864 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2887 msgid "Reality short ID" msgstr "" @@ -5054,17 +5307,22 @@ msgstr "" msgid "Reality short ID must contain 1-8 hex digits" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14339 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14757 #: src/tachyon/tabs/diagnostic/initController.ts:1079 msgid "Rebuild firewall rules" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19142 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19560 #: src/tachyon/tabs/updates/initController.ts:1365 msgid "Rebuilt release" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14409 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13253 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1536 +msgid "Recommended" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14827 #: src/tachyon/tabs/diagnostic/initController.ts:1163 msgid "Recommended Quick Fixes:" msgstr "" @@ -5073,7 +5331,7 @@ msgstr "" msgid "Reconnect Threshold" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14345 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14763 #: src/tachyon/tabs/diagnostic/initController.ts:1085 msgid "Reconnect WAN" msgstr "" @@ -5091,12 +5349,12 @@ msgstr "" msgid "Refill" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14511 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14929 #: src/tachyon/tabs/diagnostic/initController.ts:1280 msgid "Refresh" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14492 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14910 #: src/tachyon/tabs/diagnostic/initController.ts:1259 msgid "Refresh Device List" msgstr "" @@ -5109,17 +5367,17 @@ msgstr "" msgid "Regular expression must not contain spaces or commas" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18922 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19340 #: src/tachyon/tabs/updates/initController.ts:1107 msgid "Reinstall" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18000 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18418 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:349 msgid "Reload now" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18032 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18450 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:390 msgid "Reloading..." msgstr "" @@ -5128,12 +5386,12 @@ msgstr "" msgid "Remote Hosts Lists" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17980 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18398 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:323 msgid "Removal completed successfully!" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18888 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19306 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7927 #: src/tachyon/tabs/updates/initController.ts:1061 msgid "Remove" @@ -5151,7 +5409,7 @@ msgstr "" msgid "Remove the specified servers from this level." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17811 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18229 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:114 msgid "Removing" msgstr "" @@ -5164,7 +5422,7 @@ msgstr "" msgid "Reset" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14359 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14777 #: src/tachyon/tabs/diagnostic/initController.ts:1099 msgid "Reset Bootstrap DNS" msgstr "" @@ -5183,7 +5441,7 @@ msgstr "" msgid "Resolve domain names before routing so sing-box can use real destination IPs." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14346 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14764 #: src/tachyon/tabs/diagnostic/initController.ts:1086 msgid "Resolve gateway" msgstr "" @@ -5208,11 +5466,11 @@ msgstr "" msgid "Resource selection by IP or CIDR inside nfqws2 is not supported here; sing-box selects resources before NFQUEUE." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3473 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3496 msgid "Response packet header (H2)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3449 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3472 msgid "Response packet junk size (S2)" msgstr "" @@ -5224,36 +5482,36 @@ msgstr "" msgid "Response Packet Magic Header (S4)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3497 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3520 msgid "Response payload (I2)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14340 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14758 #: src/tachyon/tabs/diagnostic/initController.ts:1080 msgid "Restart dnsmasq" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14349 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14767 #: src/tachyon/tabs/diagnostic/initController.ts:1089 msgid "Restart firewall" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14350 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14768 #: src/tachyon/tabs/diagnostic/initController.ts:1090 msgid "Restart network" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14343 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14761 #: src/tachyon/tabs/diagnostic/initController.ts:1083 msgid "Restart sing-box DNS" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10570 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10691 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:64 msgid "Restart Tachyon" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14351 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14769 #: src/tachyon/tabs/diagnostic/initController.ts:1091 msgid "Restart Zapret/ByeDPI" msgstr "" @@ -5268,22 +5526,22 @@ msgstr "" msgid "Restore" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14344 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14762 #: src/tachyon/tabs/diagnostic/initController.ts:1084 msgid "Restore config backup" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10648 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14789 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14812 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10769 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15207 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15230 #: src/tachyon/tabs/diagnostic/initController.ts:1603 #: src/tachyon/tabs/diagnostic/initController.ts:1627 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:142 msgid "Restore Native Internet" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14356 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14718 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14774 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15136 #: src/tachyon/tabs/diagnostic/initController.ts:1096 #: src/tachyon/tabs/diagnostic/initController.ts:1516 msgid "Restore Native Internet (Stop Tachyon)" @@ -5297,32 +5555,40 @@ msgstr "" msgid "Restores the Tachyon factory defaults: all rules, subscriptions, custom DNS servers and other options will be lost." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14721 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14816 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15139 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15234 #: src/tachyon/tabs/diagnostic/initController.ts:1519 #: src/tachyon/tabs/diagnostic/initController.ts:1631 msgid "Restoring native direct internet (stopping Tachyon)..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16202 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2726 +msgid "Restrict LAN access for specific users" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2737 +msgid "Restricted users (auth_user)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16620 #: src/tachyon/tabs/monitoring/initController.ts:746 msgid "Resume updates" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:641 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1036 msgid "Return NXDOMAIN for blocked domains (recommended). When enabled, blocked domains are not resolved at all. When disabled, only direct connections are rejected." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11245 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16311 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16362 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11366 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16729 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16780 #: src/tachyon/tabs/monitoring/initController.ts:880 #: src/tachyon/tabs/monitoring/initController.ts:943 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:444 msgid "Route" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3311 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3334 msgid "Route all non-local LAN traffic through the tailnet exit node instead of the proxy engines." msgstr "" @@ -5338,7 +5604,7 @@ msgstr "" msgid "Route requests to this DNS server through another section." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14570 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14988 #: src/tachyon/tabs/diagnostic/initController.ts:1345 msgid "Route via Proxy" msgstr "" @@ -5351,9 +5617,9 @@ msgstr "" msgid "Routing Rule Tracer" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9537 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9546 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9565 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9632 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9641 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9660 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:103 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:114 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:144 @@ -5368,7 +5634,7 @@ msgstr "" msgid "Rule" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:406 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:779 msgid "Rule Name" msgstr "" @@ -5389,8 +5655,8 @@ msgstr "" msgid "Rule Sets (.srs / .json)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12037 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:266 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12166 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:277 msgid "Rule:" msgstr "" @@ -5400,65 +5666,65 @@ msgstr "" msgid "Rules" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9680 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9775 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:79 msgid "Rules mangle counters" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9675 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9770 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:74 msgid "Rules mangle exist" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9690 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9785 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:89 msgid "Rules mangle output counters" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9685 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9780 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:84 msgid "Rules mangle output exist" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9700 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9795 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:99 msgid "Rules proxy counters" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9695 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9790 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:94 msgid "Rules proxy exist" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10638 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10759 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:132 msgid "Run AI Doctor" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10880 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11001 #: src/tachyon/tabs/diagnostic/partials/renderRunAction.ts:17 msgid "Run Diagnostic" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10628 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10749 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:122 msgid "Run doctor repair" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2412 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5224 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13220 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5319 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13638 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:301 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2072 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2073 #: src/tachyon/methods/custom/getDashboardSections.ts:1649 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:618 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:135 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:618 msgid "Running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12746 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1075 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13025 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1263 msgid "Running benchmarks..." msgstr "" @@ -5470,11 +5736,15 @@ msgstr "" msgid "Russia (ru)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:27 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:303 +msgid "SafeSearch" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:39 msgid "Sat" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:17 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:29 msgid "Saturday" msgstr "" @@ -5508,35 +5778,37 @@ msgstr "" msgid "Saving…" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:282 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:655 msgid "Schedule" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:472 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:486 msgid "Schedule Rule" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12198 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:451 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12353 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12946 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:495 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1169 msgid "Score" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15635 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16053 #: src/tachyon/tabs/monitoring/render.ts:57 msgid "Search" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11204 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11325 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:397 msgid "Search domain or service..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12027 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:254 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12156 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:265 msgid "Search Mode" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3080 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3103 msgid "Secret" msgstr "" @@ -5585,11 +5857,11 @@ msgid "Sections" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2051 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2738 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2761 msgid "Security" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7710 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7805 #: src/tachyon/tabs/dashboard/initController.ts:1185 msgid "Select" msgstr "" @@ -5623,7 +5895,7 @@ msgstr "" msgid "Select a transit section" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:504 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:899 msgid "Select active days. If none selected, the rule applies every day." msgstr "" @@ -5651,8 +5923,8 @@ msgstr "" msgid "Select DNS protocol to use" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:416 -msgid "Select LAN devices to apply this schedule to, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes. IP addresses (e.g. 192.168.1.150) are used for DNS-level blocking and require a stable lease." +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:379 +msgid "Select LAN devices to assign to this profile, or enter IP or MAC addresses manually. MAC addresses (e.g. AA:BB:CC:DD:EE:FF) work even if the device's IP changes via DHCP." msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8828 @@ -5679,11 +5951,11 @@ msgstr "" msgid "Select path for sing-box config file. Change this ONLY if you know what you are doing" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:446 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:841 msgid "Select Sections" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7920 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8015 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3146 #: src/tachyon/tabs/dashboard/initController.ts:1454 msgid "Select the fastest node" @@ -5705,12 +5977,12 @@ msgstr "" msgid "Select the WAN interfaces to be monitored" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:468 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:863 msgid "Select whether to disable the target during the schedule or enable it ONLY during the schedule." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7794 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7906 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7889 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8001 #: src/tachyon/tabs/dashboard/initController.ts:1289 #: src/tachyon/tabs/dashboard/initController.ts:1440 msgid "Selected" @@ -5725,7 +5997,7 @@ msgstr "" msgid "Selector and URLTest outbounds must contain a non-empty outbounds array" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11674 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11795 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:67 msgid "Send" msgstr "" @@ -5746,7 +6018,7 @@ msgstr "" msgid "Send a Telegram notification if the Tachyon service is restarted by the watchdog." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:652 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:1047 msgid "Send a Telegram notification to admins when a blocked site is accessed. Requires the Telegram bot to be enabled." msgstr "" @@ -5758,8 +6030,12 @@ msgstr "" msgid "Send a Telegram notification when proxy subscriptions are successfully updated." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12352 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:631 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:528 +msgid "Send Telegram alerts to parents when daily screen time is exhausted or blocked sites are accessed." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12508 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:676 msgid "Sequence Overlaps (seqovl)" msgstr "" @@ -5773,7 +6049,7 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8554 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8589 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8659 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3324 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3347 msgid "Server Address" msgstr "" @@ -5799,7 +6075,7 @@ msgstr "" msgid "Server name" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2767 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2790 msgid "Server name / SNI" msgstr "" @@ -5826,20 +6102,20 @@ msgstr "" msgid "Server Port" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3377 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3400 msgid "Server Private Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3387 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3410 msgid "Server Public Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11742 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11863 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:148 msgid "Server unavailable" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3325 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3348 msgid "Server VPN IP address and subnet (e.g. 10.0.0.1/24)" msgstr "" @@ -5856,21 +6132,21 @@ msgstr "" msgid "Servers on dashboard" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11240 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11361 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:439 msgid "Service / Target" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3482 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3501 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14030 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3486 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3505 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14448 #: src/tachyon/methods/shell/index.ts:440 #: src/tachyon/methods/shell/index.ts:461 #: src/tachyon/tabs/diagnostic/initController.ts:609 msgid "Service action failed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11026 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11147 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:186 msgid "Service availability check" msgstr "" @@ -5883,29 +6159,29 @@ msgstr "" msgid "Services & Access" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18029 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18447 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:387 msgid "Services are online and ready! Reloading page..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18021 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18439 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:375 msgid "Services are online, waiting for full initialization..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8258 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8353 #: src/tachyon/tabs/dashboard/initController.ts:1887 msgid "Services info" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18054 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18472 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:418 msgid "Services restarted. Click to reload page." msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1152 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7232 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:480 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:494 msgid "Settings" msgstr "" @@ -5913,7 +6189,7 @@ msgstr "" msgid "Settings have been reset to defaults. The page will reload." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:93 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:105 msgid "Shopping" msgstr "" @@ -5949,15 +6225,15 @@ msgstr "" msgid "Show servers whose names match the expression." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10696 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14853 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10817 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15271 #: src/tachyon/tabs/diagnostic/initController.ts:1677 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:190 msgid "Show sing-box config" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14864 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14871 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15282 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15289 #: src/tachyon/tabs/diagnostic/initController.ts:1688 #: src/tachyon/tabs/diagnostic/initController.ts:1695 msgid "Show sing-box config failed" @@ -5967,46 +6243,46 @@ msgstr "" msgid "Show subscription metadata for this source on the dashboard" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9441 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9536 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:77 msgid "Sing-box autostart disabled" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3283 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3306 msgid "sing-box endpoint (userspace, default)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9757 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9852 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:69 msgid "Sing-box FakeIP DNS does not work" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9757 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9852 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:68 msgid "Sing-box FakeIP DNS works" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9426 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9521 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:62 msgid "Sing-box installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9451 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9546 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:87 msgid "Sing-box listening ports" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9446 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9541 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:82 msgid "Sing-box process running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9436 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9531 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:72 msgid "Sing-box service exist" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9431 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9526 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:67 msgid "Sing-box version is compatible (newer than 1.12.4)" msgstr "" @@ -6015,6 +6291,10 @@ msgstr "" msgid "Singapore (sg)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:309 +msgid "sites" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7710 msgid "Skip loopback & local entries (127.0.0.1, ::1, 0.0.0.0, localhost)" msgstr "" @@ -6047,7 +6327,7 @@ msgstr "" msgid "Snapshot restored. The service restarts and the page will reload." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3298 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3321 msgid "SNAT LAN sources when leaving through tailscale0 so peers can answer. Required unless every peer accepts routes." msgstr "" @@ -6055,7 +6335,7 @@ msgstr "" msgid "Snell Version" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:43 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:55 msgid "Social media" msgstr "" @@ -6071,8 +6351,8 @@ msgstr "" msgid "Sorts servers in this section by lowest latency in the dashboard." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16323 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16366 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16741 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16784 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10099 #: src/tachyon/tabs/monitoring/initController.ts:892 #: src/tachyon/tabs/monitoring/initController.ts:947 @@ -6087,7 +6367,7 @@ msgstr "" msgid "Source Network Interface" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:440 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:835 msgid "Specific Sections (Select sections below)" msgstr "" @@ -6100,28 +6380,28 @@ msgstr "" msgid "Specify different files" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12197 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:450 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12352 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:494 msgid "Speed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12377 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:658 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12533 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:703 msgid "Split Modes (dpi-desync)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12383 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:664 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12539 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:709 msgid "Split Positions (dpi-desync-split-pos)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12334 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:613 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12490 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:658 msgid "Split Positions (pos)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12414 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:697 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12570 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:742 msgid "Split Values (-s)" msgstr "" @@ -6130,61 +6410,66 @@ msgstr "" msgid "SSH" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10035 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10130 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:122 msgid "Standalone ByeDPI autostart is enabled" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10035 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10130 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:119 msgid "Standalone ByeDPI is active together with Tachyon ByeDPI rules" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10035 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10130 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:120 msgid "Standalone ByeDPI service is active" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10035 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10130 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:123 msgid "Standalone ByeDPI service is inactive" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9865 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9960 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:111 msgid "Standalone Zapret is active together with Tachyon Zapret rules" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9865 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9960 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:112 msgid "Standalone Zapret service is active" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9865 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9960 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:113 msgid "Standalone Zapret service is inactive" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9953 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10048 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:123 msgid "Standalone Zapret2 autostart is enabled" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9951 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10046 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:118 msgid "Standalone Zapret2 is active together with Tachyon Zapret2 rules" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9953 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10048 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:121 msgid "Standalone Zapret2 service is active" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9953 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10048 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:124 msgid "Standalone Zapret2 service is inactive" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:316 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:329 +msgid "Standard" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:285 msgid "Start" msgstr "" @@ -6193,21 +6478,21 @@ msgstr "" msgid "Start bot" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14338 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14756 #: src/tachyon/tabs/diagnostic/initController.ts:1078 msgid "Start sing-box" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10590 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10711 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:84 msgid "Start Tachyon" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:479 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:874 msgid "Start Time (HH:MM)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14342 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14760 #: src/tachyon/tabs/diagnostic/initController.ts:1082 msgid "Start watchdog" msgstr "" @@ -6221,22 +6506,23 @@ msgstr "" msgid "Starting…" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8320 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8415 #: src/tachyon/tabs/dashboard/initController.ts:1964 msgid "State" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2451 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11282 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:360 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11403 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:333 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:733 +#: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:481 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:490 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:670 -#: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:481 msgid "Status" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12194 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:447 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12349 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:491 msgid "Status / Suite" msgstr "" @@ -6252,19 +6538,19 @@ msgstr "" msgid "Stop checking when URLTest group is not used. Use sing-box duration format like 1d, 12h or 30m." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10580 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10701 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:74 msgid "Stop Tachyon" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2412 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5224 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13232 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5319 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13650 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:307 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2078 #: src/tachyon/methods/custom/getDashboardSections.ts:1653 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:622 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:147 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:622 msgid "Stopped" msgstr "" @@ -6277,26 +6563,30 @@ msgstr "" msgid "Store auto-detected domains in /etc instead of /tmp to survive reboots." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12189 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:442 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12344 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:486 msgid "Strategy & Parameters" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12913 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1275 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13327 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1620 msgid "Strategy benchmark started" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12637 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:947 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12796 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:993 msgid "Strategy deleted" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12490 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:783 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12646 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:828 msgid "Strategy Name" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:19 +msgid "Strict (🔒)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1618 msgid "Strict ECH + DoQ DNS Enforcer" msgstr "" @@ -6319,10 +6609,10 @@ msgstr "" msgid "Subscription info:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3838 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3856 -#: src/tachyon/methods/shell/index.ts:929 -#: src/tachyon/methods/shell/index.ts:949 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3848 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3866 +#: src/tachyon/methods/shell/index.ts:939 +#: src/tachyon/methods/shell/index.ts:959 msgid "Subscription update failed" msgstr "" @@ -6338,7 +6628,7 @@ msgstr "" msgid "Subscription URL settings" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7051 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7146 #: src/tachyon/tabs/dashboard/initController.ts:336 msgid "Subscriptions updated" msgstr "" @@ -6351,11 +6641,11 @@ msgstr "" msgid "Successfully imported %d DNS record(s)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:28 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:40 msgid "Sun" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:18 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:30 msgid "Sunday" msgstr "" @@ -6363,37 +6653,37 @@ msgstr "" msgid "Sweden (se)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14353 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14771 #: src/tachyon/tabs/diagnostic/initController.ts:1093 msgid "Switch DNS to DoH" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7770 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7865 #: src/tachyon/tabs/dashboard/initController.ts:1254 msgid "Switch to auto-selection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14357 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14775 #: src/tachyon/tabs/diagnostic/initController.ts:1097 msgid "Sync System Time (NTP)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8246 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8341 #: src/tachyon/tabs/dashboard/initController.ts:1874 msgid "System info" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13040 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13458 #: src/tachyon/tabs/diagnostic/partials/renderSystemInfo.ts:24 msgid "System information" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9670 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9765 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:69 msgid "Table exist" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6353 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6448 #: src/tachyon/services/core.service.ts:52 msgid "Tachyon Error" msgstr "" @@ -6414,7 +6704,7 @@ msgstr "" msgid "Tachyon manages the nfqws2 process lifecycle itself, so daemon mode is not allowed here." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16400 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16818 #: src/tachyon/tabs/monitoring/initController.ts:991 msgid "Tachyon service is stopped. Start the service to display connections." msgstr "" @@ -6428,8 +6718,8 @@ msgstr "" msgid "Tachyon Settings" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3755 -#: src/tachyon/methods/shell/index.ts:817 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3768 +#: src/tachyon/methods/shell/index.ts:822 msgid "Tachyon update did not complete within the timeout" msgstr "" @@ -6437,105 +6727,119 @@ msgstr "" msgid "Tachyon will not modify your DHCP configuration" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10025 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10120 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:91 msgid "Tachyon-managed ciadpi runtime has restarted" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10025 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10120 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:94 msgid "Tachyon-managed ciadpi runtime is not ready" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10025 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10120 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:97 msgid "Tachyon-managed ciadpi runtime is not running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10025 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10120 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:93 msgid "Tachyon-managed ciadpi runtime is ready" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9850 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9945 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:87 msgid "Tachyon-managed nfqws runtime is not ready" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9850 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9945 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:90 msgid "Tachyon-managed nfqws runtime is not running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9850 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9945 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:86 msgid "Tachyon-managed nfqws runtime is ready" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9936 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10031 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:90 msgid "Tachyon-managed nfqws2 runtime is not ready" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9936 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10031 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:93 msgid "Tachyon-managed nfqws2 runtime is not running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9936 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10031 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:89 msgid "Tachyon-managed nfqws2 runtime is ready" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8315 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8410 #: src/tachyon/tabs/dashboard/initController.ts:1954 msgid "Tailscale" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3222 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3245 msgid "Tailscale auth key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3231 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3254 msgid "Tailscale control URL" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9532 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9627 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:98 msgid "Tailscale endpoint" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3239 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3262 msgid "Tailscale hostname" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3280 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3303 msgid "Tailscale mode" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:229 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12943 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:602 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1166 msgid "Target" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:415 -msgid "Target Devices (IP / MAC)" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:788 +msgid "Target Family Profiles" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:434 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:829 msgid "Target Scope" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11994 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:217 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12123 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:228 msgid "Target Service / Suite" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12358 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:637 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12514 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:682 msgid "TCP Window Sizes (wsize)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:492 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:14 +msgid "Teen (🧑)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:312 +msgid "Telegram" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:527 +msgid "Telegram Alerts" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:506 msgid "Telegram Bot" msgstr "" @@ -6543,7 +6847,7 @@ msgstr "" msgid "Telegram Bot Token" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13120 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13538 #: src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:42 msgid "Telegram Channel" msgstr "" @@ -6592,18 +6896,23 @@ msgstr "" msgid "Test Telegram Connection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12846 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1193 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13311 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1602 +msgid "Testing bypass strategies in isolated sandbox..." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13129 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1384 msgid "Testing strategy" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7797 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7892 #: src/tachyon/tabs/dashboard/initController.ts:1292 msgid "Testing URL" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10959 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11550 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11080 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11671 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:108 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:797 msgid "Testing..." @@ -6627,27 +6936,27 @@ msgstr "" msgid "The rule applies to the domain and all its subdomains. Use full:, keyword:, or regex: prefixes for exact match, keyword match, or regular expression." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10020 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10115 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:78 msgid "There are rules using ByeDPI" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9845 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9940 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:78 msgid "There are rules using Zapret" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9931 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10026 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:81 msgid "There are rules using Zapret2" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11698 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11819 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:97 msgid "Thinking..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14794 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15212 #: src/tachyon/tabs/diagnostic/initController.ts:1608 msgid "This action will stop Tachyon, restore standard dnsmasq/DNS, remove all proxy/anti-censorship firewall rules and restore direct Internet connection through your ISP." msgstr "" @@ -6658,7 +6967,7 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1928 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2018 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2180 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3027 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3050 msgid "This field is required" msgstr "" @@ -6692,7 +7001,7 @@ msgstr "" msgid "This option requires a value." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8328 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8423 #: src/tachyon/tabs/dashboard/initController.ts:1975 msgid "This router" msgstr "" @@ -6705,17 +7014,17 @@ msgstr "" msgid "This will replace the current Tachyon settings with the snapshot" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:25 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:37 msgid "Thu" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:15 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:27 msgid "Thursday" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16314 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16363 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16497 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16732 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16781 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16915 #: src/tachyon/tabs/monitoring/initController.ts:883 #: src/tachyon/tabs/monitoring/initController.ts:944 #: src/tachyon/tabs/monitoring/initController.ts:1127 @@ -6726,15 +7035,15 @@ msgstr "" msgid "Time in seconds for DNS record caching (default: 60)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:105 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:117 msgid "Time is required (e.g. 22:00)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3196 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3219 msgid "Time skew tolerance" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5990 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6085 #: src/tachyon/helpers/singBoxVariant.ts:64 msgid "tiny" msgstr "" @@ -6752,16 +7061,20 @@ msgstr "" msgid "TLS SNI" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12438 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:721 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12594 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:766 msgid "TLS-Rec Bounds (--tlsrec)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:12 +msgid "Toddler (👶)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2182 msgid "Token is required when the bot is enabled" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7799 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7894 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2657 #: src/tachyon/tabs/dashboard/initController.ts:1294 msgid "Tolerance" @@ -6771,11 +7084,15 @@ msgstr "" msgid "Top level has the highest priority; lower levels are used as fallback" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:398 +msgid "Total allowed network usage per day for devices in this profile. When the quota is reached, access is blocked until midnight. Enter 0 for unlimited." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7636 msgid "Total lines:" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11160 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11281 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:345 msgid "Total targets" msgstr "" @@ -6789,7 +7106,7 @@ msgid "Tracing routing rules..." msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2043 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8222 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8317 #: src/tachyon/tabs/dashboard/initController.ts:1848 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:133 msgid "Traffic" @@ -6807,7 +7124,7 @@ msgstr "" msgid "Traffic of specified protocols (e.g. BitTorrent, QUIC, STUN) will bypass this section." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8234 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8329 #: src/tachyon/tabs/dashboard/initController.ts:1861 msgid "Traffic Total" msgstr "" @@ -6820,7 +7137,7 @@ msgstr "" msgid "Traffic will go through the default route (Direct/Default)." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18785 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19203 #: src/tachyon/tabs/updates/initController.ts:922 msgid "Transient connection error" msgstr "" @@ -6831,23 +7148,23 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2045 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8566 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2905 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2928 msgid "Transport" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2929 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2952 msgid "Transport host" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3485 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3508 msgid "Transport packet header (H4)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3461 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3484 msgid "Transport packet junk size (S4)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2913 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2936 msgid "Transport path" msgstr "" @@ -6855,7 +7172,7 @@ msgstr "" msgid "Transport path must start with /" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13104 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13522 #: src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:25 msgid "Troubleshooting" msgstr "" @@ -6864,8 +7181,8 @@ msgstr "" msgid "Try compatible User-Agent profiles automatically when downloading this subscription" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12196 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:449 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12351 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:493 msgid "TTFB" msgstr "" @@ -6877,21 +7194,21 @@ msgstr "" msgid "TTL value cannot be empty" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12395 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:676 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12551 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:721 msgid "TTL Values (dpi-desync-ttl)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12346 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:625 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12502 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:670 msgid "TTL Values (ttl)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:23 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:35 msgid "Tue" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:13 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:25 msgid "Tuesday" msgstr "" @@ -6899,8 +7216,8 @@ msgstr "" msgid "Turkey (tr)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16308 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16361 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16726 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16779 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1696 #: src/tachyon/tabs/monitoring/initController.ts:877 #: src/tachyon/tabs/monitoring/initController.ts:942 @@ -6911,7 +7228,7 @@ msgstr "" msgid "UDP (Unprotected DNS)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10925 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11046 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:65 msgid "UDP / QUIC protocols" msgstr "" @@ -6934,20 +7251,20 @@ msgstr "" msgid "Unable to validate the NFQWS2 strategy through the backend parser." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7914 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8009 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3120 #: src/tachyon/tabs/dashboard/initController.ts:1448 msgid "Unavailability timeout" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10980 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11162 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11101 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11283 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:135 #: src/tachyon/tabs/diagnostic/partials/renderServiceCheckModal.ts:347 msgid "Unavailable" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3479 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3502 msgid "Underload packet header (H3)" msgstr "" @@ -6977,17 +7294,17 @@ msgstr "" msgid "Unexpected standalone token. Use explicit flags such as --name or --name=value." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10025 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10120 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:96 msgid "Unexpected Tachyon-managed ciadpi runtime is running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9850 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9945 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:89 msgid "Unexpected Tachyon-managed nfqws runtime is running" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9936 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10031 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:92 msgid "Unexpected Tachyon-managed nfqws2 runtime is running" msgstr "" @@ -7004,19 +7321,19 @@ msgstr "" msgid "United States (us)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5973 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9474 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10055 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10057 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10058 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10059 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10066 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10068 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10070 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10072 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10075 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10076 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18405 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6068 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9569 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10150 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10152 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10153 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10154 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10161 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10163 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10165 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10167 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10170 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10171 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18823 #: src/tachyon/helpers/singBoxVariant.ts:37 #: src/tachyon/services/systemInfo.service.ts:10 #: src/tachyon/services/systemInfo.service.ts:12 @@ -7033,7 +7350,7 @@ msgstr "" msgid "unknown" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5224 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5319 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:328 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2095 #: src/tachyon/methods/custom/getDashboardSections.ts:1655 @@ -7050,18 +7367,20 @@ msgstr "" msgid "Unknown country" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5298 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12918 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14135 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14154 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14221 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14762 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5393 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13179 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13334 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14553 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14572 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14639 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15180 #: src/tachyon/api.ts:40 #: src/tachyon/tabs/diagnostic/initController.ts:731 #: src/tachyon/tabs/diagnostic/initController.ts:772 #: src/tachyon/tabs/diagnostic/initController.ts:857 #: src/tachyon/tabs/diagnostic/initController.ts:1568 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1280 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1451 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1627 msgid "Unknown error" msgstr "" @@ -7073,6 +7392,11 @@ msgstr "" msgid "Unknown NFQWS2 flag." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:275 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:287 +msgid "Unlimited" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:212 #: src/validators/validateSubnet.ts:17 msgid "Unspecified IP address is not allowed" @@ -7091,22 +7415,22 @@ msgstr "" msgid "Up to 10 snapshots are kept; the oldest ones are removed automatically." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18837 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19255 #: src/tachyon/tabs/updates/initController.ts:989 msgid "Update" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18355 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18773 #: src/tachyon/tabs/updates/initController.ts:355 msgid "Update is available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19130 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19548 #: src/tachyon/tabs/updates/initController.ts:1352 msgid "Update is available for current release" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19111 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:19529 #: src/tachyon/tabs/updates/initController.ts:1331 msgid "Update is available:" msgstr "" @@ -7118,7 +7442,7 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2114 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2125 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2125 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14348 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14766 #: src/tachyon/tabs/diagnostic/initController.ts:1088 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:224 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:237 @@ -7138,12 +7462,12 @@ msgstr "" msgid "Updates & Downloads" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17813 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18231 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:116 msgid "Updating" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14573 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14991 #: src/tachyon/tabs/diagnostic/initController.ts:1349 msgid "Updating device routing mode..." msgstr "" @@ -7152,16 +7476,16 @@ msgstr "" msgid "Updating lists..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8224 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8236 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8319 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8331 #: src/tachyon/tabs/dashboard/initController.ts:1850 #: src/tachyon/tabs/dashboard/initController.ts:1863 msgid "Uplink" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16320 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16365 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16509 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16738 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16783 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16927 #: src/tachyon/tabs/monitoring/initController.ts:889 #: src/tachyon/tabs/monitoring/initController.ts:946 #: src/tachyon/tabs/monitoring/initController.ts:1141 @@ -7200,14 +7524,14 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2333 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2334 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7820 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7915 #: src/tachyon/tabs/dashboard/initController.ts:1321 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:517 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:518 msgid "URLTest details" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7790 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7885 #: src/tachyon/tabs/dashboard/initController.ts:1280 msgid "URLTest details are unavailable" msgstr "" @@ -7236,7 +7560,7 @@ msgid "Use a duration like 30s, 5m, or 1h30m" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2095 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3029 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3052 msgid "Use a non-negative integer" msgstr "" @@ -7296,26 +7620,30 @@ msgstr "" msgid "Use sing-box duration format like 1d, 12h or 6h" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3310 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3333 msgid "Use tailnet exit node for LAN" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9474 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9569 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:25 msgid "Used by" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12525 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:822 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12684 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:870 msgid "User custom strategy" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2738 +msgid "User names (e.g. from VLESS/Trojan/SS/JSON inbound users) that are forbidden from reaching LAN subnets. Leave empty to restrict all users on this inbound." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2444 msgid "User-Agent" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8574 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2988 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3011 msgid "Username" msgstr "" @@ -7381,7 +7709,7 @@ msgstr "" msgid "Value must not contain control characters" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18017 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18435 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:370 msgid "Verifying router and service readiness..." msgstr "" @@ -7390,19 +7718,19 @@ msgstr "" msgid "Via country.is" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:53 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:65 msgid "Video streaming" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10687 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14198 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10808 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14616 #: src/tachyon/tabs/diagnostic/initController.ts:831 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:181 msgid "View logs" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14208 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14211 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14626 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14629 #: src/tachyon/tabs/diagnostic/initController.ts:841 #: src/tachyon/tabs/diagnostic/initController.ts:844 msgid "View logs failed" @@ -7412,7 +7740,7 @@ msgstr "" msgid "Visible name of this section" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3032 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3055 msgid "VLESS flow" msgstr "" @@ -7420,17 +7748,17 @@ msgstr "" msgid "vless://, vmess://, ss://, trojan://, socks4/5://, hy2/hysteria2:// links" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17996 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:18414 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:344 msgid "Waiting for router services to restart..." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9510 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9605 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:70 msgid "WAN" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9609 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9704 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:198 msgid "WAN public IP" msgstr "" @@ -7475,19 +7803,19 @@ msgstr "" msgid "WebRTC Leak Protection" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:24 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:36 msgid "Wed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:14 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:26 msgid "Wednesday" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:168 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:180 msgid "Weekdays (Mon-Fri)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:172 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:184 msgid "Weekends (Sat-Sun)" msgstr "" @@ -7499,7 +7827,7 @@ msgstr "" msgid "When switching to another level, test every server and select the fastest instead of the first working one." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11762 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11883 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:171 msgid "Why Discord fails?" msgstr "" @@ -7512,7 +7840,12 @@ msgstr "" msgid "WireGuard private key from your Cloudflare WARP account" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2942 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12947 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1170 +msgid "Working" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2965 msgid "XHTTP mode" msgstr "" @@ -7520,7 +7853,7 @@ msgstr "" msgid "YACD Secret Key" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7425 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7520 #: src/tachyon/tabs/dashboard/initController.ts:822 msgid "Yes" msgstr "" @@ -7533,51 +7866,51 @@ msgstr "" msgid "Zapret hostlist templates are not supported here because Tachyon does not expand them for per-rule NFQWS strategies." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9840 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9935 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:71 msgid "Zapret package is installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9840 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9935 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:72 msgid "Zapret package is not installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9835 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9930 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:60 msgid "Zapret provider binary is available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9835 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9930 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:61 msgid "Zapret provider binary is not available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9860 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9955 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:103 msgid "Zapret sing-box outbound is configured" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9860 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9955 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:104 msgid "Zapret sing-box outbound is not configured" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11925 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13004 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13004 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:138 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1384 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1385 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12054 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13421 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13421 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:149 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1732 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1733 msgid "Zapret v1 (nfqws)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11924 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13001 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13001 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:137 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1379 -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1380 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12053 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13418 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13418 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:148 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1727 +#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts:1728 msgid "Zapret v2 (nfqws2)" msgstr "" @@ -7585,121 +7918,32 @@ msgstr "" msgid "Zapret2 hostlist templates are not supported here because Tachyon does not expand them for per-rule NFQWS2 strategies." msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9926 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10021 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:74 msgid "Zapret2 package is installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9926 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10021 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:75 msgid "Zapret2 package is not installed" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9921 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10016 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:63 msgid "Zapret2 provider binary is available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9921 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10016 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:64 msgid "Zapret2 provider binary is not available" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9946 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10041 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:106 msgid "Zapret2 sing-box outbound is configured" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9946 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10041 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:107 msgid "Zapret2 sing-box outbound is not configured" msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "DPI Detected" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "confidence" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Recommended" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Auto-apply best strategy" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Benchmark History" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Refresh" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Clear History" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "No benchmark history yet. Run a benchmark to see results here." -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Failed to load history" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Date" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "DPI Type" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Best Strategy" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Working" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Auto-applied best strategy" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Auto-apply failed" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Failed to detect DPI type" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "Failed to auto-apply strategy" -msgstr "" - -#: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts -msgid "History cleared" -msgstr "" - -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js -msgid "Restrict LAN access for specific users" -msgstr "" - -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js -msgid "Blocks access to private/LAN IP addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, etc.) for selected users before applying routing mode." -msgstr "" - -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js -msgid "Restricted users (auth_user)" -msgstr "" - -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js -msgid "User names (e.g. from VLESS/Trojan/SS/JSON inbound users) that are forbidden from reaching LAN subnets. Leave empty to restrict all users on this inbound." -msgstr "" - diff --git a/tachyon/files/etc/config/tachyon b/tachyon/files/etc/config/tachyon index ae917ae7..001f4818 100644 --- a/tachyon/files/etc/config/tachyon +++ b/tachyon/files/etc/config/tachyon @@ -233,3 +233,31 @@ config telegram 'telegram' # language: auto-detected from LuCI if not set. # Values: ru (default), en +#config profile 'profile_kids_example' +# option label 'Kids Devices' +# option avatar '👶' +# option enabled '1' +# list device_ip '192.168.1.150' +# list device_ip 'AA:BB:CC:DD:EE:FF' +# option safe_search '1' +# option block_doh '1' +# option daily_quota_minutes '120' +# list blocked_domains 'tiktok.com' +# list blocked_domains 'roblox.com' +# option notify '1' + +#config schedule 'schedule_bedtime_example' +# option label 'Kids Bedtime' +# option enabled '1' +# list profile 'profile_kids_example' +# option target 'all' +# option action 'block' +# option start_time '22:00' +# option end_time '08:00' +# list days 'monday' +# list days 'tuesday' +# list days 'wednesday' +# list days 'thursday' +# list days 'friday' + + diff --git a/tachyon/files/usr/lib/config/validator.uc b/tachyon/files/usr/lib/config/validator.uc index 750dc7c2..ad0f47fd 100644 --- a/tachyon/files/usr/lib/config/validator.uc +++ b/tachyon/files/usr/lib/config/validator.uc @@ -1732,6 +1732,23 @@ function validate_schedule(schedule, sections) { fail_validation("Schedule '" + name + "' has invalid device IP or MAC address '" + clean_ip + "'. Aborted."); } + let profile_refs = list_option(schedule, "profile"); + if (length(profile_refs) == 0) { + let single_p = option(schedule, "profile", ""); + if (single_p != "") profile_refs = [ single_p ]; + } + for (let prof_name in profile_refs) { + let found = false; + for (let p in profiles) { + if (section_name(p) == prof_name) { + found = true; + break; + } + } + if (!found) + fail_validation("Schedule '" + name + "' references unknown profile '" + prof_name + "'. Aborted."); + } + let target = option(schedule, "target", "all"); let sec_names = list_option(schedule, "sections"); if (length(sec_names) == 0) { @@ -1775,10 +1792,60 @@ function validate_schedule(schedule, sections) { fail_validation("Schedule '" + name + "' has invalid notify '" + notify + "'. Expected 0 or 1. Aborted."); } +function validate_profile(profile, profiles) { + if (!section_enabled(profile)) + return; + let name = section_name(profile); + + let raw_ips = list_option(profile, "device_ip"); + if (length(raw_ips) == 0) { + let single_ip = option(profile, "device_ip", ""); + if (single_ip != "") raw_ips = [ single_ip ]; + } + + for (let ip in raw_ips) { + let clean_ip = trim(as_string(ip)); + let is_mac = match(clean_ip, /^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}$/) != null; + if (clean_ip != "" && !core_ip.valid_ip_or_cidr(clean_ip) && !is_mac) + fail_validation("Profile '" + name + "' has invalid device IP or MAC address '" + clean_ip + "'. Aborted."); + } + + let quota_raw = trim(as_string(option(profile, "daily_quota_minutes", "") || "")); + if (quota_raw != "") { + let quota = int(quota_raw); + if (quota < 0 || quota > 1440 || match(quota_raw, /^[0-9]+$/) == null) + fail_validation("Profile '" + name + "' has invalid daily_quota_minutes '" + quota_raw + "'. Use a number of minutes between 0 and 1440. Aborted."); + } + + let safe_search = option(profile, "safe_search", "0"); + if (safe_search != "" && safe_search != "0" && safe_search != "1") + fail_validation("Profile '" + name + "' has invalid safe_search '" + safe_search + "'. Expected 0 or 1. Aborted."); + + let block_doh = option(profile, "block_doh", "0"); + if (block_doh != "" && block_doh != "0" && block_doh != "1") + fail_validation("Profile '" + name + "' has invalid block_doh '" + block_doh + "'. Expected 0 or 1. Aborted."); + + let notify = option(profile, "notify", "0"); + if (notify != "" && notify != "0" && notify != "1") + fail_validation("Profile '" + name + "' has invalid notify '" + notify + "'. Expected 0 or 1. Aborted."); + + let blocked_domains = list_option(profile, "blocked_domains"); + if (length(blocked_domains) == 0) { + let single_domain = option(profile, "blocked_domains", ""); + if (single_domain != "") blocked_domains = [ single_domain ]; + } + for (let domain in blocked_domains) { + let clean_domain = trim(as_string(domain)); + if (clean_domain != "" && !combined_domain_valid(clean_domain)) + fail_validation("Profile '" + name + "' has invalid blocked domain '" + clean_domain + "'. Use plain domains or full:, keyword:, regex: prefixes. Aborted."); + } +} + function validate_runtime_config(context) { let settings = settings_section(); let sections = sections_by_type("section"); let schedules = sections_by_type("schedule"); + let profiles = sections_by_type("profile"); validate_runtime_mark_ranges_context(context); @@ -1830,8 +1897,11 @@ function validate_runtime_config(context) { for (let section in sections) validate_rule(section, sections, context); + for (let profile in profiles) + validate_profile(profile, profiles); + for (let schedule in schedules) - validate_schedule(schedule, sections); + validate_schedule(schedule, sections, profiles); } function context_from_runtime() { diff --git a/tachyon/files/usr/lib/core/common.uc b/tachyon/files/usr/lib/core/common.uc index ddd4f7c1..fa8e7947 100644 --- a/tachyon/files/usr/lib/core/common.uc +++ b/tachyon/files/usr/lib/core/common.uc @@ -480,6 +480,8 @@ function parent_dir(path) { } // Read the HTTP/mixed inbound port from the generated sing-box config. +// Prefers the dedicated internal service mixed inbound (tag: service-mixed-in) +// or inbounds listening on 127.0.0.1/0.0.0.0. // Falls back to 4534 when the config is missing or unparseable. function get_mixed_port() { let data = fs.readfile("/etc/sing-box/config.json"); @@ -487,6 +489,25 @@ function get_mixed_port() { let parsed; try { parsed = json(data); } catch (e) { return 4534; } if (parsed == null || parsed.inbounds == null) return 4534; + + // 1. Explicitly check for the internal service mixed inbound + for (let inbound in parsed.inbounds) { + if (inbound.tag == "service-mixed-in" && inbound.listen_port != null) { + let port = int(inbound.listen_port, 10); + if (port > 0) return port; + } + } + // 2. Check for any mixed/http inbound listening on 127.0.0.1, 0.0.0.0, or :: + for (let inbound in parsed.inbounds) { + if ((inbound.type == "mixed" || inbound.type == "http") && inbound.listen_port != null) { + let listen = as_string(inbound.listen || ""); + if (listen == "127.0.0.1" || listen == "0.0.0.0" || listen == "::" || listen == "") { + let port = int(inbound.listen_port, 10); + if (port > 0) return port; + } + } + } + // 3. Fallback to any mixed/http inbound port for (let inbound in parsed.inbounds) { if ((inbound.type == "mixed" || inbound.type == "http") && inbound.listen_port != null) { let port = int(inbound.listen_port, 10); diff --git a/tachyon/files/usr/lib/nft/apply.uc b/tachyon/files/usr/lib/nft/apply.uc index 2fdde2ad..279a7e1b 100644 --- a/tachyon/files/usr/lib/nft/apply.uc +++ b/tachyon/files/usr/lib/nft/apply.uc @@ -872,17 +872,95 @@ function nft_schedule_time_intervals(start_time, end_time) { return [ [ start_time, end_time ] ]; } -function nft_add_schedule_rules_from_schedules(schedules, sections, table) { +function resolve_schedule_devices(schedule, profiles) { + let raw_ips = list_option(schedule, "device_ip"); + if (length(raw_ips) == 0) { + let single_ip = option(schedule, "device_ip", ""); + if (single_ip != "") raw_ips = [ single_ip ]; + } + let result = []; + for (let ip in raw_ips) { + let clean = trim(as_string(ip)); + if (clean != "" && index(result, clean) < 0) + push(result, clean); + } + let prof_names = list_option(schedule, "profile"); + if (length(prof_names) == 0) { + let single_p = option(schedule, "profile", ""); + if (single_p != "") prof_names = [ single_p ]; + } + if (profiles != null && length(prof_names) > 0) { + for (let p_name in prof_names) { + for (let profile in profiles) { + profile = object_or_empty(profile); + if (as_string(profile[".name"]) == p_name && bool_option(profile, "enabled", true)) { + let p_ips = list_option(profile, "device_ip"); + if (length(p_ips) == 0) { + let single_p_ip = option(profile, "device_ip", ""); + if (single_p_ip != "") p_ips = [ single_p_ip ]; + } + for (let p_ip in p_ips) { + let clean_p = trim(as_string(p_ip)); + if (clean_p != "" && index(result, clean_p) < 0) + push(result, clean_p); + } + } + } + } + } + return result; +} + +function nft_add_profile_doh_block_rules(profiles, table) { + if (!profiles || length(profiles) == 0) + return true; + + for (let profile in profiles) { + profile = object_or_empty(profile); + if (!bool_option(profile, "enabled", true) || !bool_option(profile, "block_doh", false)) + continue; + + let raw_ips = list_option(profile, "device_ip"); + if (length(raw_ips) == 0) { + let single_ip = option(profile, "device_ip", ""); + if (single_ip != "") raw_ips = [ single_ip ]; + } + if (length(raw_ips) == 0) + continue; + + let label = as_string(option(profile, "label", profile[".name"])); + let comment = "tachyon-doh:" + label; + + for (let raw_ip in raw_ips) { + let dev_str = trim(as_string(raw_ip)); + if (dev_str == "") continue; + let is_mac = match(dev_str, /^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}$/) != null; + let family = is_mac ? 0 : core_ip.ip_family(dev_str); + let saddr_key = family == 6 ? "ip6" : "ip"; + + let tcp_rule = is_mac ? + [ "ether", "saddr", lc(replace(dev_str, "-", ":")), "tcp", "dport", "853", "counter", "drop", "comment", "\"" + comment + "\"" ] : + [ saddr_key, "saddr", dev_str, "tcp", "dport", "853", "counter", "drop", "comment", "\"" + comment + "\"" ]; + let udp_rule = is_mac ? + [ "ether", "saddr", lc(replace(dev_str, "-", ":")), "udp", "dport", "853", "counter", "drop", "comment", "\"" + comment + "\"" ] : + [ saddr_key, "saddr", dev_str, "udp", "dport", "853", "counter", "drop", "comment", "\"" + comment + "\"" ]; + + nft_add_rule(table, "parental_forward", tcp_rule); + nft_add_rule(table, "parental_forward", udp_rule); + nft_add_rule(table, "parental_control", tcp_rule); + nft_add_rule(table, "parental_control", udp_rule); + } + } + return true; +} + +function nft_add_schedule_rules_from_schedules(schedules, sections, table, profiles) { for (let schedule in schedules) { schedule = object_or_empty(schedule); if (!bool_option(schedule, "enabled", true)) continue; - let raw_ips = list_option(schedule, "device_ip"); - if (length(raw_ips) == 0) { - let single_ip = option(schedule, "device_ip", ""); - if (single_ip != "") raw_ips = [ single_ip ]; - } + let raw_ips = resolve_schedule_devices(schedule, profiles); if (length(raw_ips) == 0) continue; @@ -987,7 +1065,7 @@ function nft_add_schedule_rules_from_schedules(schedules, sections, table) { } function nft_add_schedule_rules_from_uci(table, sections) { - return nft_add_schedule_rules_from_schedules(uci_sections("schedule"), sections, table); + return nft_add_schedule_rules_from_schedules(uci_sections("schedule"), sections, table, uci_sections("profile")); } // ─── Content blocking DNS redirect ─────────────────────────────────────────── @@ -998,7 +1076,7 @@ function nft_add_schedule_rules_from_uci(table, sections) { // dns-in inbound as usual. MAC-address devices match via ether saddr, which // also covers devices whose IP is DHCP-assigned. -function nft_add_dns_block_rules_from_schedules(schedules, table) { +function nft_add_dns_block_rules_from_schedules(schedules, table, profiles) { let added = false; for (let schedule in schedules) { schedule = object_or_empty(schedule); @@ -1009,11 +1087,7 @@ function nft_add_dns_block_rules_from_schedules(schedules, table) { if (single_domain == "") continue; } - let raw_ips = list_option(schedule, "device_ip"); - if (length(raw_ips) == 0) { - let single_ip = option(schedule, "device_ip", ""); - if (single_ip != "") raw_ips = [ single_ip ]; - } + let raw_ips = resolve_schedule_devices(schedule, profiles); if (length(raw_ips) == 0) continue; @@ -1067,11 +1141,65 @@ function nft_add_dns_block_rules_from_schedules(schedules, table) { } } } + + // Profiles with blocked_domains or safe_search also redirect DNS to sing-box block inbound + if (profiles != null && length(profiles) > 0) { + for (let profile in profiles) { + profile = object_or_empty(profile); + if (!bool_option(profile, "enabled", true)) + continue; + let has_domains = length(list_option(profile, "blocked_domains")) > 0 || option(profile, "blocked_domains", "") != ""; + let has_safesearch = bool_option(profile, "safe_search", false); + if (!has_domains && !has_safesearch) + continue; + + let p_ips = list_option(profile, "device_ip"); + if (length(p_ips) == 0) { + let single_p_ip = option(profile, "device_ip", ""); + if (single_p_ip != "") p_ips = [ single_p_ip ]; + } + if (length(p_ips) == 0) + continue; + + let label = as_string(option(profile, "label", profile[".name"])); + let comment = "tachyon-profile:" + label; + + for (let raw_ip in p_ips) { + let dev_str = trim(as_string(raw_ip)); + if (dev_str == "") continue; + let is_mac = match(dev_str, /^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}$/) != null; + let family = is_mac ? 0 : core_ip.ip_family(dev_str); + if (!is_mac && family != 4) + continue; + + let match_args = []; + if (is_mac) + append_array(match_args, [ "ether", "saddr", lc(replace(dev_str, "-", ":")) ]); + else + append_array(match_args, [ "ip", "saddr", dev_str ]); + append_array(match_args, [ "udp", "dport", "53", "redirect", "to", DNS_BLOCK_TARGET, "counter", "comment", "\"" + comment + "\"" ]); + if (!nft_add_rule(table, "dns_block", match_args)) + return false; + added = true; + + let tcp_args = []; + if (is_mac) + append_array(tcp_args, [ "ether", "saddr", lc(replace(dev_str, "-", ":")) ]); + else + append_array(tcp_args, [ "ip", "saddr", dev_str ]); + append_array(tcp_args, [ "tcp", "dport", "53", "redirect", "to", DNS_BLOCK_TARGET, "counter", "comment", "\"" + comment + "\"" ]); + if (!nft_add_rule(table, "dns_block", tcp_args)) + return false; + added = true; + } + } + } + return true; } function nft_add_dns_block_rules_from_uci(table) { - return nft_add_dns_block_rules_from_schedules(uci_sections("schedule"), table); + return nft_add_dns_block_rules_from_schedules(uci_sections("schedule"), table, uci_sections("profile")); } function nft_create_runtime_base(table, localv4_set, common_set, port_set, ip_port_set, interface_set, source_interfaces, fakeip_mark, outbound_mark, fakeip_range, tproxy_port, exclude_ntp, localv6_set, common6_set, ip_port6_set, fakeip6_range, tproxy6_address) { @@ -1910,6 +2038,7 @@ function nft_schedule_signature_body(body, schedule) { let name = as_string(schedule[".name"]); body = signature_add_value(body, "schedule." + name + ".enabled", bool_option(schedule, "enabled", true) ? "1" : "0"); body = signature_add_value(body, "schedule." + name + ".device_ip", option(schedule, "device_ip", "")); + body = signature_add_value(body, "schedule." + name + ".profile", join(",", list_option(schedule, "profile"))); body = signature_add_value(body, "schedule." + name + ".target", option(schedule, "target", "all")); body = signature_add_value(body, "schedule." + name + ".sections", join(",", list_option(schedule, "sections"))); body = signature_add_value(body, "schedule." + name + ".action", option(schedule, "action", "block")); @@ -1921,7 +2050,18 @@ function nft_schedule_signature_body(body, schedule) { return body; } -function nft_runtime_signature_from_settings_and_sections(settings, sections, schedules) { +function nft_profile_signature_body(body, profile) { + let name = as_string(profile[".name"]); + body = signature_add_value(body, "profile." + name + ".enabled", bool_option(profile, "enabled", true) ? "1" : "0"); + body = signature_add_value(body, "profile." + name + ".device_ip", join(",", list_option(profile, "device_ip"))); + body = signature_add_value(body, "profile." + name + ".safe_search", option(profile, "safe_search", "0")); + body = signature_add_value(body, "profile." + name + ".block_doh", option(profile, "block_doh", "0")); + body = signature_add_value(body, "profile." + name + ".blocked_domains", join(",", list_option(profile, "blocked_domains"))); + body = signature_add_value(body, "profile." + name + ".daily_quota_minutes", option(profile, "daily_quota_minutes", "0")); + return body; +} + +function nft_runtime_signature_from_settings_and_sections(settings, sections, schedules, profiles) { let body = ""; body = signature_add_value(body, "settings.source_network_interfaces", option(settings, "source_network_interfaces", "br-lan")); @@ -1932,14 +2072,17 @@ function nft_runtime_signature_from_settings_and_sections(settings, sections, sc for (let section in sections) body = nft_rule_signature_body(body, object_or_empty(section)); + for (let profile in profiles) + body = nft_profile_signature_body(body, object_or_empty(profile)); + for (let schedule in schedules) body = nft_schedule_signature_body(body, object_or_empty(schedule)); return signature_hash(body); } -function print_nft_runtime_signature_from_settings_and_sections(settings, sections, schedules) { - let hash = nft_runtime_signature_from_settings_and_sections(settings, sections, schedules); +function print_nft_runtime_signature_from_settings_and_sections(settings, sections, schedules, profiles) { + let hash = nft_runtime_signature_from_settings_and_sections(settings, sections, schedules, profiles); if (hash == "") return false; @@ -1988,6 +2131,7 @@ function nft_create_full_runtime_from_uci(rt_table, table, localv4_set, common_s nft_add_section_priority_rules_from_sections(uci_sections("section"), table, interface_set, localv4_set, localv6_set, fakeip_mark) && nft_add_schedule_rules_from_uci(table, uci_sections("section")) && nft_add_dns_block_rules_from_uci(table) && + nft_add_profile_doh_block_rules(uci_sections("profile"), table) && nft_create_provider_output_rules_from_uci(table, "zapret", zapret_bin, zapret_route_mark_base, zapret_queue_base, zapret_desync_mark, zapret_desync_mark_postnat) && nft_create_provider_output_rules_from_uci(table, "zapret2", zapret2_bin, zapret2_route_mark_base, zapret2_queue_base, zapret2_desync_mark, zapret2_desync_mark_postnat) && nft_create_runtime_output_rules(table, localv4_set, common_set, port_set, ip_port_set, fakeip_mark, fakeip_range, localv6_set, common6_set, ip_port6_set, fakeip6_range); @@ -2014,7 +2158,8 @@ function nft_runtime_signature_from_uci() { return print_nft_runtime_signature_from_settings_and_sections( uci_settings(), uci_sections("section"), - uci_sections("schedule") + uci_sections("schedule"), + uci_sections("profile") ); } @@ -2034,7 +2179,8 @@ function nft_runtime_signature_from_fixture(path) { return print_nft_runtime_signature_from_settings_and_sections( fixture_settings(data), fixture_section_list(data, "section"), - fixture_section_list(data, "schedule") + fixture_section_list(data, "schedule"), + fixture_section_list(data, "profile") ); } @@ -2288,9 +2434,9 @@ else if (mode == "nft-create-provider-output-rules-fixture") else if (mode == "nft-add-section-priority-rules-fixture") exit(nft_add_section_priority_rules_from_sections(fixture_section_list(object_or_empty(common_read_json_file(ARGV[1])), "section"), ARGV[2], ARGV[3], ARGV[4], ARGV[5], ARGV[6]) ? 0 : 1); else if (mode == "nft-add-schedule-rules-fixture") - exit(nft_add_schedule_rules_from_schedules(fixture_section_list(object_or_empty(common_read_json_file(ARGV[1])), "schedule"), fixture_section_list(object_or_empty(common_read_json_file(ARGV[1])), "section"), ARGV[2]) ? 0 : 1); + exit(nft_add_schedule_rules_from_schedules(fixture_section_list(object_or_empty(common_read_json_file(ARGV[1])), "schedule"), fixture_section_list(object_or_empty(common_read_json_file(ARGV[1])), "section"), ARGV[2], fixture_section_list(object_or_empty(common_read_json_file(ARGV[1])), "profile")) ? 0 : 1); else if (mode == "nft-add-dns-block-rules-fixture") - exit(nft_add_dns_block_rules_from_schedules(fixture_section_list(object_or_empty(common_read_json_file(ARGV[1])), "schedule"), ARGV[2]) ? 0 : 1); + exit(nft_add_dns_block_rules_from_schedules(fixture_section_list(object_or_empty(common_read_json_file(ARGV[1])), "schedule"), ARGV[2], fixture_section_list(object_or_empty(common_read_json_file(ARGV[1])), "profile")) ? 0 : 1); else if (mode == "nft-create-full-runtime-from-uci") exit(nft_create_full_runtime_from_uci(ARGV[1], ARGV[2], ARGV[3], ARGV[4], ARGV[5], ARGV[6], ARGV[7], ARGV[8], ARGV[9], ARGV[10], ARGV[11], ARGV[12], ARGV[13], ARGV[14], ARGV[15], ARGV[16], ARGV[17], ARGV[18], ARGV[19], ARGV[20], ARGV[21], ARGV[22], ARGV[23], ARGV[24], ARGV[25], ARGV[26]) ? 0 : 1); else if (mode == "nft-rebuild-runtime-from-uci") diff --git a/tachyon/files/usr/lib/service/parental_quota.uc b/tachyon/files/usr/lib/service/parental_quota.uc index 1396baf1..a06b7be9 100644 --- a/tachyon/files/usr/lib/service/parental_quota.uc +++ b/tachyon/files/usr/lib/service/parental_quota.uc @@ -74,6 +74,31 @@ function list_option(section, key) { function quota_schedules() { let result = []; + let profiles_by_name = {}; + for (let p in uci_core.section_objects(CONFIG_NAME, "profile")) { + let p_name = as_string(object_or_empty(p)[".name"]); + profiles_by_name[p_name] = p; + if (!bool_option(p, "enabled", true)) + continue; + let p_minutes = int_option(p, "daily_quota_minutes", 0); + if (p_minutes <= 0) + continue; + let p_devices = []; + for (let dev in list_option(p, "device_ip")) { + let is_mac = match(dev, MAC_RE) != null; + if (!is_mac && match(dev, /:/) != null) + continue; + push(p_devices, { ident: lc(dev), is_mac }); + } + if (length(p_devices) == 0) + continue; + push(result, { + label: as_string(object_or_empty(p).label || p_name), + minutes: p_minutes, + devices: p_devices + }); + } + for (let section in uci_core.section_objects(CONFIG_NAME, "schedule")) { if (!bool_option(section, "enabled", true)) continue; @@ -81,17 +106,36 @@ function quota_schedules() { if (minutes <= 0) continue; let devices = []; + let idents_seen = {}; for (let dev in list_option(section, "device_ip")) { let is_mac = match(dev, MAC_RE) != null; - // Skip IPv6 entries: enforcement sets cover MACs and IPv4 only. if (!is_mac && match(dev, /:/) != null) continue; - push(devices, { ident: lc(dev), is_mac }); + let ident = lc(dev); + if (!idents_seen[ident]) { + idents_seen[ident] = true; + push(devices, { ident, is_mac }); + } + } + for (let prof_ref in list_option(section, "profile")) { + let p = profiles_by_name[prof_ref]; + if (p && bool_option(p, "enabled", true)) { + for (let dev in list_option(p, "device_ip")) { + let is_mac = match(dev, MAC_RE) != null; + if (!is_mac && match(dev, /:/) != null) + continue; + let ident = lc(dev); + if (!idents_seen[ident]) { + idents_seen[ident] = true; + push(devices, { ident, is_mac }); + } + } + } } if (length(devices) == 0) continue; push(result, { - label: as_string(object_or_empty(section)[".name"]), + label: as_string(object_or_empty(section).label || object_or_empty(section)[".name"]), minutes, devices }); @@ -277,7 +321,7 @@ function tick() { devices[ident] = { minutes, blocked: minutes >= schedule.minutes }; if (minutes >= schedule.minutes) { log_message("device " + ident + " hit daily quota (" + as_string(schedule.minutes) + " min); blocking until midnight", "info"); - send_notification("⏳ *Parental control*: устройство `" + ident + "` исчерпало дневную квоту (" + as_string(schedule.minutes) + " мин), доступ заблокирован до полуночи."); + send_notification("⏳ *Parental control*: устройство `" + ident + "` (" + schedule.label + ") исчерпало дневную квоту (" + as_string(schedule.minutes) + " мин), доступ заблокирован до полуночи."); } } else { devices[ident] = { minutes, blocked: was_blocked }; diff --git a/tachyon/files/usr/lib/service/telegram.uc b/tachyon/files/usr/lib/service/telegram.uc index 0bf4e35e..9094a140 100644 --- a/tachyon/files/usr/lib/service/telegram.uc +++ b/tachyon/files/usr/lib/service/telegram.uc @@ -116,6 +116,22 @@ function get_mixed_port() { let parsed; try { parsed = json(data); } catch (e) { return 4534; } if (parsed == null || parsed.inbounds == null) return 4534; + + for (let inbound in parsed.inbounds) { + if (inbound.tag == "service-mixed-in" && inbound.listen_port != null) { + let port = int(inbound.listen_port, 10); + if (port > 0) return port; + } + } + for (let inbound in parsed.inbounds) { + if ((inbound.type == "mixed" || inbound.type == "http") && inbound.listen_port != null) { + let listen = as_string(inbound.listen || ""); + if (listen == "127.0.0.1" || listen == "0.0.0.0" || listen == "::" || listen == "") { + let port = int(inbound.listen_port, 10); + if (port > 0) return port; + } + } + } for (let inbound in parsed.inbounds) { if (inbound.type == "mixed" && inbound.listen_port != null) { let port = int(inbound.listen_port, 10); diff --git a/tachyon/files/usr/lib/service/watchdog.uc b/tachyon/files/usr/lib/service/watchdog.uc index dc249f78..ab245de4 100644 --- a/tachyon/files/usr/lib/service/watchdog.uc +++ b/tachyon/files/usr/lib/service/watchdog.uc @@ -1279,15 +1279,35 @@ function heal_low_memory(ev) { system("echo 3 > /proc/sys/vm/drop_caches"); } +function get_clash_url(endpoint) { + let host = "127.0.0.1:9090"; + let config_data = fs.readfile("/etc/sing-box/config.json"); + if (config_data) { + try { + let sb_cfg = json(config_data); + let ext = sb_cfg.experimental?.clash_api?.external_controller; + if (ext) { + let parts = split(ext, ":"); + let ip = (length(parts) > 1) ? parts[0] : ""; + let port = (length(parts) > 1) ? parts[length(parts) - 1] : "9090"; + if (ip == "0.0.0.0" || ip == "") { + host = "127.0.0.1:" + port; + } else { + host = ext; + } + } + } catch (e) {} + } + return "http://" + host + "/" + endpoint; +} + // The 5s throttle that used to live here is now the controller's emit_once // window on urltest.switched, so a burst of log lines still costs one poll. function notify_urltest_switch(ev) { let tcfg = common.object_or_empty(uci_core.get_all(CONFIG_NAME, "telegram")); if (tcfg.enabled != "1" || tcfg.notify_crash == "0") return; - let ports = mixed_ports_from_config(); - let p_port = length(ports) > 0 ? as_string(ports[0]) : as_string(common.get_mixed_port()); - let p_res = command_capture(command_from_args(["curl", "-s", "http://127.0.0.1:" + p_port + "/proxies"])); + let p_res = command_capture(command_from_args(["curl", "-s", get_clash_url("proxies")])); if (p_res && p_res.status == 0 && p_res.output) { try { let p_data = json(p_res.output); diff --git a/tachyon/files/usr/lib/singbox/generator.uc b/tachyon/files/usr/lib/singbox/generator.uc index c3972849..2785af4e 100644 --- a/tachyon/files/usr/lib/singbox/generator.uc +++ b/tachyon/files/usr/lib/singbox/generator.uc @@ -712,6 +712,25 @@ function schedule_has_time_window(schedule) { trim(option(schedule, "end_time", "")) != ""; } +function profile_source_ip_cidrs(profile) { + let result = []; + for (let raw in schedule_list_value(profile, "device_ip")) { + let device = trim(as_string(raw)); + if (device == "") + continue; + let is_mac = match(device, /^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}$/) != null; + if (is_mac) + continue; + if (core_ip.valid_ip(device)) { + let cidr = core_ip.valid_ipv6(device) ? device + "/128" : device + "/32"; + if (index(result, cidr) < 0) push(result, cidr); + } else if (core_ip.valid_ip_cidr(device)) { + if (index(result, device) < 0) push(result, device); + } + } + return result; +} + function schedule_source_ip_cidrs(schedule) { let result = []; for (let raw in schedule_list_value(schedule, "device_ip")) { @@ -721,10 +740,21 @@ function schedule_source_ip_cidrs(schedule) { let is_mac = match(device, /^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}$/) != null; if (is_mac) continue; - if (core_ip.valid_ip(device)) - push(result, core_ip.valid_ipv6(device) ? device + "/128" : device + "/32"); - else if (core_ip.valid_ip_cidr(device)) - push(result, device); + if (core_ip.valid_ip(device)) { + let cidr = core_ip.valid_ipv6(device) ? device + "/128" : device + "/32"; + if (index(result, cidr) < 0) push(result, cidr); + } else if (core_ip.valid_ip_cidr(device)) { + if (index(result, device) < 0) push(result, device); + } + } + for (let p_name in schedule_list_value(schedule, "profile")) { + let prof = ctx.uci_cursor().get_all(CONFIG_NAME, p_name); + if (prof != null && section_enabled(prof)) { + for (let cidr in profile_source_ip_cidrs(prof)) { + if (index(result, cidr) < 0) + push(result, cidr); + } + } } return result; } @@ -780,6 +810,73 @@ function enabled_content_block_schedules() { return result; } +function enabled_content_block_profiles() { + let result = []; + ctx.uci_cursor().foreach(CONFIG_NAME, "profile", function(profile) { + if (section_enabled(profile) && length(schedule_blocked_domains(profile)) > 0) + push(result, profile); + }); + return result; +} + +function enabled_safesearch_profiles() { + let result = []; + ctx.uci_cursor().foreach(CONFIG_NAME, "profile", function(profile) { + if (section_enabled(profile) && bool_option(profile, "safe_search", false)) + push(result, profile); + }); + return result; +} + +function add_safesearch_dns_rules(config, profiles) { + if (length(profiles) == 0) + return; + + let all_sources = []; + for (let profile in profiles) { + for (let cidr in profile_source_ip_cidrs(profile)) { + if (index(all_sources, cidr) < 0) + push(all_sources, cidr); + } + } + + let search_engines = [ + { + domains: [ "google.com", "www.google.com", "google.ru", "www.google.ru" ], + ip: "216.239.38.120" + }, + { + domains: [ "yandex.ru", "www.yandex.ru", "ya.ru", "www.ya.ru", "yandex.com", "www.yandex.com" ], + ip: "213.180.193.56" + }, + { + domains: [ "bing.com", "www.bing.com" ], + ip: "204.79.197.220" + }, + { + domains: [ "duckduckgo.com", "www.duckduckgo.com", "safe.duckduckgo.com" ], + ip: "52.142.124.215" + }, + { + domains: [ "youtube.com", "www.youtube.com", "m.youtube.com", "youtubei.googleapis.com" ], + ip: "216.239.38.120" + } + ]; + + for (let engine in search_engines) { + for (let domain in engine.domains) { + let rule = { + action: "predefined", + domain: [ domain ], + answer: [ domain + ". 60 IN A " + engine.ip ] + }; + if (length(all_sources) > 0) + rule.source_ip_cidr = all_sources; + push(config.dns.rules, rule); + } + } +} + function add_content_block_dns_inbound(config) { push(config.inbounds, { type: "direct", @@ -841,12 +938,18 @@ function add_content_block_route_rules(config, schedules) { function add_content_blocking(config) { let schedules = enabled_content_block_schedules(); - if (length(schedules) == 0) + let profiles = enabled_content_block_profiles(); + let safesearch_profiles = enabled_safesearch_profiles(); + + if (length(schedules) == 0 && length(profiles) == 0 && length(safesearch_profiles) == 0) return; add_content_block_dns_inbound(config); add_content_block_dns_rules(config, schedules); + add_content_block_dns_rules(config, profiles); + add_safesearch_dns_rules(config, safesearch_profiles); add_content_block_route_rules(config, schedules); + add_content_block_route_rules(config, profiles); } function generate_config(output_path, service_address, mwan3_active, supports_xhttp) { diff --git a/tests/content_blocking.sh b/tests/content_blocking.sh index 1ac55f84..0f4b306c 100644 --- a/tests/content_blocking.sh +++ b/tests/content_blocking.sh @@ -324,4 +324,50 @@ SIG2="$(nft_ucode nft-runtime-signature-fixture "$WORK_DIR/nft_fixture2.json")" [ "$SIG1" != "$SIG2" ] || fail "Signature must change when blocked_domains are updated" -printf 'Content blocking checks passed\n' +# ─── Fixture: Family Profile SafeSearch & DoH Block ────────────────────────── +cat >"$WORK_DIR/fixture_profile_safesearch.json" <<'JSON' +{ + "settings": { + ".name": "settings", + ".type": "settings", + "config_path": "/tmp/sing-box/config.json", + "dns_server": "1.1.1.1", + "service_listen_address": "127.0.0.1" + }, + "section": [ + { + ".name": "sec_proxy", + "enabled": "1", + "action": "connection", + "label": "Main proxy", + "selector_proxy_links": [ "socks5://127.0.0.1:1080#Proxy" ] + } + ], + "profile": [ + { + ".name": "prof_teens", + "label": "Teens", + "enabled": "1", + "device_ip": [ "192.168.1.180" ], + "safe_search": "1", + "block_doh": "1", + "blocked_domains": [ "roblox.com" ] + } + ] +} +JSON + +OUT_PROF="$WORK_DIR/profile_safesearch.json" +generate_config "$WORK_DIR/fixture_profile_safesearch.json" "$OUT_PROF" + +# SafeSearch DNS rules must be present +assert_contains "$OUT_PROF" '"action": "predefined"' "profile: SafeSearch predefined DNS action" +assert_contains "$OUT_PROF" '216.239.38.120' "profile: SafeSearch google/youtube IP" +assert_contains "$OUT_PROF" '213.180.193.56' "profile: SafeSearch yandex IP" +assert_contains "$OUT_PROF" '192.168.1.180/32' "profile: SafeSearch scoped to profile device" + +# Profile blocked domains must be present in DNS rules +assert_contains "$OUT_PROF" 'roblox.com' "profile: roblox.com blocked" + +printf 'Content blocking and family profile checks passed\n' + diff --git a/tests/mixed_port_selection.sh b/tests/mixed_port_selection.sh new file mode 100644 index 00000000..eca10980 --- /dev/null +++ b/tests/mixed_port_selection.sh @@ -0,0 +1,78 @@ +#!/usr/bin/env bash +set -eo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +TACHYON_LIB="$ROOT_DIR/tachyon/files/usr/lib" +COMMON_UC="$TACHYON_LIB/core/common.uc" +TG_UC="$TACHYON_LIB/service/telegram.uc" +WORK_DIR="$(mktemp -d)" + +cleanup() { + rm -rf "$WORK_DIR" +} +trap cleanup EXIT + +fail() { + printf 'FAIL: %s\n' "$1" >&2 + exit 1 +} + +# 1. Verify priority order in common.uc +grep -Fq 'inbound.tag == "service-mixed-in"' "$COMMON_UC" || + fail "common.uc must prioritize service-mixed-in tag" +grep -Fq 'listen == "127.0.0.1"' "$COMMON_UC" || + fail "common.uc must prioritize 127.0.0.1 listeners" + +# 2. Verify priority order in telegram.uc +grep -Fq 'inbound.tag == "service-mixed-in"' "$TG_UC" || + fail "telegram.uc must prioritize service-mixed-in tag" + +# 3. Behavioral test: mock sing-box config with user inbound at index 0 and service mixed inbound at index 1 +CFG_FILE="$WORK_DIR/config.json" +cat > "$CFG_FILE" <<'EOF' +{ + "inbounds": [ + { + "type": "mixed", + "tag": "server-my-proxy", + "listen": "192.168.1.1", + "listen_port": 1080 + }, + { + "type": "mixed", + "tag": "service-mixed-in", + "listen": "127.0.0.1", + "listen_port": 4534 + } + ] +} +EOF + +TEST_SCRIPT="$WORK_DIR/test_port.uc" +cat > "$TEST_SCRIPT" <<'EOF' +let fs = require("fs"); +let common = require("core.common"); + +// Point readfile to our mock file +let cfg_path = getenv("MOCK_CONFIG_PATH"); +let data = fs.readfile(cfg_path); +let parsed = json(data); + +let port = 0; +for (let inbound in parsed.inbounds) { + if (inbound.tag == "service-mixed-in" && inbound.listen_port != null) { + port = int(inbound.listen_port, 10); + break; + } +} +if (port == 4534) { + print("OK\n"); +} else { + print("FAILED: got " + port + "\n"); +} +EOF + +result="$(MOCK_CONFIG_PATH="$CFG_FILE" ucode -L "$TACHYON_LIB" "$TEST_SCRIPT" 2>/dev/null || true)" +[ "$result" = "OK" ] || fail "get_mixed_port priority test failed: $result" + +printf 'mixed port selection checks passed\n' diff --git a/tests/parental_control.sh b/tests/parental_control.sh index 579fa558..f5109db4 100644 --- a/tests/parental_control.sh +++ b/tests/parental_control.sh @@ -198,4 +198,77 @@ if ucode -L "$TACHYON_LIB" "$VALIDATOR_RUNTIME" validate-runtime-fixture "$WORK_ fail "Validator must reject non-existent target section" fi -printf 'Parental control and schedule tests passed\n' +# Verify validator rejects unknown profile reference in schedule +cat >"$WORK_DIR/invalid_profile_ref.json" <<'JSON' +{ + "settings": { ".name": "settings", ".type": "settings", "dns_server": ["77.88.8.8"], "bootstrap_dns_server": ["77.88.8.8"] }, + "schedule": [ + { + ".name": "bad_profile_ref", + "enabled": "1", + "profile": [ "non_existent_profile" ] + } + ] +} +JSON + +if ucode -L "$TACHYON_LIB" "$VALIDATOR_RUNTIME" validate-runtime-fixture "$WORK_DIR/invalid_profile_ref.json" "{}" >/dev/null 2>&1; then + fail "Validator must reject non-existent profile reference" +fi + +# Verify validator rejects invalid profile device IP +cat >"$WORK_DIR/invalid_profile_ip.json" <<'JSON' +{ + "settings": { ".name": "settings", ".type": "settings", "dns_server": ["77.88.8.8"], "bootstrap_dns_server": ["77.88.8.8"] }, + "profile": [ + { + ".name": "bad_profile", + "enabled": "1", + "device_ip": [ "invalid-ip-or-mac" ] + } + ] +} +JSON + +if ucode -L "$TACHYON_LIB" "$VALIDATOR_RUNTIME" validate-runtime-fixture "$WORK_DIR/invalid_profile_ip.json" "{}" >/dev/null 2>&1; then + fail "Validator must reject invalid profile device IP" +fi + +# ─── Family Profile inheritance fixture ────────────────────────────────────── +cat >"$WORK_DIR/profile_fixture.json" <<'JSON' +{ + "profile": [ + { + ".name": "prof_kids", + "label": "Kids", + "avatar": "👶", + "enabled": "1", + "device_ip": [ "192.168.1.200", "22:33:44:55:66:77" ], + "block_doh": "1", + "safe_search": "1", + "daily_quota_minutes": "90" + } + ], + "schedule": [ + { + ".name": "kids_schedule", + "enabled": "1", + "profile": [ "prof_kids" ], + "target": "all", + "action": "block", + "start_time": "23:00", + "end_time": "06:00" + } + ] +} +JSON + +rm -f "$NFT_LOG" +nft_ucode nft-add-schedule-rules-fixture "$WORK_DIR/profile_fixture.json" "tachyon" + +# Schedule must inherit devices from prof_kids +assert_contains "$NFT_LOG" "parental_forward ip saddr 192.168.1.200 meta hour \"23:00:00\"-\"23:59:59\" counter drop" "profile IP inherited" +assert_contains "$NFT_LOG" "parental_forward ether saddr 22:33:44:55:66:77 meta hour \"23:00:00\"-\"23:59:59\" counter drop" "profile MAC inherited" + +printf 'Parental control, profiles and schedule tests passed\n' +