• v4.1.0 68677eb3d1

    VIA_GIT_ACTIONS released this 2026-09-03 22:35:23 +03:00 | 6 commits to main since this release

    Any Tech ARCHITECT 4.1.0

    Патч-релиз, который закрывает всё, что мешало «вставилось без танцев».

    Что исправлено

    MergeKeys — .conf снова в синхроне (4.0 regression)

    Контейнер хранит один конфиг трижды — awg.Jc, last_config JSON и wg-quick текст, причём последний дважды (awg.config и JSON.parse(last_config).config). applyObfPatchToAwg (src/engines/keys/patch.ts:140) трогал только три места, поэтому после refresh в MergeKeys vpn:// и json обновлялись, а .conf оставался старым. Теперь патч за один JSON.parse зеркалит все 4 копии, включая добавление I3-I5 если их не было. Добавлены randomAwgKey 3.0/3.1 (псевдо-случайные, но валидные через genCfg) и 11 регресс-тестов patch-conf-regressionfix(keys): keep .conf in sync….

    XRay — панельный экспорт для 3x-ui

    inboundSettings (src/engines/xray/render.ts:280) писала клиентам только id+flow. 3x-ui v3.6.0 валидирует VlessClientSchema.email: z.string().min(1) (frontend/src/schemas/protocols/inbound/vless.ts) и падает тостом Client #0: email — Invalid input. Ядро email не читает — поле чисто панельное. buildPanelInbound (только панельная ветка, серверный экспорт не тронут) теперь дописывает email как id.slice(0,8) с суффиксом -n при коллизии в batch — уникально в инбаунде, на провод не влияет. panel.test теперь 6 тестов (был 4) — fix(xray): add email to panel export for 3x-ui.

    Опечатка перед пушем: xg.out.needAddress (src/i18n/locales/ru.ts:241) указывала «Донор REALITY», хотя адрес нужен из «Ваш сервер» (xg.zone.server / xg.zone.server.note — «донор ниже к нему отношения не имеет»). Поправлено в обеих локалях, под clients добавлен xg.clients.emailNote — email для панели добавляется автоматически, вручную вводить не нужно (src/views/XrayView.vue:1128) — fix(xray): correct needAddress hint….

    AmneziaWG 3.1 — совместимость с инструментами

    awg-tools принимает только on/off/1/0, Go/UAPI — true|1|on. Писали true, tools падали. src/engines/awg/generator/render.ts:230 теперь пишет 1/0, причём если один из RandomTrailers/DisableCookies вкл. — обе строки с 1/0, если оба выкл. — ничего (требование awg-tools). src/engines/keys/containers.ts:154 добавлены RandomTrailers/DisableCookies в AWG3_LOCAL_FIELDS, иначе makeAwgContainer не отдавал их в inner .conf. fix(awg): write 3.1 toggles as 1/0 pair….

    AmneziaWG 3.1 — тумблер H1-H4

    Широкие H1-H4 (до 100M / H4 150M) в amneziawg-go 3.1 дают всплеск CPU на классификации заголовков и misclassify при HeaderProtection. Добавлен GeneratorInput.useNarrowH? (src/engines/awg/generator/types.ts:116), DrawContext.narrowH (strategy.ts:42), headerZones(..., narrowH) клампит к ~20k/30k, прокидка genCfguseNarrowH только для 3.1. UI — свитч «Уменьшить разброс H1–H4» в AmneziaWgView.vue:1392 внутри 3.1-шаблона и только когда триггер useHeaderProtection вкл., иначе тумблера нет. Подробное описание в src/i18n/locales/*/gen.narrowH.* и help-дроере (local · since 3.1). Выкл. по умолчанию — feat(awg): narrow H1-H4 toggle….

    Прибрано

    Буквальный дубликат extractWgQuick (src/engines/keys/build.ts:33) vs extractConf (src/engines/awg/awgFormat.ts:219) вынесен в src/engines/keys/wgQuick.ts:1 getAwgWgQuickrefactor(keys): deduplicate wg-quick extraction. Остальные renderWgQuick vs renderConfLines — не буквальные (разные входы AWGConfig vs AwgContainerInput), оставлены.

    Тесты и версия

    package.json:3 4.0.0 → 4.1.0, vue-tsc --noEmit и vitest run (xray 11 файлов 140, awg31 8, patch 11, всего 69 файлов 1011+) — зелёные.

    Далее — 4.1.1

    Готовим 4.1.1 с оптимизациями: батч rnd в src/engines/awg/generator/utils.ts (crypto.getRandomValues на каждый вызов), предкомпиляция RegExp в patchWgQuickString, кэш JSON.parse(last_config) в build/validate, hostsFor сортировки и generateBatch до 50 без воркера.

    git tag этого релиза создан с --cleanup=verbatim, чтобы markdown (#, -, ```) не сапресснулся.


    Version 4.1.0
    Channel Release
    Built at 2026-09-03T19:36:28Z
    Dist size 13M (127 files)
    Commit 68677eb

    Changes since v4.0.0-pre.2

    🚀 Features

    • feat(awg): narrow H1-H4 toggle for 3.1 bug workaround (be2c06f)
    • feat: a mirror build for hosting buckets, and a search pass over every page (05eeffc)
    • feat(xray): an inbound in the vocabulary hosting panels validate against (aed4dce)
    • feat(awg): AWG 3.1 and its two switches (31332db)
    • feat(awg): the same parameters, spoken in mihomo's dialect (286e6b5)

    🐛 Bug Fixes

    • fix(xray): correct needAddress hint and clarify email auto-generation (68677eb)
    • fix(xray): add email to panel export for 3x-ui (cecd8ae)
    • fix(awg): write 3.1 toggles as 1/0 pair for tools compatibility (4e6975d)
    • fix(keys): keep .conf in sync when refreshing obfuscation (4.0 regression) (791d328)

    ♻️ Refactoring

    • refactor(keys): deduplicate wg-quick extraction (94c1313)
    • refactor(simulator): the page stops knowing protocols, so any engine can carry one (147ed01)

    📚 Documentation

    • docs: the 4.0 story catches up with what actually shipped (24128d3)

    👷 CI/CD

    • ci(mirror): a manual pipeline to the Yandex bucket, keys through env only (ac95275)

    Quick Start

    Extract the archive and run the bundled server. It has no
    dependencies — nothing needs to be installed:

    ./bin/awg-serve-linux            # Linux
    ./bin/awg-serve-macos            # macOS
    bin\awg-serve-windows.exe       # Windows
    

    It serves on port 8080 and opens a browser.
    Pass a port to change it (awg-serve 3000), or
    --no-open to skip launching the browser.

    If you would rather use a runtime you already have, the
    launchers look for bun, npx or python and offer to install
    bun only if none is found:

    ./scripts/serve.sh               # Linux / macOS
    .\scripts\serve.ps1             # Windows (PowerShell)
    scripts\serve.bat               # Windows (CMD)
    

    Add --check to either launcher to see what it found
    without starting anything.

    The archive also carries scripts/awg-gen.sh, which
    generates AmneziaWG configurations from a terminal with no
    browser and no network, and a README.md describing the
    layout. The XRay side is browser-only for now.

    Checksums

    843a500c88eae7ca09c13dea0da1dac78684aea8647efdec9167c0a53ed5547d  any-tech-architect-v4.1.0.zip
    9dcb1c1c866452e1489e5092f06b766ad3afabd94727ae96911f7e88d1625cfd  any-tech-architect-v4.1.0.tar.gz
    

    🪞 Зеркало / mirror of Vadim-Khristenko/Any-Tech-ARCHITECT · синхронизируется автоматически / synced automatically

    Downloads
  • v4.0.0 24128d3b19

    VIA_GIT_ACTIONS released this 2026-08-23 00:03:32 +03:00 | 12 commits to main since this release

    Signed by vai_prog
    GPG key ID: 2BD468A8EBE4F4EF

    Any Tech ARCHITECT 4.0.0

    Второй пре-релиз заканчивался признанием: «симулятор ещё не догнал новую
    матрицу клиентов». Догнал — и заодно протокол доехал до 3.1, генератор
    научился говорить на диалектах mihomo и хостинг-панелей, а страница
    симуляции перестала знать протоколы, чтобы показывать любой из них.

    Как версия к этому пришла, видно по пре-релизам:

    • v4.0.0-pre — второй движок и новый интерфейс;
    • v4.0.0-pre.2 — матрица клиентов, сверенная с исходниками.

    Симулятор увидел оба движка

    Страница симулятора была написана внутри AmneziaWG и знала только его.
    Теперь словарь симуляции живёт в типах, у движка появился слот simulator,
    и страница читает из него всё: виды пакетов, легенду, заметки и то, что
    означает приватное поле пакета. XRay рисуется тем же кодом, что и
    AmneziaWG, а третий протокол доедет вместе со своим движком.

    Заодно вскрылось, что эстафета конфига была сломана с рефакторинга
    MergeKeys: запись в sessionStorage потерялась, и симулятор с гайдом по
    полям показывали пустоту за полностью рабочим видом. Починено, у XRay
    своя кнопка.

    Экспорт для mihomo

    mihomo / Clash.Meta говорит на собственном YAML-диалекте. Кнопки
    копирования и скачивания YAML видят те, кто выбрал mihomo клиентом;
    блок прокси рендерится по той же таблице возможностей версии, что и
    .conf. Сверено с исходником wireguard.go, а не только с вики: H1–H4 и
    таймеры там строки, так что наши диапазоны проходят без преобразований,
    а version: 3 ставится только для 3.0 — в mihomo это переключатель
    реализации устройства.

    Экспорт для панелей

    Вставка streamSettings в 3x-ui падала с ошибкой ввода. Причина — гонка
    имён: ядро v26 переименовало tcp-транспорт в raw, мы следуем за ядром,
    а схема валидации панели знает только старые имена. Само ядро принимает
    оба написания, поэтому отдельная кнопка «Скачать для панели»
    переименовывает ровно эти два места и больше ничего. Схемы панели
    сверены целиком: xhttp, finalmask и sockopt проходят без изменений.
    Найдено @rlex, который принёс симптом раньше вопроса.

    AWG 3.1

    Две новых ручки протокола: RandomTrailers дописывает случайный хвост
    каждому исходящему пакету, DisableCookies запрещает устройству отвечать
    cookie. Выверено по тегам amneziawg-go v3.1 и master amneziawg-tools —
    документация всё ещё описывает 2.0. Оба ключа — новый словарь:
    устройство 3.0 отвергнет их при чтении конфига, поэтому рендер пишет их
    только там, где версия их читает, а конфиг 3.1 с выключенными флагами
    парсится обратно как 3.0 — на проводе он и есть 3.0. DisableCookies по
    умолчанию выключен осознанно: без cookie ответов ломается keepalive за
    NAT под нагрузкой.

    996 тестов, типизация и сборка чистые.


    Release notes (English)

    The second pre-release ended with an admission: "the simulator has not
    caught up with the new client matrix yet." It has — and the protocol
    reached 3.1, the generator learned the dialects of mihomo and hosting
    panels, and the simulation page stopped knowing protocols so it can show
    any of them.

    How the version got here is visible in the pre-releases:

    • v4.0.0-pre — the second engine and the new interface;
    • v4.0.0-pre.2 — a client matrix checked against sources.

    The simulator saw both engines. The page was written inside
    AmneziaWG and knew only it. The simulation vocabulary now lives in types,
    an engine carries a simulator slot, and the page reads everything from
    there. XRay draws from the same code path, and a third protocol arrives
    with its own engine. Along the way the config hand-off turned out to
    have been broken since the MergeKeys rework: a sessionStorage write was
    lost, and the simulator and the field guide showed empty states behind a
    fully working view. Fixed, and XRay got a button of its own.

    An export for mihomo. Copy/download YAML buttons appear for those
    who picked mihomo as their client; the proxy block renders from the same
    capability table as the .conf. Verified against the wireguard.go source
    rather than the wiki alone: H1–H4 and the timers are strings there, so
    our ranges pass through untouched, and version: 3 is written for 3.0
    alone — in mihomo that field is the device implementation switch.

    An export for panels. Pasting streamSettings into 3x-ui failed with
    an input error. The cause is a naming race: core v26 renamed the tcp
    transport to raw, we follow the core, and the panel's validation schema
    knows only the old names. The core takes both spellings, so a separate
    panel download renames exactly those two places and nothing else. Found
    by @rlex, who brought the symptom before the question.

    AWG 3.1. Two new protocol switches: RandomTrailers appends a random
    tail to every outgoing packet, DisableCookies silences cookie replies.
    Derived from the amneziawg-go v3.1 tags and amneziawg-tools master
    rather than the docs, which still describe 2.0. A 3.1 config with both
    switches off parses back as 3.0 because on the wire it is one.
    DisableCookies defaults off on purpose: without cookie replies,
    keepalive behind NAT breaks under load.

    996 tests, typecheck and build clean.


    Version 4.0.0
    Channel Release
    Built at 2026-08-22T21:05:44Z
    Dist size 13M (127 files)
    Commit 24128d3

    Changes since v4.0.0-pre.2

    🚀 Features

    • feat(xray): an inbound in the vocabulary hosting panels validate against (aed4dce)
    • feat(awg): AWG 3.1 and its two switches (31332db)
    • feat(awg): the same parameters, spoken in mihomo's dialect (286e6b5)

    ♻️ Refactoring

    • refactor(simulator): the page stops knowing protocols, so any engine can carry one (147ed01)

    📚 Documentation

    • docs: the 4.0 story catches up with what actually shipped (24128d3)

    Quick Start

    Extract the archive and run the bundled server. It has no
    dependencies — nothing needs to be installed:

    ./bin/awg-serve-linux            # Linux
    ./bin/awg-serve-macos            # macOS
    bin\awg-serve-windows.exe       # Windows
    

    It serves on port 8080 and opens a browser.
    Pass a port to change it (awg-serve 3000), or
    --no-open to skip launching the browser.

    If you would rather use a runtime you already have, the
    launchers look for bun, npx or python and offer to install
    bun only if none is found:

    ./scripts/serve.sh               # Linux / macOS
    .\scripts\serve.ps1             # Windows (PowerShell)
    scripts\serve.bat               # Windows (CMD)
    

    Add --check to either launcher to see what it found
    without starting anything.

    The archive also carries scripts/awg-gen.sh, which
    generates AmneziaWG configurations from a terminal with no
    browser and no network, and a README.md describing the
    layout. The XRay side is browser-only for now.

    Checksums

    859929d319fda13e338d8b4c4a64cd5f21f78f76450a52c6826900a32ed48ee1  any-tech-architect-v4.0.0.zip
    86f13249257eec8e69c0d1f5ebc5f9a69ccde207d83bd0a0d372e62aacf70ca1  any-tech-architect-v4.0.0.tar.gz
    

    🪞 Зеркало / mirror of Vadim-Khristenko/Any-Tech-ARCHITECT · синхронизируется автоматически / synced automatically

    Downloads
  • v4.0.0-pre.2 0fb8b99bff

    VIA_GIT_ACTIONS released this 2026-08-07 20:13:18 +03:00 | 13 commits to main since this release

    Signed by vai_prog
    GPG key ID: 2BD468A8EBE4F4EF

    Pre-release. Usable, and not what GitHub hands out as
    the latest release. Install it if you want what is being
    built right now rather than the last version that was
    finished everywhere.

    Any Tech ARCHITECT 4.0.0-pre.2

    Второй пре-релиз четвёртой версии. Первый принёс два движка и новый
    интерфейс; этот — то, что нашлось, когда матрицу клиентов начали
    сверять с исходниками, а не с описаниями.

    Клиент и движок оказались разными вещами

    Набор тегов в I1–I5 разбирает не приложение, а туннель внутри него.
    Матрица этого не различала, и результат был такой: четыре записи
    объявляли один и тот же amneziawg-go/v3 v3.0.1 и держали три разных
    ответа про <c>. Правильный ответ — ни у одной, потому что в
    amneziawg-go этого тега нет ни в одной версии. Он есть только в
    amneziawg-linux-kernel-module.

    Обратно работало так же: <rc> и <rd> были запрещены клиентам, у
    которых они есть с самого появления тегов.

    Теперь движок — отдельная сущность, клиент его называет, три флага
    выводятся из него. Записи на одном движке разойтись больше не могут, на
    это есть тест.

    Найдено @bivlked, который принёс не «не работает», а файл и строку.

    Тег больше не пропадает молча

    Вторая половина той же ошибки была неприятнее первой: галка стояла,
    генератор гасил её через &&, конфиг возвращался без тега, и человеку
    об этом не сообщал никто. Теперь галка гаснет для выбранного клиента,
    движок назван, и панель перечисляет, что снято и почему.

    Что ещё нашлось по дороге

    • WireSock не отправляет I1–I5 вовсе. Поля принимает и молча
      выбрасывает, туннель поднимается как ни в чём не бывало, потому что
      эти пакеты и так отбрасываются на той стороне. Теряется ровно
      маскировка. Флаг supportsI1I5 при этом был объявлен и никем не
      читался, так что мы этому клиенту цепочку исправно генерировали.
    • Официальный пакет OpenWrt — один патч к штатному драйверу wireguard,
      и в нём только AWG 1.0. Ни S3/S4, ни I1–I5, ни разбора тегов.
    • <c> был описан как сломанный в старых сборках AWG-go. Он не был
      сломан, его там не было.

    Клиентов стало тринадцать

    Добавились mihomo / Clash.Meta (единственный вне экосистемы Amnezia,
    кто дотягивается до AWG 3.0), OPNsense на FreeBSD-шном amnezia-kmod и
    сам модуль ядра Linux отдельной строкой. Для трёх записей движок по
    исходникам установить не удалось, и они помечены именно так, а не
    приписаны к какому-нибудь наугад.

    Кузня ключей

    MergeKeys разобран на движок и по компоненту на режим. Читает vpn://,
    vless://, .json и .conf, показывает конфиг в трёх видах с
    подсветкой по смыслу значений и в них же даёт править. Плюс правки по
    жалобам: страница больше не уезжает за экран, а нечитаемая вставка
    объясняется словами вместо исключения браузера.

    Порядок в мелочах

    • 181 строка локализации, которую никто не показывал, удалена; проверка
      на такие строки теперь в тестах.
    • Предупреждение сборки про размер чанка больше не срабатывает на базе
      доменов, которая весит 29 кБ по сети и лежит вне критического пути.
    • Два теста аудита сидели ровно на лимите vitest и падали от загрузки
      машины.

    931 тест, типизация и сборка чистые.

    Это пре-релиз: симулятор ещё не догнал новую матрицу клиентов.


    Version 4.0.0
    Channel Pre-release
    Built at 2026-08-07T17:14:30Z
    Dist size 13M (123 files)
    Commit 0fb8b99

    Changes since v4.0.0-pre

    🚀 Features

    • feat(awg): three more engines, three more clients, and a chain nobody sent (36dcbc3)
    • feat(mergekeys): four modes over one result, and a hand-off from both generators (0f62641)
    • feat(keys): build a key from parts, and hand one over in any format it has (e1e236a)
    • feat(keys): vless:// links, key identity, and validation that reads the fields (ccc3b08)
    • feat(faq): sixteen answers about the second engine and about key formats (ebdf466)
    • feat(richtext): fenced blocks, images, and marks that work in a heading (ef2b975)
    • feat(vaiexia): a status report instead of six cards of promises (c9194fc)

    🐛 Bug Fixes

    • fix(awg): the CPS tag set belongs to the engine, not to the client (#9) (24435ea)
    • fix(mergekeys): keep the page inside the viewport (c61854d)
    • fix(keys): say what is wrong with the paste instead of throwing atob at it (7ea7441)
    • fix(kit): a checkbox outside .check was a blank square in both states (77fe9a3)
    • fix(ci): the Xray core check has never actually run on a Linux runner (3e14c95)

    ♻️ Refactoring

    • refactor(mergekeys): one component per mode, and views that can be read and edited (b9822b0)
    • refactor(keys): MergeKeys becomes its own engine, and stops refusing API keys (1873b41)

    📚 Documentation

    • docs(changelog): what landed in 4.0 after the first pre-release (0fb8b99)
    • docs(faq): the engine, and three answers that were wrong about it (4ec5e95)

    🔧 Maintenance

    • chore: raise the chunk warning past the one chunk it kept firing on, and delete 181 dead strings (9b67085)

    Quick Start

    Extract the archive and run the bundled server. It has no
    dependencies — nothing needs to be installed:

    ./bin/awg-serve-linux            # Linux
    ./bin/awg-serve-macos            # macOS
    bin\awg-serve-windows.exe       # Windows
    

    It serves on port 8080 and opens a browser.
    Pass a port to change it (awg-serve 3000), or
    --no-open to skip launching the browser.

    If you would rather use a runtime you already have, the
    launchers look for bun, npx or python and offer to install
    bun only if none is found:

    ./scripts/serve.sh               # Linux / macOS
    .\scripts\serve.ps1             # Windows (PowerShell)
    scripts\serve.bat               # Windows (CMD)
    

    Add --check to either launcher to see what it found
    without starting anything.

    The archive also carries scripts/awg-gen.sh, which
    generates AmneziaWG configurations from a terminal with no
    browser and no network, and a README.md describing the
    layout. The XRay side is browser-only for now.

    Checksums

    ada2db97fb700147dddb56d7fecb5b76ce83e68e38188f1af75f631275951346  any-tech-architect-v4.0.0-pre.2.zip
    0483ece358d4a9b07cf161941dc5a0d78e76f1214938730fd69800bee973c524  any-tech-architect-v4.0.0-pre.2.tar.gz
    

    🪞 Зеркало / mirror of Vadim-Khristenko/Any-Tech-ARCHITECT · синхронизируется автоматически / synced automatically

    Downloads
  • v4.0.0-pre 0aab04286a

    VIA_GIT_ACTIONS released this 2026-08-05 02:12:00 +03:00 | 30 commits to main since this release

    Signed by vai_prog
    GPG key ID: 2BD468A8EBE4F4EF

    Pre-release. Usable, and not what GitHub hands out as
    the latest release. Install it if you want what is being
    built right now rather than the last version that was
    finished everywhere.

    Any Tech ARCHITECT v4.0.0-pre — два движка, один инструмент

    Это пре-релиз. Пользоваться можно уже сейчас: оба генератора работают
    полностью. Часть страниц ещё не прошла ребрендинг и редизайн — поэтому
    «последним релизом» на GitHub эта версия не считается, и полноценная 4.0
    выйдет, когда доедет всё остальное.

    This is a pre-release. It is usable — both generators are complete. Some
    pages have not been through the rebrand and the redesign yet, which is why
    GitHub does not count this as the latest release.

    Что изменилось

    Инструмент перестал быть про один протокол. AmneziaWG Architect стал
    Any Tech ARCHITECT: тот же генератор AmneziaWG на месте, рядом с ним —
    второй движок.

    XRay. REALITY поверх VLESS: снаружи настоящее рукопожатие чужого сайта
    с его же сертификатом, внутри ваш туннель. 74 параметра ядра Xray,
    разложенных по секциям — REALITY, транспорт, FinalMask, VLESS. У каждого
    написано, сгенерирован он за вас, задаётся вами или пока не покрыт.

    База доменов-доноров. Больше 1100 записей с фильтром по регионам. В
    базе факты о сайте, а не выдуманные «статусы»: они устаревают быстрее, чем
    их успевают править.

    Проверка донора. Если dest указывает на один сайт, а serverNames
    называет другой, наблюдатель видит расхождение с одного пассивного взгляда.
    Раньше это не проверялось вообще.

    Ядра вместо предположений. Конфигурации XRay гоняются против настоящих
    ядер в Docker — по ядру на версию. Одно ядро на все не доказывает ничего:
    неизвестные ключи молча игнорируются. Так нашлись три ошибки, которых
    юнит-тесты не видели.

    Бренд-кит и новый интерфейс. Токены и примитивы вынесены в
    assets/kit/, тема одна на светлый и тёмный режим, лендинг и обе страницы
    генераторов переписаны.

    Исправлено по сообщениям сообщества

    Отдельное спасибо @bivlked — три находки, все три чтением исходников:

    • #7 — два правила совпадения размеров из трёх сравнивали не те пары.
      S3 = S2 + 28 — настоящее совпадение — проходило молча, а S3 = S2 + 92,
      которое совпасть не может, выдавало предупреждение на исправном конфиге.
      Ошибка была во всех трёх местах, включая само разведение коллизий в
      генераторе.
    • #8 — текст обещал, что S меньше 12 при защите заголовков «тихо
      ослабит шифр». На деле обе реализации отказываются поднимать интерфейс и
      называют причину. Разница существенная: человека отправляли искать
      проблему мимо строки, которую ему уже показали.
    • #6 — в FAQ появился случай «туннель поднимается, а трафика нет» —
      тот, с которым приходят чаще, и который старый ответ не описывал.

    Установка

    Ничего ставить не нужно: architect.vai-rice.space

    Либо скачайте архив ниже и запустите вложенный сервер — у него нет
    зависимостей.


    Version 4.0.0
    Channel Pre-release
    Built at 2026-08-04T23:13:10Z
    Dist size 13M (124 files)
    Commit 0aab042

    Changes since v3.2.4

    🚀 Features

    • feat(og): a card per engine, and a repo preview that is not a third copy (3b30c92)
    • feat(about): rebuilt, and every number on it counted rather than typed (c0118d0)
    • feat(xray): the last manual parameters, and fields that say what goes in them (17695ba)
    • feat(xray): widths decided by what is on screen, and REALITY's four (34815cc)
    • feat(xray): parameters you can set, and a grid that closes its own gaps (1e66774)
    • feat(xray): sections that show their values, and a rule that stops a burn (bb3dd0e)
    • feat(xray): a sketch with every parameter on it (1445fd2)
    • feat(amneziawg): THE NEW GENERATOR HAS LANDED (b23d460)
    • feat(generator): a sketch of the AmneziaWG page, drawn rather than listed (8e35ada)
    • feat(landing): says what it does, and what it will not (6435d0c)
    • feat(landing): Any Tech ARCHITECT, and room for a second engine (ccc3819)
    • feat(kit): a brand kit, and a page to look at it on (9c24f56)
    • feat(theme): make the light scheme real, and give it a switch (455d42e)
    • feat(theme): one accent, two schemes, six pages (afc0d9c)
    • feat(history): a list worth keeping, not just a list (e36d09c)
    • feat(xray): stop shipping the core's defaults as if they were choices (96e4aad)
    • feat(domains): ask hosts what they speak, instead of assuming (bf4ad03)
    • feat(xray): every transport now gets its own settings block (9d4c46f)
    • feat(xray): the REALITY knobs that were missing, and one more wrong boundary (7bb8edb)
    • feat(xray): the XHTTP knob set, and the version boundary it actually has (f86a499)
    • feat(xray): FinalMask — the core's own obfuscation, generated (9922feb)
    • feat(inspect): one door for "what is wrong with this config" (2c581d8)
    • feat(params): one parameter vocabulary, and XRay's gap becomes a number (b127a2e)
    • feat(clients): a client is not one set of limits forever (0916984)
    • feat(sim): one packet model, two protocols on it (6cabd80)
    • feat(engines): the XRay engine, and a tree where each layer has one job (012d462)
    • feat(shared): a shared base for both engines, and i18n that survives a third locale (2d4a45c)
    • feat(engines): a two-way engine contract, and every AWG parameter described once (58404de)

    🐛 Bug Fixes

    • fix(awg): two of the three size-collision rules were checking the wrong pair (538695a)
    • fix(awg): a collision broken upwards used to break the ceiling too (d1158fc)
    • fix: an export that saved its own filename, and a flow that did not exist (f3f2cdd)
    • fix(xray): the server is not the donor, and sections that are not there (64f7fa4)
    • fix(awg): router mode shipped the same three numbers to everyone (30eea2b)
    • fix(awg): the QUIC Length did not cover what followed it (522a2ae)
    • fix(ui): three CSS variables nothing defined, and 2838 dead lines (47887dc)
    • fix(ui): tooltips were being clipped by two ancestors at once (ac0e3d9)
    • fix(domains): a busy sweep was recording congestion as silence (b35e272)
    • fix(xray): the default REALITY donor was behind Cloudflare (9aabbe0)
    • fix(mimicry): the remaining QUIC packets carry their own structure (8d58bef)
    • fix(mimicry): DTLS and SIP now decode as DTLS and SIP (58be027)
    • fix(mimicry): TLS and DNS now decode as TLS and DNS (6f58186)
    • fix(mimicry): the QUIC Initial now decodes as one (c60cc6b)
    • fix(xray): three version rules the cores disagreed with, and a check that asks them (aa0b9b6)
    • fix: serialise clipboard writes, and stop the AWG 3.0 floor eating the spread (239b121)
    • fix(i18n,shared): two fingerprints that could not work, and a locale that cost 187 errors (1c5293c)

    ♻️ Refactoring

    • refactor(kit): a directory, no prefix, and a shell to stand on (de2c95b)
    • refactor(css): one naming scheme, and one copy of each rule (c4a7b70)
    • refactor(css): 219 lines nothing renders (c71c06b)
    • refactor(ui): the history panel is its own component (55ea1d1)
    • refactor(awg): the version shape was written out three times (4fa011d)
    • refactor(scripts): one tool per question, in TypeScript (f68d660)
    • refactor(awg): draw mimicry hostnames from the database, not a hard-coded map (4a6e469)
    • refactor(xray): break the two monoliths into the blocks they build (c7d8efb)
    • refactor(awg): the generator draws from the parameter set, not from a list (0ef6e43)
    • refactor(awg): findings stop carrying a sentence (3c92275)
    • refactor(awg): one rule set, and findings that can be read in either language (f0df151)
    • refactor(history): one store per engine, not one global key (d45cf7f)
    • refactor(i18n): one descriptor per language instead of four tables (86f94da)
    • refactor(ui): one way to copy, and it tells you when it failed (804e16e)
    • refactor: the engines stop borrowing from utils, and four duplicates collapse (52d9638)

    Performance

    • perf(generator): the host examples were ranked twenty-two times a change (6086f13)
    • perf(domains): stop re-reading 2400 records to answer the same question (703a676)

    🧪 Tests

    • test(engines): hold both engines to the core's own schema, on every version (24d405e)

    📚 Documentation

    • docs: the repository moved, and so did what it is about (0aab042)
    • docs(faq): the tunnel that comes up and carries nothing (d0ef4c5)
    • docs(awg3): S below 12 is refused outright, not quietly weakened (e4f2609)
    • docs(landing): XRay works, so the page stops saying it does not (99a5399)

    👷 CI/CD

    • ci(release): recognise a pre-release, and say so where people read (41608ca)

    📦 Other

    • i18n: every string the interface shows now comes from the catalogue (eb793fb)
    • i18n: the host hints now name hosts that qualify (4d90752)
    • i18n: an engine states the case, the interface says it (dc7abb8)

    Quick Start

    Extract the archive and run the bundled server. It has no
    dependencies — nothing needs to be installed:

    ./bin/awg-serve-linux            # Linux
    ./bin/awg-serve-macos            # macOS
    bin\awg-serve-windows.exe       # Windows
    

    It serves on port 8080 and opens a browser.
    Pass a port to change it (awg-serve 3000), or
    --no-open to skip launching the browser.

    If you would rather use a runtime you already have, the
    launchers look for bun, npx or python and offer to install
    bun only if none is found:

    ./scripts/serve.sh               # Linux / macOS
    .\scripts\serve.ps1             # Windows (PowerShell)
    scripts\serve.bat               # Windows (CMD)
    

    Add --check to either launcher to see what it found
    without starting anything.

    The archive also carries scripts/awg-gen.sh, which
    generates AmneziaWG configurations from a terminal with no
    browser and no network, and a README.md describing the
    layout. The XRay side is browser-only for now.

    Checksums

    2126d1c2798a24d8c03a1e53feed1cf8c954cb18b7e12a832f5b8192afe7b0cd  any-tech-architect-v4.0.0-pre.zip
    1f4aded45e02a87cf79202fe5a5377f7ad5caf74324316d6bc98a360042a635e  any-tech-architect-v4.0.0-pre.tar.gz
    

    🪞 Зеркало / mirror of Vadim-Khristenko/Any-Tech-ARCHITECT · синхронизируется автоматически / synced automatically

    Downloads
  • v3.2.4 6c15b2bed2

    VIA_GIT_ACTIONS released this 2026-07-29 13:14:57 +03:00 | 101 commits to main since this release

    Signed by vai_prog
    GPG key ID: 2BD468A8EBE4F4EF

    AmneziaWG Architect v3.2.4

    Forty-four answers that were technically correct and unreadable.

    The FAQ and the project timeline were solid blocks of prose with no emphasis
    anywhere. A rule and a passing caveat looked identical, and a parameter name
    disappeared into the sentence around it. This release is about the shape of
    that text, not its content — no wording changed anywhere.

    Why not just store HTML

    Answers are used twice: rendered into the page, and emitted into FAQPage
    JSON-LD, where markup is not allowed. Storing HTML breaks the structured
    data; storing flat text was breaking the page.

    So the source carries a small set of marks and nothing else:

    Mark Meaning
    blank line paragraph break
    ## / ### a section, for answers with real parts
    **bold** the claim a reader must not miss
    *italic* an aside or caveat, safe to skip
    `code` anything spelled exactly — parameters, files, commands
    [text](url) a source worth citing

    The page renders these as elements; JSON-LD and the search index get them
    stripped, so searching for HeaderProtectionKey still matches an answer that
    writes it in backticks. No HTML exists anywhere in the pipeline, so there is
    nothing to escape and nothing to inject. Link schemes are checked against an
    allowlist at parse time — a javascript: URL renders as plain text.

    Verification

    Reformatting had one hard rule: not a single word may change. That is not a
    promise, it is a check — the stripped text of all 88 strings was compared
    against the originals and matched exactly.

    Tests hold the invariant from here: balanced marks in every entry, no markup
    reaching the structured data, dangerous link schemes refused, and no answer
    past a screenful left as one unbroken block.

    Sources are linked now

    Where an answer explains protocol behaviour taken from the AmneziaWG
    implementation, it links the file it came from — device/receive.go for how
    a packet is identified, device/send.go for junk and padding — rather than
    asking the reader to take it on trust.

    Release notes

    Tag messages are Markdown from here on, so a release reads as intended
    without being edited by hand afterwards.


    Version 3.2.4
    Built at 2026-07-29T10:16:19Z
    Dist size 9.1M (98 files)
    Commit 6c15b2b

    Changes since v3.2.3

    🚀 Features

    • feat(site): give the FAQ and the changelog a readable shape (6c15b2b)

    Quick Start

    Extract the archive and run the bundled server. It has no
    dependencies — nothing needs to be installed:

    ./bin/awg-serve-linux            # Linux
    ./bin/awg-serve-macos            # macOS
    bin\awg-serve-windows.exe       # Windows
    

    It serves on port 8080 and opens a browser.
    Pass a port to change it (awg-serve 3000), or
    --no-open to skip launching the browser.

    If you would rather use a runtime you already have, the
    launchers look for bun, npx or python and offer to install
    bun only if none is found:

    ./scripts/serve.sh               # Linux / macOS
    .\scripts\serve.ps1             # Windows (PowerShell)
    scripts\serve.bat               # Windows (CMD)
    

    Add --check to either launcher to see what it found
    without starting anything.

    The archive also carries scripts/awg-gen.sh, which
    generates configurations from a terminal with no browser
    and no network, and a README.md describing the layout.

    Checksums

    08672ddb4a9c06d0b2aab1587a08ec123e686c661f68203ac90a4a5a57e21f0c  amneziawg-architect-v3.2.4.zip
    c6c24ab09459bd014ed20dcd532ac85e361f3727f7de40357434b7e73aeb0b5d  amneziawg-architect-v3.2.4.tar.gz
    

    🪞 Зеркало / mirror of Vadim-Khristenko/Any-Tech-ARCHITECT · синхронизируется автоматически / synced automatically

    Downloads
  • v3.2.3 bfd7ae6914

    VIA_GIT_ACTIONS released this 2026-07-29 12:25:38 +03:00 | 102 commits to main since this release

    Signed by vai_prog
    GPG key ID: 2BD468A8EBE4F4EF

    AmneziaWG Architect v3.2.3

    A bug fix that turned into removing the thing that caused it.

    Selecting AWG 3.0 rendered a 1.x parameter panel — S3/S4 missing, H1–H4 as
    single numbers instead of ranges — while the .conf below it was correct. The
    panel decided what a modern version looked like with its own v === "2.0"
    check, and had never been taught about 3.0. Six files carried a variant of
    that check.

    Version capabilities now live in one table

    generator/versions.ts declares ranged headers, S3/S4, the I1–I5 chain and
    the 3.0 block once. The generator, the .conf renderer, the packet
    simulator, the validator, the client field guide, the parameter panel and
    the version tabs all read from it. AmneziaWG 4.0 becomes one entry rather
    than an audit of every file. An unknown version falls back to the newest
    entry, so a config from a future build renders with the richest shape
    instead of a blank panel.

    S3/S4 follow the version

    They used to be generated for every version and merely hidden at render
    time, so the config object carried values no client would see. genCfg takes
    its shape from the same table now, and a test asserts the object and the
    .conf agree.

    History

    The first config, generated on page load, was saved behind nextTick plus a
    20 ms timer and could be dropped. It is written synchronously now. The
    panel also moved above the version-specific options — its toggle sits in
    the version bar, and opening it below the 3.0 block put it a screenful from
    the button. Its empty state was hardcoded Russian and is translated again.

    Changelog and FAQ

    The timeline jumped from 3.2 to 3.2.3 with nothing in between, and the 3.2
    entry was a single paragraph for the largest release the project has had.
    3.2.0 is written out properly, and 3.2.1 and 3.2.2 now exist. Two errors
    went with it: a file header claiming the About page reverses the timeline,
    which it does not, and the unmarked mixing of app version numbers with
    AmneziaWG protocol version numbers.

    The FAQ grew from 33 entries to 43, covering ContentPaddingAddition, that
    Architect generates no private keys, offline use, what the simulator is and
    is not, one parameter set per server rather than per device, vpn:// keys
    and MergeKeys, what obfuscation costs, batch generation, why a one-sided
    parameter change kills a tunnel silently, and where history is stored.

    Readable 3.0 field names

    HeaderProtectionKey rendered as HEADERPROTECTIONKEY — the label was
    uppercased, which erased every word boundary. Multi-word names keep their
    casing now and wrap at word boundaries. The spelling is untouched, because
    the clients use it verbatim.

    Which parameters actually have to match

    Rechecked against the amneziawg-go sources, and the documentation here was
    wrong. The receiver identifies a packet using its own S and H values, so
    S1–S4, H1–H4 and HeaderProtectionKey must be identical on both ends. Junk
    packets, the I1–I5 chain and ContentPaddingAddition are sender-side: the
    first two are never parsed on receipt, and padding is truncated by the
    length in the IP header. The 3.0 timers are per-side.

    Three answers said otherwise, the release archive README said it in both
    languages, and awg-gen.sh wrote it into the header of every config it
    emitted. All corrected, and a new FAQ entry lays out the three classes with
    where each comes from in the receive path.

    Release pipeline

    This text is the first release description this project has actually
    published. The notes were built from commit subjects alone, and every
    annotated tag message ever written for it was discarded. They now open with
    the tag message, read in a way that excludes the PGP signature block.

    Quick Start was also describing an older project: it offered only
    scripts/serve.sh and claimed the launcher installs bun, while the per-OS
    awg-serve binaries that have shipped in the archive since 3.2.2 went
    unmentioned. Rewritten around them.

    327 tests, up from 301.


    Version 3.2.3
    Built at 2026-07-29T09:26:57Z
    Dist size 9.1M (97 files)
    Commit bfd7ae6

    Changes since v3.2.2

    🐛 Bug Fixes

    • fix(docs): correct which AWG parameters actually have to match (6172e49)
    • fix(generator): render 3.0 as 3.0, and put version rules in one table (481ec72)

    📚 Documentation

    • docs(site): fill in the 3.2.x changelog, extend the FAQ, unglue 3.0 field names (7586fe9)

    👷 CI/CD

    • ci: put the tag message in the release, and stop shipping stale instructions (bfd7ae6)

    Quick Start

    Extract the archive and run the bundled server. It has no
    dependencies — nothing needs to be installed:

    ./bin/awg-serve-linux            # Linux
    ./bin/awg-serve-macos            # macOS
    bin\awg-serve-windows.exe       # Windows
    

    It serves on port 8080 and opens a browser.
    Pass a port to change it (awg-serve 3000), or
    --no-open to skip launching the browser.

    If you would rather use a runtime you already have, the
    launchers look for bun, npx or python and offer to install
    bun only if none is found:

    ./scripts/serve.sh               # Linux / macOS
    .\scripts\serve.ps1             # Windows (PowerShell)
    scripts\serve.bat               # Windows (CMD)
    

    Add --check to either launcher to see what it found
    without starting anything.

    The archive also carries scripts/awg-gen.sh, which
    generates configurations from a terminal with no browser
    and no network, and a README.md describing the layout.

    Checksums

    b9bccf4e9647848b1ea467b61318741c0f8f3867f28ff2c07adbb5b4e1c33863  amneziawg-architect-v3.2.3.zip
    8827eecae5f1620aaf4f170c815a0b9ce112e8e494040cc194df5da1fdb78217  amneziawg-architect-v3.2.3.tar.gz
    

    🪞 Зеркало / mirror of Vadim-Khristenko/Any-Tech-ARCHITECT · синхронизируется автоматически / synced automatically

    Downloads
  • v3.2.2 aada83678f

    VIA_GIT_ACTIONS released this 2026-07-29 01:25:18 +03:00 | 106 commits to main since this release

    Signed by vai_prog
    GPG key ID: 2BD468A8EBE4F4EF

    AmneziaWG Architect v3.2.2

    Version 3.2.2
    Built at 2026-07-28T22:26:47Z
    Dist size 9.0M (96 files)
    Commit aada836

    Changes since v3.2.1

    🚀 Features

    • feat(site): link the VIA GIT mirror, and stop promising it for later (aada836)
    • feat: field guide in the FAQ, bundled server binary, archive README (518a507)

    🐛 Bug Fixes

    • fix(scripts): make the serve launchers find dist wherever they ship (26445a6)

    📚 Documentation

    • docs: the new run paths, the server installer, and mirrors that are not GitHub (21f9267)

    Quick Start

    Download the archive, extract, and run:

    # Linux / macOS
    ./scripts/serve.sh
    
    # Windows (PowerShell)
    .\scripts\serve.ps1
    
    # Windows (CMD)
    scripts\serve.bat
    

    The script auto-detects bun/npm/python or installs bun.

    Checksums

    ccb69c799b03d374c801bef801aa36865173acf252d5db6ec7562b216a9803fe  amneziawg-architect-v3.2.2.zip
    b7fc877f80f21139d4aebf247fc0c1fbd513991223ca2574a8afcad418540ea7  amneziawg-architect-v3.2.2.tar.gz
    

    🪞 Зеркало / mirror of Vadim-Khristenko/Any-Tech-ARCHITECT · синхронизируется автоматически / synced automatically

    Downloads
  • v3.2.1 9e4cfb84b6

    VIA_GIT_ACTIONS released this 2026-07-25 19:18:59 +03:00 | 110 commits to main since this release

    Signed by vai_prog
    GPG key ID: 2BD468A8EBE4F4EF

    AmneziaWG Architect v3.2.1

    Version 3.2.1
    Built at 2026-07-25T16:20:23Z
    Dist size 9.0M (96 files)
    Commit 9e4cfb8

    Changes since v3.2.0

    👷 CI/CD

    • ci: fix script injection in the pipeline, harden steps, bump to 3.2.1 (9e4cfb8)

    Quick Start

    Download the archive, extract, and run:

    # Linux / macOS
    ./scripts/serve.sh
    
    # Windows (PowerShell)
    .\scripts\serve.ps1
    
    # Windows (CMD)
    scripts\serve.bat
    

    The script auto-detects bun/npm/python or installs bun.

    Checksums

    8fc7d8c2cd52e71d6a93d026019bdf9597bc56be09e88e0c532db0a2a46d5475  amneziawg-architect-v3.2.1.zip
    fe646230f19813c1c59a57802f2edf9da4fb02fd0b2a1711a3f8056ced80d593  amneziawg-architect-v3.2.1.tar.gz
    

    🪞 Зеркало / mirror of Vadim-Khristenko/Any-Tech-ARCHITECT · синхронизируется автоматически / synced automatically

    Downloads
  • v3.1.0 23c3950053

    VIA_GIT_ACTIONS released this 2026-07-05 15:07:13 +03:00 | 125 commits to main since this release

    AmneziaWG Architect v3.1.0

    Version 3.1.0
    Built at 2026-07-05T12:07:57Z
    Dist size 2.7M (62 files)

    Changes since v3.0.0

    Features

    • feat(about): add privacy manifesto block and update 3.x highlights (9c5ef09)
    • feat(generator): add Batch Generator (65d86c9)
    • feat(simulator): add packet simulator and handshake visualisation (91b55d8)
    • feat(editor): add Config Health Checker (0205ea2)
    • feat(generator): add client compatibility matrix and UI selector (e1fa833)

    Bug Fixes

    • fix(simulator): improve packet visualisation and data flow (b157677)
    • fix(ui): polish export/batch/simulator UX (e6f354b)
    • fix(generator): clamp H ranges to client maxHValue (af94118)
    • fix(generator): export formal Amnezia VpnConfig JSON (7a92e90)
    • fix(generator): enforce S4 ≤ 32 protocol limit (9d0bc9c)

    Refactoring

    • refactor(generator): split monolithic generator.ts into modules (a79204c)

    Tests

    • test: fix vite-config-urls test for bun compatibility (c20feb3)

    Maintenance

    • chore(release): bump version to 3.1.0 (23c3950)
    • chore(release): bump version to 2.4.0 (8c15996) | Wrong version bump sry T_T
    • chore: fix TS errors, update deps, add typecheck script (16ddeeb)

    Other

    • security: replace Math.random() with crypto.getRandomValues() (51a9541)

    Quick Start

    Download the archive, extract, and run:

    # Linux / macOS
    ./scripts/serve.sh
    
    # Windows (PowerShell)
    .\scripts\serve.ps1
    
    # Windows (CMD)
    scripts\serve.bat
    

    The script auto-detects bun/npm/python or installs bun.

    🪞 Зеркало / mirror of Vadim-Khristenko/Any-Tech-ARCHITECT · синхронизируется автоматически / synced automatically

    Downloads
  • v3.0.0 e582850c3b

    VIA_GIT_ACTIONS released this 2026-06-13 22:50:25 +03:00 | 141 commits to main since this release

    AmneziaWG Architect v3.0.0

    Version 2.3.0
    Built at 2026-06-13T19:54:09Z
    Dist size 2.6M (56 files)

    Changes since v2.3.0

    Features

    • feat(mergekeys): rework into Editor & Converter (vpn:// <-> .conf), retire Inspector (e582850)

    Performance

    • perf(web): crush CLS 1.0->0 and gut LCP render-delay (no more font-CDN дрожь) (e9b7f14)

    Quick Start

    Download the archive, extract, and run:

    # Linux / macOS
    ./scripts/serve.sh
    
    # Windows (PowerShell)
    .\scripts\serve.ps1
    
    # Windows (CMD)
    scripts\serve.bat
    

    The script auto-detects bun/npm/python or installs bun.

    🪞 Зеркало / mirror of Vadim-Khristenko/Any-Tech-ARCHITECT · синхронизируется автоматически / synced automatically

    Downloads