Any Tech ARCHITECT v4.0.0
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 # WindowsIt 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