Commit Graph
65 Commits
Author SHA1 Message Date
Dushnilin 2cfb81f680 release: 1.3.25 - fix sing-box 1.14+ http_clients detour schema and prevent startup crash 2026-09-10 21:47:02 +03:00
Dushnilin c85811cbe0 chore(deps): explicitly declare @vitest/mocker in devDependencies (#64) 2026-09-09 18:57:21 +03:00
Dushnilin cbdc93aa62 chore(deps): bump vitest and @vitest/mocker to 5.0.0 (#48)
Resolves Dependabot security alert #65 (path traversal / arbitrary file read via @vitest/mocker redirect mock).
2026-09-09 18:55:26 +03:00
Dushnilin e523474631 release: 1.3.24 — тест утечки IP/DNS из роутера, оптимизация запуска списков хостов и локализация
- feat(diagnostics): router-level IP & DNS leak detection
  * одновременный опрос прямого WAN сокета (SO_MARK 0x08000000) и локального прокси (127.0.0.1:4534)
  * выявление утечки реального публичного IP адреса
  * тестирование восходящих DNS-резолверов по протоколу bash.ws и обнаружение DNS провайдера
  * CLI команды: tachyon leak_check [--pretty], check_ip_leak, check_dns_leak
  * LuCI модальное окно с детализированными таблицами изоляции IP и анализа резолверов
- fix(hosts): устранение ложного предупреждения [warn] No hosts list URLs configured
  * запуск HOSTS_UC в lifecycle.uc только при наличии активных списков хостов
  * hosts.uc возвращает success:true и код 0 без лишних записей в syslog при отсутствии URL
  * добавлена проверка has-hosts-list-update-sources в state.uc
- i18n: полная синхронизация русской локализации в каталогах gettext PO/POT
- bump: версия пакета 1.3.24
2026-09-09 17:28:51 +03:00
Dushnilin dd6b877adb feat: поддержка AmneziaWG 3.1, keepalive ranges, безопасный ruleset HTTP client и Source-Aware DNS 2026-09-07 10:14:12 +03:00
Dushnilin fd79c4e317 feat: поддержка HTTP/HTTPS прокси (#45), комплексная доработка деинсталляции и отката конфигурации (1.3.22) 2026-09-06 14:12:27 +03:00
Dushnilin 6d921d963c fix: корректный порядок применения секций сверху вниз и совместимость со всеми ядрами sing-box (1.3.21)
- Исправлена совместимость с Official (1.13.x), Tiny, LX и Extended ядрами sing-box
- Устранена фатальная ошибка unknown field store_dns на sing-box 1.13.x (автоопределение store_rdrc vs store_dns)
- Добавлена плавная деградация в runtime при неподдерживаемых параметрах cache_file и неизвестных транспортах
- Разделены правила маршрутизации доменов/наборов правил и IP CIDR, устраняя конфликт логики AND в sing-box 1.14+
- Исключены подсети общих CDN (Cloudflare, CloudFront, Hetzner, OVH, DigitalOcean) из nftables L4 для предотвращения перехвата сторонних ресурсов (включая Discord) вышестоящими секциями
- Обеспечено строгое соблюдение порядка следования секций сверху вниз во всех конфигурациях
2026-09-06 08:33:18 +03:00
Dushnilin 6bedef4c77 fix: zapret2 daemon privileges and lua loader, dnsmasq reload auto-repair (1.3.20) 2026-09-04 14:45:01 +03:00
Dushnilin e901f9d41a fix: zapret2 startup, dnsmasq fakeip rebind protection, dns detour routes (1.3.19) 2026-09-04 13:56:48 +03:00
Dushnilin 196782b18d feat: variant badges, live RSS RAM tracking, sysctl network tuning, telegram updates (1.3.18) 2026-09-03 23:23:39 +03:00
Dushnilin f2d846515c chore(deps): upgrade @humanfs/node to 0.16.8 to resolve dependabot alert 2026-09-03 05:02:57 +03:00
Dushnilin 963185569e fix(fuzzer): support .lua.gz scripts and correct zapret2 desync function names 2026-09-02 19:37:13 +03:00
Dushnilin e8932d3f2d fix(core): prevent ruleset download_detour crash, resilient selector fallback, and clean legacy migration 2026-09-02 16:49:10 +03:00
Dushnilin d72e381018 fix(dns): probe DoH with RFC 8484 wireformat and direct IP resolution 2026-09-02 16:18:31 +03:00
Dushnilin f3b1feba31 chore(release): bump version to 1.3.14 2026-09-02 15:38:47 +03:00
Dushnilin 8b3c3e365f feat(dns): upstream mode (sequential/parallel) & explicit fallback DNS servers, bump 1.3.13 2026-09-01 20:49:21 +03:00
Dushnilin a610c8fe2a chore: bump version to 1.3.12 2026-09-01 18:34:16 +03:00
Dushnilin 943ee1321d feat(ui): добавить управление порядком, видимостью и стартовой вкладкой меню в Настройки 2026-09-01 18:31:31 +03:00
Dushnilin 23aae78147 feat(migration): 1.3.11 - CLI команда import_settings и исправление миграции Forkop
- Добавлена CLI команда tachyon import_settings [файл] (и алиас import-settings) для автоматического сканирования и бесшовного импорта настроек из Forkop, Forkop Plus, Podkop, Netshift или резервных копий
- Поддержка in-place миграции прямо из активного /etc/config/tachyon при обнаружении унаследованных правил config rule
- Расширенное сканирование резервных копий и файлов конфигураций в /etc/config/, /root/ и /tmp/
- Исправлен режим миграции Forkop в Makefile, build.sh и install.sh (использование migrate-podkop для корректного преобразования старых секций config rule в config section)
- Добавлен интеграционный тест tests/import_settings.sh (119 тестов бэкенда пройдены)
2026-09-01 12:15:00 +03:00
Dushnilin 84cdf9d2f8 feat(updates): 1.3.10 - Автоматическое обновление компонентов (сразу при выходе и по расписанию)
- Backend: реализован запуск автоматического обновления компонентов в фоновом режиме (trigger_component_auto_update, component_auto_update_apply)
- Cron: поддержка окна обслуживания (schedule mode) с регистрацией задачи в crontab по заданному времени (HH:MM)
- UCI: новые опции component_auto_update_enabled, component_auto_update_mode, component_auto_update_time, component_auto_update_targets
- Web UI: элементы управления во вкладке настроек «Обновления» (чекбокс включения, переключатель режима, время и мультиселект разрешенных компонентов)
- Тесты: добавлен интеграционный тест component_auto_update.sh, обновлены cron-тесты updates_due.sh, все 118 тестов успешно пройдены в Docker
- Локализация: добавлены русские переводы для всех новых элементов интерфейса
2026-09-01 10:58:46 +03:00
Dushnilin f553352e25 release: 1.3.9 - Оптимизация кодовой базы (Ponytail Audit), очистка мертвого кода и ускорение Telegram-бота
- Frontend: полное удаление неиспользуемого renderAdvancedSettings.ts (-1354 строки), очистка каталогов локализации от фантомных ключей, инкапсуляция внутренних экспортов в runtimeTags и singBoxVariant
- Backend: удаление неиспользуемого singbox/dns_prefetch.uc (-243 строки) и его вызова в lifecycle.uc, удаление устаревших заглушек Forkop-эпохи в service_check.uc
- Telegram Bot: внедрение in-memory кэша cb_map_cache для устранения избыточных дисковых чтений/записей JSON при рендеринге inline-кнопок
- Версия: bump версии до 1.3.9 в package.json и package-lock.json
2026-09-01 08:48:29 +03:00
Dushnilin dfb32722bf release: 1.3.8 - OpenWrt network interfaces for WARP generator, DoH doctor URL normalization & doctor lock fixes 2026-08-30 20:05:16 +03:00
Dushnilin 123f5e6ccf release: 1.3.7 - Telegram alert deduplication & rate limiting, DNS detour deadlock resolution, ucode fs.opendir fixes 2026-08-29 21:28:41 +03:00
Dushnilin 939d9418a2 release: 1.3.6 - Family Profiles, Mobile Responsiveness, Mixed Proxy fix & AI Doctor Fuzzer improvements 2026-08-29 13:57:17 +03:00
Dushnilin a8f34ea73f release: v1.2.77 2026-08-13 08:29:32 +03:00
Dushnilin 285ab7910b v1.2.76: Fix ucode syntax error (remove duplicate stub functions in service_check.uc) and release v1.2.76 2026-08-12 12:27:25 +03:00
Dushnilin 5b372f5572 v1.2.75: Add Service Check mode switcher (Active Sections / All Profiles), restore AI Chat Assistant, harmonize action button styles, and fix dark theme compatibility 2026-08-12 12:22:52 +03:00
Dushnilin 3672af46d8 fix(diagnostics): type error on float conversion in ucode
Replaced non-existent \loat()\ function with unary plus coercion for string to number conversion in service_check.uc.
2026-08-12 10:50:43 +03:00
Dushnilin 2bd2fd7645 feat(diagnostics): нативная кнопка проверки сервисов
Реализована нативная проверка сервисов (watchdog, telegram, sing-box) через ucode, избавляя от внешней зависимости forkop-servicecheck.
2026-08-12 10:42:09 +03:00
Dushnilin b11780dec3 fix: ждать TCP-готовности proxy перед загрузкой отложенных подписок
run_deferred_subscription_bootstrap теперь после проверки что процесс
sing-box запущен дополнительно проверяет что proxy-порт реально принимает
соединения (до 10x3s).

Без этого: если порт не готов в момент вызова — fallback на прямой
download, что провалится для URL доступных только через proxy.
При неудаче через 30s запускается retry worker (поведение сохранено).

Также: get_subscription_download_proxy_address делает одиночную проверку
порта — retry worker является safety net для edge cases.
2026-08-10 18:27:38 +03:00
Dushnilin f5929d24f8 fix: дождаться готовности proxy перед загрузкой подписок и списков
При обновлении sing-box Tachyon перезапускается, запускает sing-box
и сразу пытался загрузить списки/подписки через proxy 127.0.0.1:4534,
но sing-box ещё не принял соединения на этом порту.

Исправления:
- updates.uc: dns_probe_passed теперь проверяет TCP-доступность proxy
  вместо немедленного return true; ждёт до 30s (10 попыток по 3s)
- updates.uc: download_to_file при неудаче через proxy делает fallback
  на прямой download с bootstrap DNS 8.8.8.8/1.1.1.1
- cache.uc: get_subscription_download_proxy_address проверяет что proxy-порт
  реально принимает соединения, иначе переходит на прямой download
- cache.uc: download_subscription использует bootstrap DNS при прямом
  скачивании подписок (когда proxy недоступен или не настроен)
2026-08-10 18:10:36 +03:00
Dushnilin 6379361d40 chore: поднять версию до 1.2.67 2026-08-10 14:17:33 +03:00
Dushnilin 676ee2041b fix: prerm stop-before-rt_tables, BusyBox awk, js-yaml vuln
- service/package.uc: call INIT_PATH stop before process-killing in
  prerm_cleanup so the routing table entry is still visible when the
  service shuts down (fixes test: 'prerm must stop Tachyon before
  removing its routing table name')
- service/package.uc: replace awk regex with | alternation and \/
  escaping with grep -E / grep -F; BusyBox awk does not support |
  in regex literals and silently mishandles \/ — fixes awk syntax
  errors in CI (both prerm_cleanup and postinst_restore)
- fe-app-tachyon: pin js-yaml to ^5.2.1 via overrides to fix the
  quadratic O(n^2) !!omap resolution DoS (same root cause as
  CVE-2026-59870 / GHSA-724g-mxrg-4qvm, never backported to 3.x/4.x)
- fe-app-tachyon: npm audit fix for brace-expansion and nanoid vulns
2026-08-09 12:34:58 +03:00
Dushnilin ea40ce1e93 fix: upgrade postcss 8.5.20 → 8.5.23 (GHSA-6g55-p6wh-862q)
Arbitrary .map file read via untrusted sourceMappingURL when from is
unset. Added npm overrides to force postcss@8.5.23 across all transitive
deps (tsup, vitest→vite).
2026-08-04 09:12:20 +03:00
Dushnilin 7757ceae6a feat: implement WebRTC Leak Protection and Strict DNS DoQ Enforcer 2026-07-30 21:43:56 +03:00
Dushnilin c7ff142a48 Release 1.2.43 - Pre-download and cache all preset rulesets & databases 2026-07-29 08:58:00 +03:00
Dushnilin 197013f043 fix: persistent community subnet storage & reboot fallback for Telegram in section Main 2026-07-27 08:38:55 +03:00
Dushnilin b3e6fcd0c1 fix: load community subnets from /tmp/sing-box/rulesets path & bump v1.2.34 2026-07-26 22:56:16 +03:00
Dushnilin da55799a04 release: v1.2.33 - dynamic community subnets, AmneziaWG action support & flowtable bypass 2026-07-26 22:29:01 +03:00
Dushnilin e98a2c325e fix: community subnets nftables population & Telegram IP ranges
- nft/apply.uc: nft_add_community_subnet_file_for_section now populates
  common_set (tachyon_subnets / tachyon_rule_<Section>_subnets) when section
  is not a priority rule section. Previously, community subnets for normal
  proxy/VPN sections were skipped completely.
- updates.uc: fix typo SUBNETS_TELERAM -> SUBNETS_TELEGRAM in BUILTIN_SUBNET_URLS
- bump version 1.2.31 -> 1.2.32
2026-07-26 21:18:26 +03:00
Dushnilin d8a0d64501 feat: DNS Turbo Cache - persistent FakeIP + startup domain prefetch
- singbox/dns_prefetch.uc: new module, resolves ~70 popular blocked domains
  after startup to warm sing-box FakeIP cache (sleep 10s, then nslookup each)
- lifecycle.uc: DNS_PREFETCH_UC constant + module_background call in start_main
- generator.uc: when dns_turbo_cache=1 use /etc/sing-box/cache.db (persistent)
- settings.js (LuCI): Flag toggle for dns_turbo_cache in DNS settings block
- renderAdvancedSettings.ts: DNS Turbo Cache section with toggle + save
- tachyon.pot / tachyon.po / tachyon.ru.po: translations RU
- constants.uc: bump 1.2.30 -> 1.2.31
- package.json: bump 1.2.30 -> 1.2.31
2026-07-26 20:22:35 +03:00
Dushnilin 96f87d4150 release: bump version to 1.2.30 2026-07-26 18:56:35 +03:00
Dushnilin 3dffe32502 release: v1.2.29 — экспорт статуса ИИ-Автомеханика в Web UI API и повышение стабильности 2026-07-26 12:36:11 +03:00
Dushnilin 02008f3394 feat: поддержка нескольких DNS-серверов в секциях DNS и улучшение текстареа Hosts (v1.2.28) 2026-07-26 08:31:14 +03:00
Dushnilin cdf24c4632 release: 1.2.22 - section rules modal UI, fix telegram worker command_output_from_args, fix watchdog ubus listener 2026-07-24 20:18:51 +03:00
Dushnilin 16b4c39693 chore: bump version to 1.2.20 & optimize ucode scripts 2026-07-21 23:35:25 +03:00
Dushnilin 662df112fd refactor: Полное удаление функционала Tor и очистка локализаций 2026-07-21 21:34:23 +03:00
Dushnilin e0b70d6b99 feat: добавлена поддержка варианта sing-box Leadaxe (lx) 2026-07-20 08:29:56 +03:00
Dushnilin 89632c1db4 chore: fix dependencies vulnerabilities and tests 2026-07-19 22:08:08 +03:00
Dushnilin 0911ffcf75 Release 1.2.11
- Custom DNS hosts support

- AmneziaWG MTU support

- VPN status UI fixes

- Twemoji flags in Monitoring

- Bugreport sensitive data masking

- DNS device filter

- Routing conflicts protection

- Rule-set download errors display

- Universal community lists

- OpenWrt LuCI themes CSS compatibility

- Fix MSS Clamping syntax error

- Remove HTTP proxy mention in copy link

- Sync translations
2026-07-19 19:37:43 +03:00