Repository navigation
Releases: saymer-alt/link-generators
Release list
v1.11.3 — понятное исключение серверов подписки
В этом небольшом исправлении генератор яснее объясняет, какие серверы из подписки будут исключены. Патч подготовлен по результатам реального использования: пользователь отметил все серверы, кроме Германии, полагая, что галочки их разрешают, и получил противоположный результат.
Главное
- В списке имён постоянно написано: галочка исключает сервер, не разрешает его. Кнопки названы «Исключить все показанные» и «Снять все галочки»; действие поиска сохранено.
- Показаны разные источники исключений: галочки, ручной регулярный фильтр и их пересечение. Снятие галочек не очищает ручной фильтр.
- Появляется предупреждение при исключении всех или не менее 90% известных имён.
- Сводка preview различает количество полученных узлов и количество уникальных имён после фильтрации; больше нет вычитания уникальных имён из числа физических узлов.
- В справке уточнено: отмеченное имя экранируется, но по текущей семантике regex ищется как подстрока. Поэтому совпадение может захватить и более длинное название. Проверка привязанных exact-match исключений выделена в #312.
Проверено
- Browser regression: сценарий исключений, поиск, исключение всех, порог 90%, ручной фильтр и дублирующиеся имена.
- Generator CI: статические, Chromium, Firefox/WebKit, проверка с Mihomo 1.19.31/1.19.32; результаты сверяются для окончательного release commit, а не ранее проверенного PR-коммита.
- Проверка YAML parity: незатронутые конфигурации должны сохранить прежнюю семантику;
web4core.runtime.js, HWID, proxy routing, DNS и TUN не менялись.
Совместимость и границы
- Существующие конфигурации на роутерах не изменяются автоматически, требуется явная пересборка и импорт.
- Фильтрация имён не изменена: это прежде всего исправление интерфейса, диагностических счётчиков и предупреждений.
- Preview может быть частичным из-за формата подписки, CORS и различий с runtime Mihomo. Счётчики основаны на известных именах и не гарантируют фактическую доступность серверов.
- Зелёная проверка YAML не гарантирует работу камер, UDP/P2P и конкретных внешних маршрутов.
- Функции и архитектурные работы 1.12, отдельные HWID per-provider и прямое управление LAN-конфигом в релиз не включены.
PR #313 (main) · PR #311 (stable).
Тег v1.11.3 соответствует протестированному stable ceba3f37.
v1.11.2 — ручной GLOBAL и автоматические группы приоритетов
В версии 1.11.2 исправлена маршрутизация при включённом Tiered Failover в mode: rule.
Главное
Раньше генератор переписывал MATCH,GLOBAL в MATCH,🪜 TIERED-AUTO. В результате переключение GLOBAL в панели Mihomo не влияло на трафик, попавший в это последнее правило, хотя автоматическая Tiered-группа отображалась внутри GLOBAL.
Теперь правило остаётся MATCH,GLOBAL, а 🪜 TIERED-AUTO находится первым участником ручной группы GLOBAL:
proxy-groups:
- name: GLOBAL
type: select
proxies:
- "🪜 TIERED-AUTO"
- REJECT
# остальные уже имевшиеся группы/выходы, если они есть
rules:
- MATCH,GLOBALЭто схематичный фрагмент, не готовый конфиг и не перечень всех автоматически созданных участников.
Пользовательский сценарий
При выборе 🪜 TIERED-AUTO действует автоматическая политика приоритетов (выход из строя → резерв → возвращение). В панели Mihomo можно явно выбрать другой имеющийся участник GLOBAL или REJECT и затем вернуться к Tiered root. Новая версия не добавляет DIRECT в список ручных выходов без твоего решения.
Совместимость
- При выключенном Tiered генератор выдаёт тот же YAML, что и версия 1.11.1 в сравниваемых сценариях.
- С включённым Tiered меняется лишь окончание
MATCH: прежнееMATCH,🪜 TIERED-AUTOзаменяется наMATCH,GLOBAL. Доступность реального прокси на конкретном VPS от этого не гарантируется. - Существующие сохранённые YAML со старым
MATCH,🪜 TIERED-AUTOне мигрируют сами собой: нужно пересобрать конфиг либо проверить и исправить маршрут вручную. ПроверяйтеGLOBAL.proxiesи фактический выбор в контроллере. - DPR
RULE-SET-маршруты, явно направленные в другие группы, продолжают использовать собственные селекторы; изменениеMATCHне превращает GLOBAL в универсальный перехват всех правил.
Проверки
- RED-before → GREEN-after для дефекта #279.
- Браузерные тесты Builder/DPR/Tiered, Project Save/Load, Config Studio, Firefox/WebKit и регрессии изменения DNS/WG.
- Реальные бинарники Mihomo 1.19.31 и 1.19.32 в отдельной синтетической loopback-лаборатории: ручное переключение
GLOBAL, автоматический переход между эшелонами, возврат иREJECT. - Byte parity при Tiered OFF; при Tiered ON допускается исключительно согласованная дельта
MATCH.
Границы доказательства: это контролируемые TCP/HTTP runtime-тесты, не полевое подтверждение UDP, MASQUE H3, DNS-leak-free и клиентского dataplane на реальном VPS/роутере. Серверные конфигурации и работающие устройства не менялись.
PR #295 (main) · PR #296 (stable) · issue #279.
Тег v1.11.2 соответствует протестированному stable 9bec25cb.
v1.11.1 — исправления интерфейса и импорта Mihomo
Патч улучшает контекстные подсказки, объясняет работу URL-подписок и упрощает импорт имён узлов из работающего Mihomo. Парсинг и генерируемые конфигурации сохраняют прежнее поведение.
Главное
- Подсказки, включая динамические WG, остаются внутри viewport; учтён классический scrollbar и поведение Firefox.
- Рядом с основным вводом объяснены proxy-ссылки, подписки и отдельные WG/AWG-файлы; доступен переход к настройке подписок без переключения значения.
- Runtime importer предлагает готовые адреса и свой endpoint; API secret отправляется на нового получателя только после подтверждения.
Добавлено
- Presets
192.168.1.1:9090,192.168.0.1:9090,127.0.0.1:9090и «Свой адрес…» в существующем импортереGET /providers/proxies.
Исправлено
- Обрезание tooltip у Allow LAN/TUN; ограничены реальные ширина и высота, длинный текст прокручивается, позиция обновляется при scroll/resize и после Firefox hover styles (PR #267).
- Уточнено смешивание обычных proxy-ссылок и URL-подписок в обоих режимах: ON сохраняет динамические providers, OFF читает подписку по явному Build и встраивает её текущие узлы (PR #269).
- При смене endpoint отменённый runtime-запрос больше не оставляет статус «Загрузка…» (PR #270).
- Вместо пустого advanced select видно «Выберите system / mixed», включая восстановление старого проекта с gVisor. Выбор остаётся явным, настройки SOCKS-only/TUN/Per-Proxy не разблокируются (PR #272).
Безопасность
- Runtime importer по-прежнему читает только
GET /providers/proxiesпо кнопке; выбор/ввод адреса не запускает запросы или сканирование. - Новый получатель API secret требует подтверждения; адрес и secret остаются в памяти вкладки, не записываются в проект/localStorage и не передаются через fallback worker.
- Успешный «Сбросить проект» очищает и скрытый custom-адрес, и подтверждение получателя secret. Старый адрес не возвращается; повторная отправка нового secret требует нового согласия. Cancel/ошибка Reset сохраняют сессию, успешный Reset отменяет запрос и отклоняет поздний ответ.
- Выбираемый адрес runtime controller не меняет
external-controller, bind/listen, WAN или настройки VPS в генерируемом YAML.
Проверено
-
Production Generator CI — 6/6, runtime provenance, GitHub Pages deployment.
-
Chromium, Firefox, WebKit: geometry/scrollbar/scroll/resize, mouse/keyboard, динамические подсказки, Sub Mode, runtime mocks/secret consent и Project roundtrip.
-
Полный Generator CI: node/browser, Owner Experience Gate, Config Studio/Save/Load/Reset/Reverse, security/privacy/stress, AWL/Tiered/DPR, runtime provenance, реальные Mihomo 1.19.31 и 1.19.32.
-
YAML byte parity со stable v1.11.0: 10/10 неизменённых сценариев. Exact candidate/production SHA, CI и Pages фиксируются в отчёте выпуска #273.
Совместимость и границы
- POST-RELEASE FIELD / NOT RUN: native Firefox zoom 150/200/250/300% на компьютере Владимира ещё не проверялся. Владелец перенёс эту ручную приёмку на публичную версию после выпуска; автоматические headless/viewport тесты её не заменяют.
- Полный RU/EN-переключатель и расширение TUN/MIPS в SOCKS-only оставлены для v1.12 и не входят в патч.
- Статические графы и
mihomo -tне доказывают настоящий маршрут, отсутствие DNS leaks или WG/AWG handshake. Реальные контроллеры, VPS и роутеры не изменялись.
Тег v1.11.1 соответствует протестированному stable a2f3d9fcc3feb82b45320f80e386b18b42ee0eba.
v1.11.0 — Config Studio 2.0 и проекты генератора
Config Studio 2.0 объединяет анализ и безопасное редактирование Mihomo YAML с сохранением проектов Builder и восстановлением поддерживаемых настроек из существующего конфига. Улучшены диагностика маршрутизации, интерфейс и защита от случайной потери данных.
Главное
- Config Studio 2.0: локальный импорт и анализ YAML, редактирование рабочей копии, diff, Undo/Reset и экспорт.
- Проекты Builder и Reverse Build: сохранение и восстановление
.lgproject.json, предварительное сравнение, подтверждение изменений и честная диагностика EXACT/DERIVED/MISSING/UNSUPPORTED/CONFLICT. - Интерфейс UX-01–54: улучшены формы, управление графом, работа с YAML, клавиатура и адаптация для узких экранов.
Добавлено
- DNS ↔ Routing Intelligence: статические проверки resolver policies,
respect-rules,proxy-server-nameserver, first-match/PASS и режимов DIRECT/GLOBAL с пометками неопределённых зависимостей. - Visual Routing Graph: взаимосвязи правил, групп, провайдеров и DNS, поиск и фокус; это статическая модель, а не измеренный сетевой маршрут.
- Редактор HTTP(S)
proxy-providerв Studio с настройкой interval, path, download target и health-check; создание не загружает подписку автоматически и не подключает её к группам без явного указанияuse:.
Изменено
- Для новых общих WG/AWG dialer-групп стандартное имя —
SHARED-DIALER; явныеWARP-DIALERи существующие имена/цели не переименовываются автоматически. - Формат проекта остаётся
schemaVersion: 1; предусмотрено восстановление совместимых старых тестовых проектов. - Physical Topology остаётся исследовательской функцией за выключенным внутренним gate и не включена в публичный GUI.
Исправлено
- Все кнопки Builder → Config Studio передают актуальный VALID YAML в Studio, а не открывают пустую вкладку; старый документ защищён подтверждением замены (PR #247).
- Copy/Download/Studio блокируются для отсутствующего или устаревшего результата Build; устранены гонки фонового импорта и восстановления.
- Исправлены сохранение WG/AWG targets, TUN/DNS OFF, переименование provider targets, отмена/reset, длинные поля и отображение элементов на узких экранах.
- Сохранены проверки AWL, Tiered Failover, DPR и защита от некорректных комбинаций.
Безопасность
- Ограничены сложность и размер импортируемых YAML/JSON, опасные структуры отклоняются.
- Секреты и tokenized subscription URLs маскируются в диагностике/trace/diff; исходные конфигурации и экспортируемые проекты сохраняют рабочие секреты — не публикуйте их.
- Редактирование конфигурации локальное; отдельные явно запрошенные сетевые операции документированы в DATAFLOW.
Проверено
- Generator CI — финальный stable, все 6 заданий PASS: Node/browser, Chromium, Firefox, WebKit, проверки Mihomo 1.19.31 и 1.19.32.
- GitHub Pages — production deployment SUCCESS.
- Владелец подтвердил открытие публичной страницы; локально проверил видимую верхнюю часть Builder при native browser zoom 150%, 200%, 250% и 300%. Полный интерфейс при этих масштабах не проверялся.
- Проверены Studio, Project Save/Restore, Reverse, AWL/Tiered/DPR, security/stress, YAML parity в неизменённых сценариях.
mihomo -tи loopback tests не подтверждают WAN/UDP/handshake.
Совместимость и границы
- Минимальная поддерживаемая Mihomo — 1.19.31, проверенная рекомендуемая — 1.19.32.
- Не все поля произвольного YAML и исходные URL подписок можно восстановить через Reverse; сохраняйте оригинальные YAML, WG/AWG-профили и проект.
- Статический граф не доказывает настоящий маршрут трафика, отсутствие DNS leaks или фактический WG/AWG handshake; production Keenetic/VPS не изменялись в рамках выпуска.
Тег v1.11.0 соответствует протестированному stable 3ecfabfb2362d341587d6db4968b494f5bd3d3a6.
v1.10.0 — Routing + Subscription + Runtime + AWG Intelligence
v1.10.0 завершает тему Routing + Subscription + Runtime + AWG Intelligence: строгие эшелоны выходов, authoritative импорт узлов из работающего Mihomo, стабильная identity устройства для панелей подписки и определение поколений WG/AWG с честными бейджами.
Главное
- Tiered Failover (#148): «🪜 Приоритетные эшелоны выходов» (по умолчанию ВЫКЛЮЧЕНО) — строгий приоритет: трафик идёт через первый эшелон, где есть живой выход; следующий используется, только когда весь предыдущий недоступен. Runtime-семантика доказана на реальном Mihomo 1.19.31/1.19.32 детерминированным харнессом.
- Mihomo Runtime Node Import (#159): спросить сам работающий Mihomo, какие provider-узлы он фактически загрузил (GET /providers/proxies; прямой запрос браузером, paste/upload JSON как fallback; read-only, без API-мутаций, секрет только в памяти вкладки). Runtime-only узлы попадают в обычный exact Exclude Filter.
- Стабильная device identity (#156/#163): один логический роутер = один стабильный HWID для preview и всех провайдеров конфига; пересборки/reload не ротируют идентичность; управление — явное (переименование, «🎲 Сменить ID», удаление лишних; последнюю удалить нельзя).
- WG/AWG generation intelligence (#157): карточки профилей показывают поколение (WG / AWG 1.x / 1.5–2.x / 3.x / 3.1 / AWG ?) с честной уверенностью; матрица маркеров на источниках (amneziawg-go uapi.go, документация AmneziaWG, реестр совместимости); без ложных точных версий; diagnostics-only.
Добавлено
- Honest preview (#158): preview больше не выглядит authoritative там, где парсер знает о неполноте — «⚠ Preview неполный: N элемент(ов)…» при отброшенных схемах; Clash/Mihomo YAML называется прямо вместо generic network-error; reconciliation Preview ∩ / только preview / только runtime.
- Subscription preview hardening (#152): залипание «Загрузка…» устранено (явная state-машина IDLE/LOADING/STALE/SUCCESS/PARTIAL/FAILED), UNKNOWN ≠ 0 («количество узлов: неизвестно»), живые сводки union без double-count, ограниченный бюджет preview-операции, честная диагностика fallback-этапа («Direct: …; Fallback: …»), Device Model выше Exclude Filter.
- Tiered UX + race fix (#165): компактные карточки (↑/↓/🗑/+), disabled стрелки на краях, единый «+ Добавить эшелон»; незафиксированный выбор участника больше не теряется при перерисовке.
- Resizable node list (#166): оба списка узлов вертикально изменяемые; чисто визуальное состояние.
- Config Dependency Graph и Domain Coverage видят эшелоны; Domain Coverage — первый consumer графа.
Исправлено
- IPv6-only WG-профили отклоняются с понятной диагностикой вместо полурабочего маршрута (v1.8-контракт, подтверждён в field-test).
- Owner LAN-пример в Runtime Import заменён на нейтральный synthetic (приватность).
Совместимость и границы
- Mihomo: минимум 1.19.31, рекомендуемый/протестированный 1.19.32. AWG v3-семантика (HP/trailers/таймеры) требует ≥ 1.19.30 — на старых ядрах 3.1-поля молча игнорируются.
- Tiered Failover: health-пробы HTTP only; UDP не заявляется.
- Runtime Import: браузер должен суметь достучаться до контроллера (listen-адрес/CORS/разрешение локальной сети/secret); при отказе — paste/upload JSON. Запросы к контроллеру никогда не идут через проектный воркер.
- Дедуп-семантика панелей подписки (HWID vs User-Agent) — UNKNOWN: генератор больше не создаёт расщепления идентичностей со своей стороны, поведение конкретных панелей не верифицировалось.
- Причина расхождения preview/runtime для отдельных узлов (кейс AEZA) — не объявляется доказанной; Runtime Import является authoritative источником фактических имён независимо от причины.
Проверено
- Generator CI зелёный на release-коммите stable; mihomo -t успешен на 1.19.31 и 1.19.32 (в том числе для представителей всех поколений WG/AWG: WG / AWG 3.1 / AWG 1.5–2.x); tiered runtime lab на реальном Mihomo 1.19.31 — все сценарии PASS; ALL PARITY против v1.9.0 baseline.
- Owner field-test на реальном конфиге (FIELD-OBSERVED): страница с корректным бейджем; бейджи поколений на реальных профилях (AWG 3.x и AWG 1.5–2.x классы); IPv6-only WG корректно отклоняется; subscription preview и Runtime Import работают; AEZA воспроизведена как runtime-only с корректным reconciliation и «только в runtime»-пометкой; пустой эшелон блокирует Build; добавление участника после явного «+» работает; многоэшелонная сборка и trace проходят.
- Известные нефункциональные UX-наблюдения (P2, отложены в v1.11): выбор участника требует явного «+»; один target может состоять в нескольких эшелонах; дефолтное имя «Personal» неочевидно; отклонённый WG-профиль нельзя скрыть индивидуально.
Тег v1.10.0 соответствует протестированному stable 447af22.
v1.9.0 — Configuration Intelligence и WARPSCOUT import
v1.9.0 открывает тему Configuration Intelligence: генератор теперь не только собирает
конфиг, но и объясняет маршрут, покрытие доменов и то, что он изменил в пользовательском
вводе, — плюс полная поддержка импорта WARPSCOUT/MASQUE и явные AWG-настройки стабильности.
Главное
- WARPSCOUT-aware MASQUE import: генератор распознаёт YAML с
type: masque, переносит
точные endpoint/SNI каждого транспорта (H3/QUIC и H2/TCP) и объясняет решение;
несовместимые identity и неизвестные транспорты отвергаются явно. - AWG stability (#137): явные переключатели «🛡 NAT keepalive 25 с» (вкл. по умолчанию)
и «🧪 Тест обрывов: отключить RandomTrailers» — без ручного редактирования .conf. - Routing Intelligence: семантический путь правил в Inspector, честная маркировка
устаревшей диагностики и новый Domain Coverage Checker.
Добавлено
- Импорт WARPSCOUT/MASQUE YAML: сканирование всех прокси, точные endpoint'ы на транспорт,
селектор при неоднозначности, fail-closed на несовместимую identity и неизвестные сети. - Секция «⚙️ Advanced MASQUE»: точный endpoint/SNI, свои списки портов, приоритет
«точный endpoint → порты → встроенная стратегия». - «🛡 Поддерживать AWG-соединение через NAT (keepalive 25 с)» — по умолчанию включено;
существующее целое значение не меняется; диапазон сводится к 25 с явной диагностикой. - «🧪 Тест обрывов: отключить RandomTrailers» — по умолчанию выключено; диагностический
эксперимент с предупреждением. - Domain Coverage Checker: для списка доменов — победившее правило, провайдер,
статический путь до цели (с dialer-цепочками), честные UNKNOWN/UNCOVERED/INVALID. - Upstream compatibility registry (Any-Tech-ARCHITECT → Mihomo) со слежением за
изменениями исходников и уровнями доказанности. - Research-документация: MTU-модель WireGuard/AWG, классы runtime-отвалов, полевые
контракты WARPSCOUT.
Изменено
- Таргет политики «Отдельная группа выбора» → «🎛 Своя SELECT-группа (переключается в Mihomo)».
- Routing order и «Проверить домен» показывают тип группы и фактический состав участников
из итогового конфига вместо двусмысленного «правило → группа с тем же именем». - Диагностика помечает устаревший snapshot после изменения настроек (без скрытой пересборки).
- Шаблон политики «🚀 Proxy (свои домены через прокси)» (симметрия к «⬇️ Direct»).
- Бейдж версии: development-сборки показывают
vX.Y.Z-dev · MAIN.
Исправлено
- Несовместимая пара H3+H2 из разных WARP-аккаунтов больше не может быть импортирована
как гибрид — явный fail-closed отказ. - Ключ, найденный в неподдерживаемом кандидате, больше не «валидирует» поддерживаемый
профиль без собственного ключа. - Стейл-состояние от предыдущего импорта (поля, бейдж) не переживает новый MASQUE-парс.
Безопасность
- Ключи и точные endpoint живут только в памяти страницы: ни localStorage/sessionStorage,
ни URL, ни логи; значения секретов не печатаются в диагностиках (только имена профилей
и полей). - Браузер не обращается к GitHub/upstream за compatibility-данными; реестр — локальный.
Проверено
- Generator CI на production-коммите: Generator CI / runtime provenance / browser / mihomo -t 1.19.31 / mihomo -t 1.19.32 — зелёные (promotion PR #147); production smoke после деплоя Pages — success (run 37498067192).
- Ручной field-test: выполнен владельцем по docs/RELEASE-FIELD-TEST-v1.9.md на кандидате 4576e2d (GO).
Совместимость и границы
- Минимальный Mihomo: 1.19.31; рекомендуемый: 1.19.32.
- MASQUE-контракт IPv6 endpoint не доказан — такие endpoint'ы отвергаются явно.
- Fixed keepalive 25 под диапазон — user-visible compatibility policy, не эквивалент
исходной random-range семантики; отключается переключателем. mihomo -t PASSозначает принятие синтаксиса/схемы, не гарантию runtime-семантики.- Auto-MTU остаётся выключенным (диагностика MTU — без изменения YAML); watchdog/auto-restart
не входят в генератор. - Node/colo/SNI из сканов — наблюдения, а не постоянные свойства endpoint'ов.
Тег v1.9.0 соответствует протестированному stable a1d4c53.
v1.8.0 — WG/AWG hardening и Routing Diagnostics
Большой релиз надёжности генератора: усилена обработка WG/AWG, добавлена офлайн-диагностика маршрутизации и устранены тихие семантические подмены значений.
Главное
- WG/AWG IPv4-only contract: профили эмитятся строго IPv4-only (
ip-version: ipv4— hostname не уходит в AAAA); IPv6-only интерфейс, IPv6 literal endpoint'ы и AllowedIPs-списки, опустевшие после IPv4-фильтрации, отклоняются явно с понятной ошибкой. Снимает отказ Mihomo 1.19.32 «IPv6 requires MTU ≥ 1280» на dual-stack профилях с низким MTU (найдено на реальном WARP-профиле MTU 1200). - MTU chain planner (diagnostics-only): расчётные потолки для цепочек
dialer-proxy(plain WG −75/хоп; ContentPaddingAddition замещает align16; RandomTrailers → честный unknown). Generated YAML не меняется; auto-MTU выключен до live-PoC. - No-silent-drop для AWG-значений: каждое поле импорта получает отчёт статуса; невалидные и непереносимые значения показываются WARN'ом на карточке и не попадают в YAML молча.
- Routing Diagnostics: офлайн-инспектор итогового маршрута домена/IP, Rule Provider Explorer, детекторы дубликатов и перекрытий, человекочитаемый preview — без сети, без сохранений.
- Надёжность цепочек и релиз-инфраструктура: WG/AWG → WG/AWG цели при пустом вводе больше не деградируют; циклы отвергаются; бейдж версии сборки; preview-артефакт main и production Pages smoke.
Добавлено
- Rule Provider Explorer — read-only инвентарь
rule-providersитогового конфига: счётчики, scalar-метаданные, ссылкиRULE-SET → target, честные «UNUSED»/«Referenced but missing»; локальное содержимое — только у inline-провайдеров. - Routing Inspector / Diagnostics в панелях политик по доменам: победившее правило, маршрут, альтернативы, объяснение first-match, строгий детектор перекрытий; DNS/GEOSITE-зависимое честно возвращает UNKNOWN.
- Custom health-check URL (только абсолютные http/https; браузером не проверяется и не сохраняется — проверяет сам Mihomo).
- docs/ROADMAP.md (backlog после v1.8.0), docs/RELEASE-FIELD-TEST.md (checklist приёмки релиза), RELEASE-STANDARD.md (формат GitHub Releases).
- Build main preview (Actions artifact) и Production Pages smoke (badge/Build/console против production).
Изменено
- Терминология MASQUE: «H3 / QUIC» и «H2 / TCP»; имена генерируемых профилей —
WARP-MASQUE-H3-QUICиWARP-MASQUE-H2-TCP-<порт>. - Импорт WARP-вкладки стал source-neutral: «📥 Импорт WARP YAML» (бот, WARPSCOUT или другой совместимый источник); парсер не изменился.
- Default health-check URL переключён на официальный Mihomo-documented
https://www.gstatic.com/generate_204. - AWG duration/range-поля (
RekeyTimeoutи родственные) переносятся строкой — контракт строковых опций Mihomo; булевы — строго из набора1/true/yes/0/false/no.
Исправлено
PersistentKeepalive = 25-35(диапазон) больше не сворачивается молча в 25: raw-факт сохраняется, пользователь видит WARN, поле не эмитится (Mihomo принимает только целое).- Строгий числовой парсинг:
Jc = 123abcбольше не превращается в 123; значения вне uint32 → INVALID и не эмитятся. - Peer/профиль, у которого все AllowedIPs — IPv6 (список пуст после фильтрации), теперь fail-closed reject вместо молчаливого полумёртвого объекта.
- MTU planner: снят double-count align+15 в CPA-ветке (padding-ветки AWG v3 взаимоисключающие).
- WG/AWG → WG/AWG цели dialer при пустом основном вводе больше не исчезают из «Промежуточный выход».
Безопасность
- WG/AWG конфиги — memory-only: приватные ключи не попадают в localStorage/sessionStorage/URL/IndexedDB (закреплено regression-тестами).
- Диагностика не печатает key material (HeaderProtectionKey — только «(present)»).
- VPS-профили: controller bind
127.0.0.1, Allow LAN — router-only, клампы на уровне Build (tamper DOM не влияет). - Custom health-check URL не фетчится браузером и нигде не хранится.
Проверено
- Mihomo 1.19.31 и 1.19.32 (CI compat + реальные core-прогоны failover/AWL/whitelist).
- Полный Generator CI: browser/static/node suites, parity 7/7 (byte-identical), runtime provenance против опубликованного source.
- Owner field-test на RC (GO).
- Production Pages smoke: badge
v1.8.0 · STABLE, synthetic Build VALID, page errors отсутствуют.
Совместимость и границы
- auto-MTU НЕ включён: планировщик — только диагностика; изменение MTU требует mipstack/live PoC (см. docs/ROADMAP.md).
- WARPSCOUT-aware import endpoint'ов и кастомные MASQUE порты отложены в v1.9 (#125).
mihomo -tподтверждает синтаксическую/структурную валидность конфига и не доказывает сетевую достижимость/handshake.- Доступность H3/QUIC и H2/TCP зависит от сети/оператора — проверяйте в своём окружении (docs/WARPSCOUT-*.md).
Тег соответствует протестированному stable 660b6b6.
v1.7.1 — Безопасность VPS-профилей и UX-полировка
v1.7.1 — Безопасность VPS-профилей и UX-полировка
Patch-релиз поверх v1.7.0: безопасность дефолтов deployment-профилей, заметность новых функций и закатанные по field-test находкам UX-шероховатости.
🔒 Безопасность / safety
- Allow LAN — только для профиля «Роутер / обычный TUN». В обоих VPS-профилях переключатель выключен и заблокирован, а сборка независимо от DOM не выдаёт
allow-lan: true/bind-address: "*"— раньше tamper чекбокса мог открыть Mihomo наружу. - Контроллер Mihomo в VPS-профилях слушает только
127.0.0.1:9090(раньше —0.0.0.0:9090без секретного ключа: при открытом на VPS TCP/9090 полный доступ к API был снаружи). Web UI выключен — контроллер не генерируется вовсе. Для удалённого управления — SSH-туннель; в документации разобран пример нескольких VPS (local 9091 → remote 127.0.0.1:9090) и различие «порт на VPS» vs «локальный forwarded-порт».
🧭 UX
- «📋 Показать серверы подписки» — Server List перенесён в блок основных переключателей (рядом с Allow LAN / Mixed Port / Web UI / URL-подписки) и переименован из незаметного «Получить список серверов подписки». Privacy-контракт прежний: по умолчанию выключено — генератор не запрашивает подписку браузером; список и выбор исключений появляются в разделе Exclude Filter.
- 📱 Device Model — подсказка теперь объясняет, что писать: понятное имя устройства, которое панель подписки увидит как
x-device-model; при пустом поле используется служебноеSaymer Link Generators Preview; на стабильный HWID не влияет. - Legacy dialer-блок — «Ручная общая dialer-группа (Legacy)»: понятное назначение, скрыт до загрузки первого WG/AWG, тестовые примеры VPS-DK/EE/SE заменены нейтральными.
- Ссылка на WARP-вкладку в Builder теперь называет её полностью: «⚡ WARP MASQUE Links».
🚦 Политики по доменам: новые шаблоны
«🐙 GitHub / Development», «🪟 Microsoft», «🍎 Apple», «💬 Social Networks» — стартовые списки стабильных доменов, свободно редактируемые после вставки.
📚 Документация и hardening
- Закрыт docs drift: README (режим белых списков — router-only), генератор-гайд (Server List, gateway-профиль), MIHOMO (Server List/Device Model в таблице контролов, legacy dialer помечен), quick-start FAQ.
js-yaml@4.1.0с CDN подключается с SRI-контрольной суммой (integrity+crossorigin).- Новые regression-тесты: профильные контракты Allow LAN/controller bind (включая DOM-tamper), privacy storage, DPR-пресеты; parity-гейты подтверждены byte-identical для unaffected сценариев.
✅ Совместимость
Проверено на Mihomo 1.19.31 и 1.19.32. Конфиги, собранные для роутера без изменения настроек, остаются байт-в-байт прежними; меняются только VPS-дефолты безопасности и прежние «случайные» открытые порты.
Границы релиза: worker и subscription-логика не менялись; тег соответствует протестированному stable.
v1.7.0 — Subscription Server List, Exclude Filter и собственный Worker
v1.7.0 — Subscription Server List, Exclude Filter и собственный Worker
Главное
- Opt-in «Получить список серверов подписки» — toggle (OFF по умолчанию) разрешает браузеру прочитать подписку и показать selectable-список фактических имён узлов с поиском, «Выбрать все»/«Снять все» и счётчиками. Выбранные имена экранируются и OR-объединяются с ручным Exclude Filter — одинаковое исключение в Sub ON и Sub OFF. Toggle OFF = ноль сетевых запросов и ноль расходования device registration.
- Sub OFF inline expansion — подписка читается обязательно, Exclude Filter (manual + selected) применяется к фактическим именам до сборки, оставшиеся узлы встраиваются статическими proxies. Некорректное regexp — fail-closed в обоих режимах.
- Стабильный preview HWID (
link-generators.subscription-preview-hwid.v1) — не random-per-request; device-limited панели не регистрируют новое устройство на каждый Build. - Device Model — пользовательское значение из «📱 Device Model» отправляется как
x-device-model; пусто — fallbackSaymer Link Generators Preview. HWID не зависит от Device Model. - Собственный CORS fallback worker (
sub.saymer-87.workers.dev) — POST JSON контракт с device headers, deploy через GitHub Actions.
Надёжность
- Async Build race fix: stale fetch не перезаписывает output/state/Copy (seq-guard).
- CORS fallback: POST JSON allowlist (x-hwid + x-device-model), legacy GET simple request, redirect manual + scheme revalidation + limit, shared 15s overall deadline, 8 MiB response cap, no-store.
- Production smoke job в deploy workflow (8 synthetic checks).
- Runtime provenance + production Pages verification.
- Mihomo 1.19.31 + 1.19.32 compatibility (CI matrix).
Проверено
- Owner Geodema field-test: PASS (реальные узлы вместо placeholder, HWID стабилен, Device Model доставлен, union filter работает).
- Generator CI: GREEN (все jobs).
- Fork CI (web4core): GREEN (207/207).
- Production Pages acceptance: PASS.
- Synthetic worker smoke: PASS (8/8 checks).
Files changed
12 files, +1406/−73 (web4core: src/main.js, workers/subscription/index.js + wrangler.toml, deploy workflow, тесты; link-generators: index.html, AGENTS.md, CHANGELOG, DATAFLOW, TESTING, tests).
v1.6.1 — WG/AWG upload validation hotfix
v1.6.1 — WG/AWG upload validation hotfix
Hotfix-релиз поверх v1.6.0: исправляет реальный production-кейс — загрузка серверного WireGuard-конфига роняла всю сборку с технической ошибкой wireguard: missing host. Полный список изменений v1.6.0 — в CHANGELOG.md.
Исправлено
- WG/AWG-файлы теперь валидируются отдельно уже при загрузке (
web4core.validateBeanдо публикации профиля) — невалидный файл больше не доходит до Build. - Один невалидный профиль больше не ломает весь batch: валидные профили из смешанного набора сохраняются и могут быть собраны (partial batch success).
- Серверный WG-конфиг без Endpoint в [Peer] распознаётся как неподходящий клиентский outbound с понятным объяснением.
- Ошибки привязаны к имени файла; технические сообщения WireGuard преобразованы в понятные пользовательские причины (с вторичной строкой «Технически: …»).
- Добавлен постоянный список отклонённых файлов под менеджером профилей.
- «🧹 Очистить все» сбрасывает как профили, так и rejected-state.
- File picker принимает только поддерживаемые расширения (
.conf / .wg / .awg).
Проверено
- Реальные WG/AWG владельца: 6/6 PASS (включая AWG 3.1 от Keenetic и WARP-конфиги).
- Реальные mierus-ссылки: 4/4 PASS. Реальные tuic-ссылки: 4/4 PASS.
- Реальная provider-подписка: PASS во всех provider-сценариях.
- Реальная смешанная матрица (subscription + WG, direct + dialer, DPR, AWL, профили): PASS.
mihomo -t: 18/18 successful на реальных данных, 1.19.31 и 1.19.32-compatible.- wg-profiles: 24/24. runtime: 63/63. whitelist 10/10, masque 7/7, policy 33/33 + 14/14, vps-detection 54/54, help-ux 11/11, failover 3/3, AWL PASS.
- YAML parity: 13/13 BYTE-IDENTICAL. Runtime provenance: PASS.
Реальные ключи, endpoints, токены и URL подписок в релиз не включены.