• 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