Establish sing-box-lx as a thin downstream of SagerNet/sing-box: upstream + exactly two client-side features (XHTTP transport, AmneziaWG 2.0 endpoint), gated behind build tags, kept rebaseable onto upstream tags. - SPECS/CONSTITUTION.md, IMPLEMENTATION_PROMPT.md, README.md - SPECS/001 FORK_BOOTSTRAP, 002 XHTTP_CLIENT_TRANSPORT, 003 AWG2_CLIENT_ENDPOINT, 004 BUILD_CI_RELEASE
2.5 KiB
2.5 KiB
Руководство для AI-агентов — sing-box-lx
sing-box-lx — тонкий downstream апстрима SagerNet/sing-box: upstream плюс ровно две фичи и ничего больше:
- XHTTP — клиентский v2ray-транспорт (совместимость с Xray XHTTP).
- AmneziaWG 2.0 (AWG2) — клиентский endpoint поверх WireGuard.
Главная ценность проекта — согласованность с upstream. Любое изменение оценивается по тому, насколько легко оно переживёт ребейз на следующий тег upstream.
Что читать в первую очередь
| Документ | Назначение |
|---|---|
| SPECS/CONSTITUTION.md | Неизменяемые принципы: приоритеты, build-tag изоляция, минимальный дифф, запреты |
| SPECS/IMPLEMENTATION_PROMPT.md | DoD, git/ребейз-ритуал, команды сборки и тестов, контракт выхода |
| SPECS/README.md | Формат задач NNN-T-S-NAME (Spec Kit), workflow |
Перед реализацией задачи из SPECS/ обязательно прочитай её SPEC.md → PLAN.md → TASKS.md и применяй IMPLEMENTATION_PROMPT.md.
Жёсткие границы (детали — в CONSTITUTION)
- Только две фичи. Любая фича вне XHTTP/AWG2 — вне скоупа, спросить пользователя.
- Go module path остаётся
github.com/sagernet/sing-box(для чистых ребейзов). - Всё новое — за build-tag (
with_xhttp,with_awg) и в новых файлах/пакетах. - Правки upstream-файлов — только помеченными
// lx:блоками, атомарными коммитами. - Никаких merge с upstream — только rebase.
origin/lxвсегда ребейзится на тег. - Имя бинаря —
sing-box(drop-in для лаунчера); идентичность-lx— в версии. - Scope — client-only: outbound/endpoint. Server/inbound отложены.
Язык
Спеки, отчёты и ответы в чате — русский. Код, комментарии, коммиты — английский, в стиле upstream sing-box.