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.
This commit is contained in:
ddadmin committed 2026-07-21 11:15:27 -04:00
1 parent bca90c1d21
commit 9c2e134fc1
5 files changed
+341 -201

No files matched your search

+7 -60
View File
@@ -97,67 +97,14 @@ export ZAI_API_KEY="..." # https://z.ai
### Прокси (`proxy-client`)
Linux/Bash-команды `proxy_on/off`, `pclaude`, `pcodex` и `myip` находятся в
самостоятельном пакете [`proxy-client`](proxy-client/README.md). Он поддерживает
явно выбранный внешний Hiddify или управляемый пользовательский Xray 26.3.27 с
профилями VLESS TCP/RAW + REALITY и XHTTP + TLS. Для отдельного подключения
сначала выполните `mkdir -p ~/.config/proxy-client`, затем
`stow proxy-client`. Команды `proxy-client install/start/stop/status`
работают без systemd, автозапуска и автоматического перехода между прокси. Без
конфига сохраняется внешний Hiddify `hproxy.local:12334`.
Linux/Bash-интерфейс `proxy-client` поддерживает внешний прокси и управляемый
пользовательский Xray. Без машинного конфига используется прежний Hiddify на
`hproxy.local:12334`; автоматического запуска Xray и переключения между режимами
нет.
Имя `hproxy.local` — прежний алиас хоста с внешним прокси. Windows и VS Code
Server продолжают использовать его напрямую.
**Порты:** HTTP/HTTPS — `hproxy.local:12334`, SOCKS5 — `socks5://hproxy.local:12334`.
**WSL NAT mode** (IP шлюза меняется при каждом запуске):
```bash
# Через install.sh (интерактивно, ответить "y" на вопрос про wsl.conf)
./install.sh
# Или вручную:
sudo tee -a /etc/wsl.conf <<'EOF'
[boot]
command = "/path/to/dotfiles/scripts/setup-hproxy.sh"
EOF
```
После изменения `wsl.conf` — `wsl --shutdown`. Обновить без перезапуска: `sudo scripts/setup-hproxy.sh` или `update_hproxy`.
**WSL mirrored mode** (`networkingMode=mirrored`) — имя резолвится из WSL через DNS/hosts хоста. Достаточно записи на стороне Windows:
```
# C:\Windows\System32\drivers\etc\hosts
192.168.1.100 hproxy.local
```
Проверка: `getent hosts hproxy.local` (запись в Linux `/etc/hosts` не обязательна).
**Native Linux** — прокси на localhost, нужна запись в `/etc/hosts`:
```bash
echo '127.0.0.1 hproxy.local' | sudo tee -a /etc/hosts
```
**VS Code Server** — `vscode/.vscode-server/server-env-setup` автоматически подхватывает `hproxy.local` и выставляет все proxy-переменные (HTTP_PROXY, HTTPS_PROXY, ALL_PROXY, NO_PROXY и lowercase-варианты). Если `hproxy.local` не резолвится — прокси не включается, запуск не блокируется.
**Windows pwsh** — `proxy_on` / `proxy_off` / `myip` работают аналогично bash-версиям.
**`pclaude` / `pcodex`** — явный запуск Claude/Codex CLI через прокси (bash и pwsh). Bash-версия делегирует проверку и запуск `proxy-client run`; Windows-версия сохраняет прежний адрес `hproxy.local:12334`. Таймаут — `PROXY_PREFLIGHT_TIMEOUT`, по умолчанию 2 c. Если прокси недоступен, клиент не запускается. Proxy-переменные видны только дочернему процессу и не остаются в сессии. Голые `claude`/`codex` не перекрываются и идут напрямую — для прокси нужен явный `p`-префикс.
**Codex GUI на Windows** — chezmoi создает Start Menu ярлык `Codex Proxy`, который запускает Codex Windows App с proxy-переменными:
```powershell
HTTP_PROXY=http://hproxy.local:12334
HTTPS_PROXY=http://hproxy.local:12334
ALL_PROXY=socks5://hproxy.local:12334
NO_PROXY=hproxy.local,localhost,127.0.0.1,::1,[::1],.concept-software.ru
```
Ярлык вызывает `~/.local/bin/start-codex-proxy.ps1`. Скрипт также добавляет эти переменные в `WSLENV` с флагом `/u`: это штатный мост Windows → WSL, чтобы дочерние WSL-сессии, запущенные из Codex GUI, получили тот же proxy environment.
[Установка, выбор режима, WSL и ежедневное использование](proxy-client/README.md)
описаны рядом с пакетом. Windows PowerShell и ярлык `Codex Proxy` сохраняют
прежнюю интеграцию с `hproxy.local:12334`.
### Git baseline