Skip to content

feat: добавить списки исключений Smart Detect и импорт Amnezia .conf - #132

Merged
Dushnilin merged 2 commits into
Dushnilin:mainfrom
MaksSt:fix/smart-detect-exclusion-lists
Oct 11, 2026
Merged

Dushnilin merged 2 commits into
Dushnilin:mainfrom
MaksSt:fix/smart-detect-exclusion-lists

Conversation

@MaksSt

@MaksSt MaksSt commented Oct 11, 2026

Copy link
Copy Markdown
Contributor

Описание изменений

Добавляет две функции LuCI: готовые списки исключений Smart Detect и именованные конфиги AmneziaWG из .conf. Изменения разделены на два коммита и перенесены на upstream 1.5.6.

Что изменено

  • Smart Detect: выбор существующих наборов доменов рядом с ручными исключениями. Default и Plus учитывают домен и его поддомены до проверки и перед сохранением результата. Расширение до основного домена сохраняет конкретный hostname, если иначе затронет исключённый поддомен. Ранее добавленные домены и ручные правила остаются действующими.
  • Кэш исключений: startup и штатное обновление списков подготавливают постоянный атомарный снимок доменов из SRS. Watchdog использует его без загрузки и декомпиляции списков в цикле. Неудачное обновление сохраняет предыдущий кэш; если выбранный список ещё недоступен, новые автоматические добавления ожидают его подготовки. Из смешанных наборов используются домены; чистые IP-наборы не предлагаются.
  • Amnezia: отдельный блок между списком ссылок и текстовым полем. «Загрузить .conf» открывает выбор файла, затем редактор имени и содержимого. Записи можно переименовать, изменить и удалить; в списке отображается имя. Общий WG/AWG-парсер сохраняет параметры 2.0/3.0/3.1 и создаёт native endpoint, доступный в selector.
  • Ограничения импорта: sing-box LX и tachyon-core, один Interface и один Peer, UTF-8, до 64 KiB вместе с именем. DNS и командные hooks из файла не применяются. На неподдерживаемом ядре записи сохраняются в UCI, поле скрывается, а генератор запрещает применение. Проверяются ключи, диапазоны и повторные имена. Приватные ключи хранятся в конфигурации роутера.
  • Переводы синхронизированы штатным генератором; добавлены регрессии кэша, обновления, Default/Plus, импорта и UI. Новых зависимостей нет.

Проверки

  • Полный CI итогового коммита f9260b0 в форке, PR #8: Backend Runtime Checks, Frontend Quality Checks и Differential ShellCheck — 3/3 PASS. Полный backend-набор, включая watchdog_supervisor, прошёл на GitHub runner; тесты не ослаблялись.
  • Локальный frontend CI: 917 тестов, lint и сборка.
  • 122 проверки импорта на Linux и OpenWrt; полный генератор, selector и отказ неподдерживаемого ядра.
  • 41 проверка кэша/совпадений и 7 проверок реальных startup/update-функций; связанные Default/Plus и DNS-регрессии.
  • На OpenWrt проверено сохранение исходного пользовательского .conf и всех 21 заданных параметров, tachyon-core 0.0.7 check. Пользователь проверил импорт через LuCI. Агент проверил renderer и взаимодействия в изолированном JSONMap, включая desktop/mobile, скрытие по варианту ядра и выбор файла без видимого native input.
  • Повторный туннель с тем же приватным ключом не запускался; это проверка импорта и конфигурации, не отдельное подтверждение передачи трафика.

@MaksSt
MaksSt requested a review from Dushnilin as a code owner October 11, 2026 12:26
@Dushnilin
Dushnilin merged commit 1b94563 into Dushnilin:main Oct 11, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants