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

119 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 05 — Доставка пакета и итоговая приёмка
**What to build:** Поставка `proxy-client` проверена целиком: корневой обзор
соответствует готовым возможностям, автоматические проверки воспроизводимы, а
ручная приёмка на доступных системах подготовлена для пользователя.
**Blocked by:** 03 — безопасный жизненный цикл; 04 — проверяемая установка.
**Status:** ready-for-human
## Границы задачи
Тикеты 03/04/06 уже доставили CLI, Bash-модуль, установку и жизненный цикл.
Задача 05 их проверяет, но не переписывает. Источники истины:
- [`proxy-client/README.md`](../../../proxy-client/README.md) — пользовательские
команды, настройка и ограничения;
- [исходный дизайн](../../../docs/specs/2026-07-15-proxy-client-design.md)
— границы и принятые решения.
- [x] Корневой `README.md` кратко описывает внешний Hiddify и управляемый Xray,
показывает `stow proxy-client` и ссылается на полную инструкцию.
- [x] Пакет подключается через stow, ручные ссылки или копирование; общий
установщик использует тот же пакет.
- [x] Инструкция покрывает две семьи VLESS, Xray 26.3.27, отсутствие systemd,
автозапуска и автоматического перехода между прокси.
- [x] Тест
`ManagedXrayCliTest.test_exact_boolean_version_alpn_and_extra_branches`
подтверждает, что устаревшие `allowInsecure`/`insecure` не попадают в
TLS-конфиг, а истинное значение даёт предупреждение.
## Секретные данные
- [x] В отслеживаемых файлах, тестовых данных, аргументах, выводе и отчёте нет
настоящих VLESS-ссылок, UUID, ключей, `shortId` и `path`. Автоматические тесты
используют только вымышленные контрольные значения. Настоящий профиль и
сгенерированный JSON остаются в закрытых пользовательских файлах и не
копируются в отчёт.
## Автоматическая проверка
- [x] `tests/test_proxy_client_full.sh` запускает весь Python-набор под системным
`python3` и CPython 3.8 через `uv`, затем Bash-тесты и проверку установки.
- [x] Тестовый Xray остаётся отдельным исполняемым файлом и получает доступ к
библиотекам исходного Python. Это устраняет ложные падения переносимой сборки
`uv`, не ослабляя проверки личности процесса.
- [x] `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`:
```bash
python3 --version
cd ~/dotfiles
stow proxy-client
source ~/.config/proxy-client/shell.bash
proxy-client install
proxy-client start
```
Во второй панели, пока `start` работает:
```bash
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 штатно остановлен. Пункты ручной приёмки пока
не отмечены.