Commit Graph

26 Commits

Author SHA1 Message Date
founder 9da61c9482 build: versions.env как единый контракт продукта, платформы и toolchain
Версии были размазаны: PACKAGE_VERSION в build.sh, схема конфигурации в
profile.ts и в hy2xs.env, версии toolchain в deps.sh, Debian 13 в
нескольких местах. Расхождение уже перестало быть теоретическим - пакет
1.0.0 сообщал "HY2XS admin version v0.0.22".

Введён корневой versions.env: версия продукта, линия релиза, схема
конфигурации, целевая платформа, версии и контрольные суммы
Go/Bun/Node/pnpm, политика выбора Hysteria.

Чего в нём нет намеренно:

1. Прикладных зависимостей - у них есть pnpm-lock.yaml, bun.lock,
   go.sum. Второй слой неизбежно разъедется с настоящим графом.
2. Конкретной версии Hysteria - здесь только политика
   HYSTERIA_CHANNEL, результат резолва живёт в hysteria-lock.env.
   Пин версии здесь вернул бы ручное обновление.

Подход - проверка, а не генерация. profile.ts, hy2xs.env и
packageManager в двух package.json остаются обычными файлами, чтобы
bun test, tsc и go test работали из чистого чекаута до сборки. Новый
шаг verify_versions_contract роняет сборку до создания tarball при
расхождении. Контракт оркестратора сверяется не grep'ом по исходникам,
а выводом print-contract.ts: это доказывает, что в бинарь попало то же
значение.

Версия админки перестала быть константой и приезжает через ldflags;
собранный бинарь проверяется запуском hy2xs-admin version.

Контрольные суммы toolchain больше не передаются через окружение. Для
Bun зафиксированы обе суммы: артефакт выбирается по наличию AVX2,
поэтому одной архитектурно недостаточно. Production-сборка снова
запускается одной командой.
2026-08-27 12:15:24 +05:00
founder ddf0ddf71e feat(v1): Gecko-обфускация, latest-stable Hysteria на сборке и forward-compatible admin
Сквозная миграция HY2XS на современную Hysteria (2.12.2) и переход на v1.

Build:
- версия Hysteria резолвится на этапе сборки из HyNetworks/hysteria и
  замораживается в metadata пакета (version + immutable url + sha256);
- compatibility gate: реальный бинарник должен принять канонический конфиг
  HY2XS для gecko и salamander до создания пакета;
- сборка прогоняет тесты оркестратора и админки.

Конфигурационный контракт:
- HY2XS_CONFIG_SCHEMA_VERSION=2, чужая схема отклоняется fail-fast;
- obfs стал настоящим union gecko|salamander, gecko — default;
- obfs-блок рендерится оркестратором целиком, два подтипа одновременно
  структурно невозможны;
- современный baseline: congestion bbr/standard, disableLossCompensation=false,
  disableStatelessReset=false, полный quic-блок.

Исправления:
- share URI для gecko: генератор был завязан на Obfs.Salamander.Password и
  выдавал нерабочую ссылку при любой другой обфускации;
- SNI брался только из ACME-блока и уходил пустым при HY2XS_TLS_MODE=file;
- экспорт конфига выносил trafficStats.secret, access_token и obfs-пароль;
- экспорт терял неизвестные upstream-поля при round-trip через типизированную
  модель;
- renderRuntimeEnv печатал тип обфускации литералом, расходясь с конфигом;
- namedotcom удалён из ACME-реестра (нет в Hysteria с 2.11.0).

Тесты:
- 95 тестов оркестратора: env, рендер, семантика профиля, резолвер, rollover;
- тесты URI и экспорта в Go;
- tools/test/e2e-hysteria.sh с реальным клиентом Hysteria.

UX:
- подсказки и примеры в форме создания пира.

Прочее: CHANGELOG.md, .gitattributes (LF для target-side файлов),
документация на русском.
2026-08-27 08:15:02 +05:00
founder 0205334cd8 tools/build/README: исправлены две битые ссылки
- ссылка на lib/deps.sh резолвилась как tools/build/tools/build/lib/deps.sh
- удалена ссылка на несуществующий fix17.txt рядом с /proc/cpuinfo
2026-08-15 20:27:37 +05:00
founder b903a09fb1 Позиционирование как самостоятельного продукта и переход на AGPL-3.0-only
HY2XS больше не описывается как форк H UI. Из README, docs, сообщений
builder'а и post-install metadata убрана вся fork/H UI терминология.

Лицензия:
- LICENSE: MIT заменён на полный текст AGPL-3.0-only
- README: бейдж и раздел лицензии, подпись Flamy Studio
- orchestrator/package.json, apps/frontend/package.json: license
- package.sh: LICENSE кладётся в install package, license=AGPL-3.0-only
  в metadata
