- Зачем: - нужны фактические результаты ручной приёмки на рабочем профиле. - Что: - подтверждены HTTP CONNECT и SOCKS5h на Ubuntu 26.04 с Xray 26.3.27. - записаны результаты проверки H3 под повторной нагрузкой и после простоя. - сохранён открытым вопрос проверки на других семействах Linux. - Проверка: - 240 последовательных запросов без ошибок, две загрузки по 10 МБ и повторные запросы после 45 секунд простоя. - git diff --cached --check.
9.2 KiB
05 — Доставка пакета и итоговая приёмка
What to build: Поставка proxy-client проверена целиком: корневой обзор
соответствует готовым возможностям, автоматические проверки воспроизводимы, а
ручная приёмка на доступных системах подготовлена для пользователя.
Blocked by: 03 — безопасный жизненный цикл; 04 — проверяемая установка.
Status: ready-for-human
Границы задачи
Тикеты 03/04/06 уже доставили CLI, Bash-модуль, установку и жизненный цикл. Задача 05 их проверяет, но не переписывает. Источники истины:
-
proxy-client/README.md— пользовательские команды, настройка и ограничения; -
исходный дизайн — границы и принятые решения.
-
Корневой
README.mdкратко описывает внешний Hiddify и управляемый Xray, показываетstow proxy-clientи ссылается на полную инструкцию. -
Пакет подключается через stow, ручные ссылки или копирование; общий установщик использует тот же пакет.
-
Инструкция покрывает две семьи VLESS, Xray 26.3.27, отсутствие systemd, автозапуска и автоматического перехода между прокси.
-
Тест
ManagedXrayCliTest.test_exact_boolean_version_alpn_and_extra_branchesподтверждает, что устаревшиеallowInsecure/insecureне попадают в TLS-конфиг, а истинное значение даёт предупреждение.
Секретные данные
- В отслеживаемых файлах, тестовых данных, аргументах, выводе и отчёте нет
настоящих VLESS-ссылок, UUID, ключей,
shortIdиpath. Автоматические тесты используют только вымышленные контрольные значения. Настоящий профиль и сгенерированный JSON остаются в закрытых пользовательских файлах и не копируются в отчёт.
Автоматическая проверка
tests/test_proxy_client_full.shзапускает весь Python-набор под системнымpython3и CPython 3.8 черезuv, затем Bash-тесты и проверку установки.- Тестовый Xray остаётся отдельным исполняемым файлом и получает доступ к
библиотекам исходного Python. Это устраняет ложные падения переносимой сборки
uv, не ослабляя проверки личности процесса. tests/test_install.shсобирает небольшие тестовые деревья только из отслеживаемых Git-файлов и удаляет общий временный каталог при выходе.
Приёмка пользователем
Исполнитель готовит команды и останавливается. Результат отмечает пользователь; недоступная система остаётся неподтверждённой.
- Ubuntu 26.04 с системным Python 3.14: установка, жизненный цикл,
xray run -test, HTTP и SOCKS через один локальный вход Xray 26.3.27. Минимальный CPython 3.8 отдельно покрыт автоматическим прогоном черезuv. - РЕД ОС, Astra Linux или Alt Linux по доступности: тот же сценарий после проверки фактической версии Python.
После приёмки
- Статус исходного дизайна и заявления о поддержке приведены в соответствие только с фактически выполненными прогонами.
Comments
2026-07-21 — автоматическая проверка
bash tests/test_proxy_client_full.sh завершился с кодом 0:
- системный Python 3.14: 79 тестов,
OK, 61,034 с; - Bash-интеграция: 8 проверок,
PASS;shellcheckотсутствует и явно пропущен; - установка:
All install tests passed; в/tmpне осталось каталоговdotfiles-install-test.*; - CPython 3.8 через
uv: 79 тестов,OK, 52,446 с.
2026-07-21 — команды ручной приёмки
В первой панели tmux, после подготовки закрытого default.url и машинного
конфига с type = xray:
python3 --version
cd ~/dotfiles
stow proxy-client
source ~/.config/proxy-client/shell.bash
proxy-client install
proxy-client start
Во второй панели, пока start работает:
proxy-client status
xray run -test -c "${XDG_STATE_HOME:-$HOME/.local/state}/proxy-client/client.json"
curl --proxy http://127.0.0.1:12334 https://api.ipify.org
curl --proxy socks5h://127.0.0.1:12334 https://api.ipify.org
proxy-client stop
Если настроен другой локальный адрес или порт, те же значения подставляются в
обе команды curl. В отчёт записываются только версии, коды возврата и итог
проверки HTTP/SOCKS.
2026-07-21 — переименование и частичная ручная приёмка
Публичный интерфейс переименован в proxy-client, а машинный конфиг и закрытый
профиль объединены в ~/.config/proxy-client/. В ходе разработки текущий HOME
приведён к новой структуре; старые пользовательские пути отсутствуют, права
файлов 600 сохранены. Поддержка прежнего имени в установщик не добавлялась,
поскольку выпуск ещё не состоялся.
Xray 26.3.27 установился и запустился, status подтвердил процесс на
127.0.0.1:12334, а xray run -test завершился сообщением
Configuration OK. HTTP и SOCKS5h через локальный вход не прошли: оба запроса
curl завершились кодом 35 с неожиданным закрытием TLS-соединения во время
рукопожатия. После проверки Xray штатно остановлен. Пункты ручной приёмки пока
не отмечены.
2026-07-21 — успешная приёмка на Ubuntu
Первая строка оказалась нерабочей и в исходном клиенте. После замены на
подтверждённо рабочий профиль XHTTP/TLS с ALPN h3 тот же Xray 26.3.27 прошёл
полный сценарий на Ubuntu 26.04 с системным Python 3.14: встроенная проверка
внешнего IP, status, xray run -test, HTTP CONNECT и SOCKS5h. Оба запроса
curl получили HTTP 200. Содержимое профиля в журнал и Git не попадало.
Диагностическое понижение до Xray 25.12.8 не исправляло старый профиль, поэтому
поддержка второй версии не нужна. Ошибка была связана с прежней строкой или её
удалённой стороной, а не с преобразованием proxy-client.
Короткая проверка стабильности H3 на Xray 26.3.27 также прошла:
- 120 циклов, в каждом новое HTTP CONNECT- и SOCKS5h-соединение: 240 запросов, 0 ошибок;
- две одновременные загрузки по 10 МБ через HTTP и SOCKS завершились полностью;
- после 45 секунд без трафика оба новых запроса получили HTTP 200.
Таким образом, не воспроизвёлся сбой из XTLS/Xray-core#3673, при котором H3 переставал принимать новые соединения уже после первых запросов. Этот короткий прогон не заменяет длительное наблюдение под обычной нагрузкой.