Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
4.3 KiB
4.3 KiB
02. Упростить установщик пакета, shell-тесты и запускалку
Status: ready-for-agent
Спецификация: ../spec.md (читать целиком).
Файлы
proxy-client/install.shproxy-client/.config/proxy-client/shell.bash— только если упрощение очевидно; поведениеproxy_on/proxy_off/pclaude/pcodexне меняется.tests/test_proxy_client_install.sh,tests/test_proxy_launchers.sh,tests/test_proxy_client_full.shproxy-client/README.md— только разделы «Установка» и «Ручное подключение без установщика» (остальное правит задача 01; при конфликте правки перечитай файл и повтори).
Не трогать: proxy-client/.local/bin/proxy-client, Python-тесты, корневой
install.sh и tests/test_install.sh (кроме случая, если они ломаются от
твоих правок — тогда минимально поправь и сообщи).
Что сделать
- Пункт 5 спецификации:
install.shставит три симлинка напрямую (ln -s), без Stow иSTOW_IGNORE_PATTERNS. Повторный запуск — ничего не меняет. Чужие файлы не перезаписывает и перечисляет все конфликты сразу (битая ссылка — тоже конфликт).~/.localи~/.config, которые сами ссылки, допустимы. Блок в~/.bashrc— дописать, если нет маркера;--no-shell-setupсохраняется. Машинныеconfigиdefault.urlникогда не ссылаются из пакета. - Тесты установщика: свежая установка (три ссылки, права,
bash -icпосле установки находитproxy-clientиproxy_on), повторный запуск ничего не меняет, конфликты (включая битую ссылку) без частичной установки, машинные файлы сохраняются,--no-shell-setup, родительские каталоги-ссылки работают. Тесты удалённого поведения — удалить. - Тесты функций Bash: вместо переопределения внутренней
_proxy_cli— поддельный исполняемый файл черезPROXY_CLIENT_BIN(посмотри, как это сделано вtests/test_chatgpt_proxy_launcher.sh). Удалить тест гологоdeclare -F, тест «владение перенесено» (охрана давнего рефакторинга) и ловушкиcurl. Сохранить:proxy_onприменяет переменные, неуспешныйenvне меняет окружение,proxy_offчистит восемь переменных,pclaude/pcodexпередают аргументы и код выхода,.bash_customподключает модули. tests/test_proxy_client_full.shзапускает только тесты proxy-client (Python-тесты proxy-client, env_sync, shell-тесты proxy-client). Прогон под Python 3.8 черезuv— еслиuvесть, иначе предупреждение и пропуск. В README (раздел «Установка» или новый короткий раздел в конце — согласуй с задачей 01 через простоту: одна строка команды) — как запускать.
Готово, когда
- Все изменённые shell-тесты зелёные;
tests/test_install.shтоже зелёный. - Тесты не требуют установленного
stow. bash -nи (если есть)shellcheckдля изменённых скриптов чистые.- Не коммитить: коммиты делает оркестратор.
Отчёт: строки до/после, время до/после, принятые самостоятельно решения, что осталось спорным.