- Зачем: - прежнее имя выпячивало Xray, хотя клиент поддерживает также внешний прокси, а два каталога конфигурации были неочевидны. - Что: - пакет, CLI, конфигурация, состояние, тесты и документация переименованы в proxy-client. - машинный конфиг, профиль и два явных примера собраны в одном пользовательском каталоге. - свежая установка защищена от сворачивания каталога конфигурации внутрь репозитория. - Проверка: - bash tests/test_proxy_client_full.sh. - bash tests/test_install.sh. - ручные start, status и xray run -test; незавершённая сетевая приёмка записана в handoff.
7.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 с Python 3.10: установка, жизненный цикл,
xray run -test, HTTP и SOCKS через один локальный вход Xray 26.3.27. - РЕД ОС, 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 штатно остановлен. Пункты ручной приёмки пока
не отмечены.