- verify.sh, acceptance.sh: проверки корневой AGPL и metadata

Документация:
- 04-admin-panel-h-ui-fork.md -> 04-admin-panel.md, переписан вокруг
  модели Hysteria2 = external runtime dependency,
  HY2XS admin = native HY2XS component
- docs 01, 02, 03, 08, 09, 11, 12, README: единая терминология HY2XS admin

post-install.env:
- блок HUI_* заменён на HY2XS_ADMIN_*, HUI_FORK_REF -> HY2XS_ADMIN_SOURCE

Внутренний legacy namespace (H_UI_* ключи SQLite, HUI_DATA/HUI_LOG,
API /hui, h_ui_db.sql) намеренно не тронут: он требует отдельной
миграции БД и выносится в отдельный этап.
2026-08-15 03:34:18 +05:00
founder 2e8e88bccc fix34: устранён import-time баг i18n, усилен SSH tunnel policy и doctor warning 2026-05-09 12:34:47 +05:00
founder b2639da71c fix33: безлимитная квота bootstrap-peer и защита от регрессии в acceptance 2026-05-09 11:51:08 +05:00
founder 466a572263 fix: обновить baseline домен и SSH-порт пакета
- default: HY2XS_DOMAIN/HY2XS_PUBLIC_HOST -> fi.api.withen.pro

- default: HY2XS_SSH_PORT -> 2323

- docs: добавлено обязательное указание сменить SSH-порт на target

- acceptance: проверки baseline domain/public_host/ssh
2026-05-09 09:43:15 +05:00
founder 8de1719aa4 fix: продакшен-фиксы install-flow и шаблонов
- исправлен рендер post-install.env: прокинут HYSTERIA_API_SECRET

- добавлен fail-fast при неразрешенных {{...}} в renderTemplate

- HY2XS_FORCE_PASSWORD_CHANGE приведён к production default=false

- docs синхронизированы: sudo bootstrap на deps-стадии

- builder: VERIFY_TOOLCHAIN_CHECKSUMS=true по умолчанию

- acceptance расширен новыми инвариантами
2026-05-09 03:03:46 +05:00
founder 78da898ba5 Полный production-фикс fix30/fix30.1: auth, smoke, bootstrap, preflight, rollback и валидация PATCH 2026-05-09 02:46:48 +05:00
founder e60594e09e Обновить tools/build/README.md 2026-05-08 18:22:21 +00:00
founder 68b55632dc Обновление версии 2026-05-08 18:21:11 +00:00
founder 4b382d6ef9 Довёл fix20: firewall-mode, staged state, diagnostics, readiness и build-gate 2026-05-07 23:38:55 +05:00
founder 0a8f4e0c3d Добавить memory policy для frontend build в builder и задокументировать override 2026-05-06 00:05:03 +05:00
founder 1e03411ce5 Зафиксировать pnpm packageManager для frontend и усилить frozen-lockfile policy 2026-05-05 23:46:51 +05:00
founder 173d899683 Синхронизировать версию Bun builder с lockfile и закрепить policy frozen-lockfile 2026-05-05 23:29:46 +05:00
founder 50f6c70722 Исправить production builder для старых CPU без AVX2 и обновить документацию сборки 2026-05-05 23:14:09 +05:00
founder 9368846405 Полная миграция baseline на Debian 13: build-layer, metadata и документация 2026-05-05 05:39:59 +05:00
founder d393308216 Продакшн-фиксы install/reconfigure: rollback, firewall lifecycle, preflight и runbook 2026-05-01 21:14:24 +05:00
founder a41f14067b fix11: runtime contracts and smoke stability 2026-04-30 21:50:03 +05:00
founder 4a0d9569d1 Продакшн рефактор без легаси 2026-04-30 20:54:38 +05:00
founder c10ab1fafd Production hardening: host-aware install, ownership contracts, firewall safety 2026-04-30 03:26:14 +05:00
founder 0545990968 fix8: усилить rollback reconfigure, идемпотентность firewall и prod-hardening baseline 2026-04-29 02:25:07 +05:00
founder 5455e41fc1 fix7: закрыть P0/P1 блокеры runtime/install и перевести hysteria UI в read-only 2026-04-28 18:36:41 +05:00
founder 7734a76c39 fix(fix4): enforce runtime contract and orchestrator guardrails 2026-04-28 05:54:07 +05:00
founder 2b4a45ad23 Русифицировать README и интерфейс HY2XS admin 2026-04-25 23:51:21 +05:00
founder 84a4e94567 Подготовить HY2XS к production-сборке 2026-04-25 23:18:08 +05:00