Files
dotfiles/.scratch/handoffs/20260721-0743-proxy-client-05-ready-for-human.md
T
ddadmin 9c2e134fc1 fix(install): предотвращено сворачивание каталога .local
- Зачем:
  - свежая установка могла превратить ~/.local в ссылку на пакет и записать Xray в репозиторий.
- Что:
  - перед Stow теперь гарантируются настоящие ~/.local/bin и ~/.config/proxy-client без раскрытия посторонних ссылок.
  - добавлены регрессионные проверки свежего HOME и посторонней ссылки ~/.local.
  - README перестроены вокруг установки, выбора режима и ежедневного использования.
- Проверка:
  - bash tests/test_install.sh.
  - bash tests/test_proxy_launchers.sh.
  - bash -n install.sh tests/test_install.sh.
  - git diff --cached --check.
2026-07-21 11:15:27 -04:00

6.5 KiB
Raw Blame History

Handoff: proxy-client переименован, Ubuntu-приёмка пройдена

Обновлён: 2026-07-21 11:13 EDT.

Состояние задачи 05

Автоматическая часть готова. Публичное имя изменено с xray-proxy на proxy-client. Ручная приёмка на Ubuntu 26.04 с системным Python 3.14 пройдена на подтверждённо рабочем профиле XHTTP/TLS с ALPN h3. Статус тикета остаётся ready-for-human, пока не решено, нужна ли проверка на РЕД ОС, Astra Linux или Alt Linux.

Тикет: .scratch/proxy-client/issues/05-package-delivery-and-acceptance.md.

Переименование

  • stow-пакет: proxy-client/;
  • CLI: ~/.local/bin/proxy-client;
  • единый пользовательский каталог: ~/.config/proxy-client/;
  • служебный каталог: ~/.local/state/proxy-client/;
  • машинный конфиг и закрытый профиль теперь лежат рядом как config и default.url;
  • примеры называются config.external и config.xray;
  • имена тестов, спецификации, задач, README и Bash-модуля приведены к proxy-client;
  • Xray, бинарник xray и значение type = xray сохранены как названия конкретного движка.

Поддержка старой раскладки в install.sh намеренно не добавлена: публичное имя изменено до завершения разработки и выпуска. Текущий HOME уже приведён к новой структуре. Свежая установка заранее создаёт настоящий ~/.config/proxy-client, поэтому Stow не может свернуть его в ссылку на репозиторий.

Автоматическая проверка

bash tests/test_proxy_client_full.sh завершился с кодом 0 после переименования:

  • системный Python 3.14: 79 тестов, OK, 61,034 с;
  • Bash-интеграция: 8 проверок, PASS; shellcheck не установлен;
  • установка и миграция: All install tests passed;
  • CPython 3.8 через uv: 79 тестов, OK, 52,446 с.

Дополнительно прошли синтаксическая проверка shell-файлов и git diff --check.

Текущий HOME

Во время разработки текущий HOME приведён к новой структуре:

  • ~/.config/proxy-client — настоящий каталог;
  • config и default.url — обычные файлы с правами 600;
  • профиль содержит одну непустую строку, его содержимое не выводилось;
  • shell.bash, examples и CLI указывают в новый stow-пакет;
  • старые ~/.config/xray-proxy, ~/.config/proxy/config, ~/.local/bin/xray-proxy и ~/.local/state/xray-proxy отсутствуют.

Ручная приёмка

Подтверждено:

  • установлен Xray 26.3.27;
  • proxy-client start успешно проверяет версию, строит JSON и запускает Xray;
  • proxy-client status видит управляемый процесс на 127.0.0.1:12334;
  • xray run -test сообщает Configuration OK;
  • встроенное определение внешнего IP работает;
  • HTTP CONNECT и SOCKS5h через 127.0.0.1:12334 получают HTTP 200;
  • после проверки процесс штатно остановлен командой proxy-client stop.

Первый профиль не работал и в исходном клиенте. Его дополнительная диагностика на Xray 26.3.27 и 25.12.8 не выявила расхождений преобразования; оба клиента получали от удалённой стороны неверный VLESS-ответ. Понижение версии не помогло. После замены строки на рабочую H3-профиль сразу прошёл полный сценарий на 26.3.27. Содержимое профилей в Git не попадало, временные копии удалены.

Короткая проверка стабильности H3 также прошла: 120 циклов дали 240 новых HTTP CONNECT- и SOCKS5h-соединений без ошибок; две одновременные загрузки по 10 МБ завершились полностью; после 45 секунд простоя оба способа снова получили HTTP 200. Известный сбой первых соединений из XTLS/Xray-core#3673 не воспроизвёлся. Это не заменяет длительное наблюдение под обычной нагрузкой.

Документация и установка

Корневой README сокращён до обзора, а proxy-client/README.md перестроен по пути читателя: установка, выбор режима, настройка, ежедневная работа, диагностика и справочник. Установщик заранее создаёт настоящие ~/.local/bin и ~/.config/proxy-client, чтобы Stow не сворачивал изменяемые каталоги в ссылки на репозиторий. Это покрыто свежим HOME и посторонней ссылкой ~/.local.

Следующий шаг

Решить, обязательна ли ручная проверка на доступной системе из семейства РЕД ОС, Astra Linux или Alt Linux. Если нет, привести статус исходного дизайна и заявления о поддержке в соответствие с фактически пройденной Ubuntu-приёмкой.

Git

Переименование зафиксировано коммитом 6e431d8, успешная H3-приёмка — bca90c1. Не включать посторонние неотслеживаемые agents/.agents/.skill-lock.json и scripts/setup-xray-proxy.sh.