14 Commits
Author SHA1 Message Date
ddadminandClaude Opus 5.5 e36a756bed refactor(proxy-client): шаблоны прокси для агентов копируются вручную
- Зачем: прокси для агента — выбор конкретной машины. Автоматическая
  правка ~/.codex/.env и ~/.claude/settings.json оказалась слишком
  навязчивой.
- Что: шаблоны перенесены в proxy-client/.config/proxy-client/examples/
  (codex.env, claude-settings.json) и попадают на машину вместе с
  остальными примерами. install.sh больше не трогает настройки Codex и
  Claude, его тесты на это удалены. Инструкция по копированию — в README
  proxy-client.
- Проверка: tests/test_install.sh и tests/test_proxy_client_install.sh
  проходят.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:31:35 +02:00
ddadmin a30e2eb939 fix(proxy-client): обновлён Xray и исправлен разбор VLESS
Зачем: профиль XHTTP с x_padding_bytes и пустым host не запускался.

Что: Xray обновлён до 26.10.10; добавлены параметры TLS, REALITY и XHTTP,
значения по умолчанию и преобразование старых названий сессии XHTTP.
Обновлены документация и регрессионные тесты.

Проверка: 59 тестов на Python 3.14 и 3.8, Bash-функции и установщик;
16 тестов разбора после уточнения проверки SHA-256. Настоящий Xray
проверил конфигурацию и выполнил HTTPS-запрос через профиль с HTTP 200.
Пользователь подтвердил работу proxy-client start.
2026-10-12 16:21:16 -04:00
ddadminandClaude Opus 5.5 09f57aa1e7 fix(proxy-client): замечания слепого ревью
- state.json снова хранит адрес и порт: при смене конфига у работающего
  Xray status/env/run отказывают и советуют перезапустить start.
- Ошибки разбора ссылки называют файл профиля.
- Тесты: отказ start при чужой версии Xray, ключи REALITY не попадают
  в вывод, Xray узнаётся после замены файла; машинный конфиг проверяется
  через CLI; тест пути по умолчанию не зависит от доступности Hiddify.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 10:38:35 -04:00
ddadminandClaude Opus 5.5 e709c585fa docs(proxy-client): спецификация под упрощённый код, ссылка из README
Спецификация 603 → 220 строк: без описаний снятых защит и без пересказа
кода и README; остались задача, границы, решения с причинами и риски.
В README раздел «Изменение кода» ведёт к спецификации и тестам.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 09:36:56 -04:00
ddadminandClaude Opus 5.5 a5db265f47 refactor(proxy-client): убрать избыточную защиту из CLI и тестов
- Проверка «тот ли процесс»: /proc/PID/exe для Xray и cmdline для
  супервизора вместо boot_id, времени старта и разбора argv; нет больше
  состояния «не удалось подтвердить, удалите файлы вручную».
- Установка Xray: SHA-256 и атомарная замена остаются; без ограничений
  размера, строгого разбора .dgst и блокировки на время установки.
- Разбор ссылки: extra — обычный json.loads; allowInsecure/insecure
  игнорируются с предупреждением.
- Ошибки о файлах называют полный путь и готовую команду
  (chmod 600 для профиля, rm для битого state.json).
- Тесты: разбор ссылок — табличные без запуска процессов, по одному
  запуску на сценарий управляемого Xray; без подмены внутренних функций.
  Код 1569 → 925 строк, тесты 2479 → 895, прогон 63 → 9 с.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 09:34:57 -04:00
ddadminandClaude Opus 5.5 06ca4ab0c6 refactor(proxy-client): упростить установщик пакета и shell-тесты
- install.sh ставит три прямые ссылки без Stow; чужие файлы не трогает
  и перечисляет все конфликты сразу; ~/.local и ~/.config могут быть
  ссылками; блок в ~/.bashrc дописывается, если нет маркера.
- proxy_on читает вывод proxy-client env без временного файла.
- Тесты Bash-функций работают через поддельный PROXY_CLIENT_BIN.
- test_proxy_client_full.sh запускает только тесты proxy-client,
  прогон под Python 3.8 — если есть uv.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 09:28:07 -04:00
