Files
dotfiles/.scratch/proxy-client/issues/05-package-delivery-and-acceptance.md
T
ddadmin 6e431d875e refactor(proxy-client): переименован интерфейс прокси
- Зачем:
  - прежнее имя выпячивало Xray, хотя клиент поддерживает также внешний прокси, а два каталога конфигурации были неочевидны.
- Что:
  - пакет, CLI, конфигурация, состояние, тесты и документация переименованы в proxy-client.
  - машинный конфиг, профиль и два явных примера собраны в одном пользовательском каталоге.
  - свежая установка защищена от сворачивания каталога конфигурации внутрь репозитория.
- Проверка:
  - bash tests/test_proxy_client_full.sh.
  - bash tests/test_install.sh.
  - ручные start, status и xray run -test; незавершённая сетевая приёмка записана в handoff.
2026-07-21 09:31:21 -04:00

7.2 KiB
Raw Blame History

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 штатно остановлен. Пункты ручной приёмки пока не отмечены.