• 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