From 89cdda99ecc741a39fdb68da0e9500e0d97d93f8 Mon Sep 17 00:00:00 2001 From: Dmitriy Dementiev Date: Wed, 12 Aug 2026 17:41:23 +0300 Subject: [PATCH] =?UTF-8?q?docs(proxy):=20=D0=BF=D0=BE=D0=BC=D0=B5=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE,=20=D1=87=D1=82=D0=BE=20no=5Fproxy=5Fextra?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=89=D0=B0=D0=B5=D1=82=20=D1=81?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=BE=D0=BA=20=D0=BF=D0=BE=20=D1=83=D0=BC?= =?UTF-8?q?=D0=BE=D0=BB=D1=87=D0=B0=D0=BD=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Зачем: - машинный конфиг, собранный копированием примера, молча выкидывает из обхода .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) --- TODO.md | 29 +++++++++++++++++++ .../proxy-client/examples/config.external | 2 ++ .../.config/proxy-client/examples/config.xray | 2 ++ proxy-client/README.md | 5 ++-- 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/TODO.md b/TODO.md index 4640904..a240ca9 100644 --- a/TODO.md +++ b/TODO.md @@ -1 +1,30 @@ # TODO + +## proxy-client: список NO_PROXY дублируется на Windows + +Источник истины — `DEFAULT_NO_PROXY_EXTRA` в +`proxy-client/.local/bin/proxy-client`. На Linux он расходится автоматически: +`shell.bash` в `proxy_on()` вызывает `proxy-client env` и экспортирует то, что +вернули. На Windows автоматики нет — список продублирован литералом в пяти +файлах: + +- `chezmoi/dot_config/powershell/profile.ps1` +- `chezmoi/dot_local/bin/start-claude-proxy.ps1` +- `chezmoi/dot_local/bin/start-codex-proxy.ps1` +- `chezmoi/dot_codex/dot_env` (в двух регистрах) +- `vscode/.vscode-server/server-env-setup` + +Связь держится комментарием «список обязан совпадать», а не проверкой: +`tests/test_proxy_launchers.sh` гоняет механику на подставных значениях +(`proxy.test`, `.example.test`) и синхронность копий с источником не утверждает. +Рассинхрон проходит молча и всплывает как оборванное соединение. + +Что сделать: + +- тест, сравнивающий литералы в пяти файлах с выдачей `proxy-client env` — + закрывает класс целиком, а не отдельный домен; +- решить, должен ли `no_proxy_extra` из машинного конфига **дополнять** + `DEFAULT_NO_PROXY_EXTRA`, а не замещать его (сейчас замещает — + `proxy-client:262`, `environment_values()` клеит только loopback и + `config.no_proxy_extra`). До решения замещение помечено предупреждением в + README и в обоих примерах конфига. diff --git a/proxy-client/.config/proxy-client/examples/config.external b/proxy-client/.config/proxy-client/examples/config.external index 1a077ff..37047de 100644 --- a/proxy-client/.config/proxy-client/examples/config.external +++ b/proxy-client/.config/proxy-client/examples/config.external @@ -3,4 +3,6 @@ type = external name = Hiddify address = hproxy.local port = 12334 +# Внимание: no_proxy_extra ЗАМЕЩАЕТ DEFAULT_NO_PROXY_EXTRA целиком, а не +# дополняет его — перечисляйте здесь все нужные домены, включая рабочие. no_proxy_extra = .example.internal,git.example.internal diff --git a/proxy-client/.config/proxy-client/examples/config.xray b/proxy-client/.config/proxy-client/examples/config.xray index 55e9cc9..c5eb7ac 100644 --- a/proxy-client/.config/proxy-client/examples/config.xray +++ b/proxy-client/.config/proxy-client/examples/config.xray @@ -3,4 +3,6 @@ type = xray name = Local Xray address = 127.0.0.1 port = 12334 +# Внимание: no_proxy_extra ЗАМЕЩАЕТ DEFAULT_NO_PROXY_EXTRA целиком, а не +# дополняет его — перечисляйте здесь все нужные домены, включая рабочие. no_proxy_extra = .example.internal,git.example.internal diff --git a/proxy-client/README.md b/proxy-client/README.md index 1166da2..b5b9a3c 100644 --- a/proxy-client/README.md +++ b/proxy-client/README.md @@ -329,8 +329,9 @@ source ~/.config/proxy-client/shell.bash - `address` — IPv4, IPv6 без квадратных скобок или ASCII DNS-имя без схемы и порта; - `port` — TCP-порт локального входа; -- `no_proxy_extra` — дополнительные IP и домены через запятую, значение может - быть пустым. +- `no_proxy_extra` — IP и домены через запятую, значение может быть пустым. + Список **замещает** встроенный `DEFAULT_NO_PROXY_EXTRA` целиком, а не + дополняет его: домены, нужные постоянно, придётся перечислить здесь заново. Поддержка CIDR в `NO_PROXY` различается между программами, поэтому надёжнее указывать точные IP и домены. Без машинного файла внешний режим дополнительно