Skip to content

Any Tech ARCHITECT v4.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Sep 19:37
68677eb

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