ddadminandClaude Opus 5.5 205e995f26 fix(proxy-client): порт свободен сразу после остановки по Ctrl+C
Проверка порта перед запуском открывала сокет без SO_REUSEADDR и
отказывала, пока на порту доживали закрытые соединения Xray (TIME_WAIT),
хотя сам Xray запустился бы. Живой слушатель флаг на Linux не обходит,
так что занятый порт по-прежнему обнаруживается.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 08:51:34 -04:00
ddadminandClaude Opus 5.5 b492f8f4eb fix(proxy-client): поддержка новых VLESS-ссылок Hiddify
Новые ссылки Hiddify пишут «/» перед параметрами, используют
VLESS-шифрование mlkem768x25519plus и flow=xtls-rprx-vision поверх XHTTP.
Разбор принимает эти ссылки; прежние форматы работают как раньше.
Vision поверх XHTTP разрешён только вместе с шифрованием.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 08:40:36 -04:00
Dmitriy DementievandClaude Opus 5 89cdda99ec docs(proxy): помечено, что no_proxy_extra замещает список по умолчанию
- Зачем:
  - машинный конфиг, собранный копированием примера, молча выкидывает
    из обхода .concept-software.ru и Gitea, а обрыв всплывает как TLS-ошибка.
- Что:
  - в README уточнено, что no_proxy_extra замещает DEFAULT_NO_PROXY_EXTRA
    целиком, а не дополняет его.
  - предупреждение продублировано в обоих примерах конфига, рядом с полем.
  - в TODO.md записано дублирование списка в пяти windows-файлах и
    отсутствие теста синхронности с источником.
- Проверка:
  - bash tests/test_proxy_launchers.sh — 8 проверок пройдено.
  - configparser читает оба примера, значение no_proxy_extra не изменилось.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 17:41:23 +03:00
Dmitry DementievandClaude Opus 5 0b300d2e26 feat(proxy): свой Gitea git.dementev.space добавлен в обход прокси
- Зачем:
  - домашний Gitea стал рабочим репозиторием и трекером вместо
    заблокированного GitHub, а через прокси соединение с ним рвётся на TLS.
- Что:
  - в DEFAULT_NO_PROXY_EXTRA добавлены dementev.space и .dementev.space
    (две формы, так как программы читают список по-разному).
  - тот же домен внесён в копии списка: profile.ps1, запускалки
    claude/codex, .codex/.env и server-env-setup для VS Code.
- Проверка:
  - proxy-client env | grep -i no_proxy — домен виден в обеих переменных.
  - python3 tests/test_proxy_client.py (54 OK), bash tests/test_proxy_launchers.sh (8 PASS).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 22:25:24 +03:00
ddadmin 623ed8f871 fix(proxy-client): согласованы инструкции самостоятельной установки
- Зачем:
  - README смешивал пакетный и корневой установщики и оставлял неполные шаги для отдельных сценариев.
- Что:
  - выстроен цельный путь установки и настройки для standalone и полного dotfiles.
  - дополнена подсказка --no-shell-setup и добавлена регрессионная проверка.
  - закрыты критерии приёмки тикета и указана дата завершения.
- Проверка:
  - bash tests/test_proxy_client_install.sh.
  - bash tests/test_install.sh.
2026-07-21 22:45:28 +03:00
ddadmin f679515a8f feat(proxy-client): добавлен самостоятельный установщик
- Зачем:
  - пакет должен устанавливаться отдельно от dotfiles без ручной раскладки и опасных замен.
- Что:
  - добавлен безопасный установщик со Stow и прямыми симлинками.
  - добавлены идемпотентная настройка Bash и защита машинных файлов.
  - обновлены инструкция и полный набор интеграционных проверок.
- Проверка:
  - env XDG_STATE_HOME=<временный каталог> bash tests/test_proxy_client_full.sh.
2026-07-21 22:22:04 +03:00
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
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