docs(scratch): план упрощения proxy-client
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
205e995f26
commit
fb23b031bc
3 files changed
+210
No files matched your search
@@ -0,0 +1,58 @@
|
||||
# 02. Упростить установщик пакета, shell-тесты и запускалку
|
||||
|
||||
Status: ready-for-agent
|
||||
|
||||
Спецификация: `../spec.md` (читать целиком).
|
||||
|
||||
## Файлы
|
||||
|
||||
- `proxy-client/install.sh`
|
||||
- `proxy-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.sh`
|
||||
- `proxy-client/README.md` — только разделы «Установка» и «Ручное подключение
|
||||
без установщика» (остальное правит задача 01; при конфликте правки
|
||||
перечитай файл и повтори).
|
||||
|
||||
Не трогать: `proxy-client/.local/bin/proxy-client`, Python-тесты, корневой
|
||||
`install.sh` и `tests/test_install.sh` (кроме случая, если они ломаются от
|
||||
твоих правок — тогда минимально поправь и сообщи).
|
||||
|
||||
## Что сделать
|
||||
|
||||
1. Пункт 5 спецификации: `install.sh` ставит три симлинка напрямую (`ln -s`),
|
||||
без Stow и `STOW_IGNORE_PATTERNS`. Повторный запуск — ничего не меняет.
|
||||
Чужие файлы не перезаписывает и перечисляет все конфликты сразу (битая
|
||||
ссылка — тоже конфликт). `~/.local` и `~/.config`, которые сами ссылки,
|
||||
допустимы. Блок в `~/.bashrc` — дописать, если нет маркера;
|
||||
`--no-shell-setup` сохраняется. Машинные `config` и `default.url` никогда
|
||||
не ссылаются из пакета.
|
||||
2. Тесты установщика: свежая установка (три ссылки, права, `bash -ic` после
|
||||
установки находит `proxy-client` и `proxy_on`), повторный запуск ничего не
|
||||
меняет, конфликты (включая битую ссылку) без частичной установки, машинные
|
||||
файлы сохраняются, `--no-shell-setup`, родительские каталоги-ссылки
|
||||
работают. Тесты удалённого поведения — удалить.
|
||||
3. Тесты функций Bash: вместо переопределения внутренней `_proxy_cli` —
|
||||
поддельный исполняемый файл через `PROXY_CLIENT_BIN` (посмотри, как это
|
||||
сделано в `tests/test_chatgpt_proxy_launcher.sh`). Удалить тест голого
|
||||
`declare -F`, тест «владение перенесено» (охрана давнего рефакторинга) и
|
||||
ловушки `curl`. Сохранить: `proxy_on` применяет переменные, неуспешный
|
||||
`env` не меняет окружение, `proxy_off` чистит восемь переменных,
|
||||
`pclaude`/`pcodex` передают аргументы и код выхода, `.bash_custom`
|
||||
подключает модули.
|
||||
4. `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` для изменённых скриптов чистые.
|
||||
- Не коммитить: коммиты делает оркестратор.
|
||||
|
||||
Отчёт: строки до/после, время до/после, принятые самостоятельно решения,
|
||||
что осталось спорным.
|
||||
Reference in new issue
Block a user