- server/main.go → cmd/vk-turn-server/main.go. Несёт остаточные правки сервера
(drop параметра useBond, убрано поле startup-лога).
- client/internal/{browserprofile,captcha,dnsdial,namegen,vkauth} →
internal/client/* (единая иерархия internal/; параллельное дерево
client/internal/ убрано). Все Go import-пути обновлены.
- .github/workflows/{ci,release}.yml, Dockerfile, README.md — пути сборки
переключены на ./cmd/vk-turn-client и ./cmd/vk-turn-server.
- README: убран устаревший пример "server -vless-bond" (флаг удалён ранее);
добавлены рецепты сборки .so для Android arm64 + Linux arm64/amd64 под
ручную упаковку для мобилок.
- internal/proxy/udp/udp.go, internal/config/config.go: обновлены устаревшие
ссылки client/internal/* в doc-комментариях.
- notes/GLOSSARY.md (новый, ~20 терминов): фиксирует DTLS-как-обфускацию,
wrap=AEAD-не-XOR, четыре значения "client", три значения "stream", пять
ортогональных переключателей "mode", заметки по сборке libvkturn.so, iSH,
хрупкость init globalBondRegistry и удаления флагов.
cmd/vk-turn-client/ намеренно оставлен вне этого коммита; сворачивается вместе
с извлечением ручной captcha в следующем коммите, т.к. переименование и правки
импортов manualcaptcha.* попадают в один файл.
Wire-форматы не тронуты. Поведение не изменено кроме уже закоммиченных
удалений CLI.
Переносит runVLESSMode/maintainVLESSSession/createSmuxSession/pipe и sessionPool
в internal/proxy/vless. Клиентская половина bond (handleBondedTCP, copyTCPToBond,
copyBondToTCP, bondClientLane) остаётся в client/main.go до этапа 5.1 —
инжектится в vless через Deps.BondHandler.
sessionPool/pooledSession экспортированы как SessionPool/PooledSession, чтобы
половина bond работала со счётчиками lane (ID/Sess/Opened/Active/Closed/
ToSession/FromSession).
Также дедуплицирует iSH (linux/386) listener-shim в новый пакет internal/ish;
client/manual_captcha.go и internal/proxy/vless импортируют его через
ish.WrapListener.
client/main.go: 895 → 552 (-343). Wire-формат и CLI не изменены.
Переносит oneDtlsConnection/oneTurnConnection и их retry-циклы из client/main.go
в internal/proxy/udp, за интерфейс AuthHandler, чтобы пакет оставался вне
client/internal/. UDPPacket/packetPool становятся udp.Packet/udp.Pool. Глобал
globalAppCancel убран в пользу Deps.AppCancel. turnParams пока остаётся в
client/main.go, т.к. vless ещё его использует; переедет с этапом 4.2.
client/main.go: 1195 → 895. Wire-формат и CLI не изменены.