18 Commits
Author SHA1 Message Date
Dmitry DementievandClaude Opus 5 80db31aa57 fix(proxy): выровнены списки исключений во всех профилях
- Зачем:
  - копии списка в профилях разошлись: в PowerShell и VS Code не хватало
    ::1 и [::1], из-за чего один и тот же хост то шёл мимо прокси, то нет.
- Что:
  - profile.ps1 и server-env-setup приведены к выдаче proxy-client.
  - добавлен tests/test_proxy_env_sync.py — сверяет каждую копию с эталоном
    DEFAULT_NO_PROXY_EXTRA и списки обхода Windows между собой.
  - в файлах-копиях и README указан эталон и тест, который ловит расхождение.
- Проверка:
  - python3 tests/test_proxy_env_sync.py (2 OK, на подложенном расхождении падает).
  - 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:33:36 +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
Dmitry Dementiev 69507ce96c fix(proxy): исправлены маршрутизация Codex и запуск Claude
- Зачем:
  - Codex app-server обходил прокси, а Claude удерживал окно Windows Terminal.
- Что:
  - добавлен общий ~/.codex/.env и упрощён запуск Codex Desktop.
  - ярлык Claude переведён на скрытый запуск через wscript.exe.
  - документация приведена в соответствие с новой схемой.
- Проверка:
  - соединения ChatGPT.exe и codex.exe направлены через 127.0.0.1:12334.
  - проверены синтаксис PowerShell, состояние chezmoi и ярлык; Claude проверен вручную.
2026-07-25 13:01:26 +03:00
Dmitry Dementiev 0e283daad8 fix(claude): добавлена поддержка пакетного приложения
- Зачем:
  - Claude Proxy не запускался при установке Claude из Microsoft Store.
- Что:
  - сохранён прежний запуск обычного claude.exe.
  - добавлена активация пакетного приложения по AUMID с параметрами прокси.
  - генератор ярлыка получил поддержку значка из пакета Claude.
- Проверка:
  - обе ветки запуска завершились с кодом 0.
  - сетевой процесс Claude подключился к 127.0.0.1:12334.
2026-07-23 22:30:01 +03:00
Dmitry Dementiev 559c1caf75 fix(codex): исправлен запуск через системный идентификатор
- Зачем:
  - обновлённое приложение запрещает прямой запуск ChatGPT.exe из WindowsApps.
- Что:
  - запуск переведён на активацию пакета по AUMID.
  - добавлены параметры Chromium для подключения к hproxy.local.
  - описание ярлыка обновлено в README.
- Проверка:
  - установленный скрипт завершился с кодом 0.
  - сетевой процесс Codex подключился к 127.0.0.1:12334.
2026-07-23 22:19:55 +03:00
Dmitriy Dementiev 5286859533 feat(claude): добавлен запуск Desktop через прокси
- Зачем:
  - нужен отдельный запуск Claude Desktop через hproxy.local без системного прокси.
- Что:
  - добавлен PowerShell-скрипт с переменными прокси и параметрами Electron.
  - добавлено идемпотентное создание ярлыка Claude Proxy через chezmoi.
  - описано правило полного закрытия уже запущенного Claude.
- Проверка:
  - проверены PowerShell-синтаксис, аргументы запуска и WSLENV через подмену Start-Process.
  - двумя прогонами с подменой COM проверена идемпотентность создания ярлыка.
  - выполнены chezmoi managed и git diff --cached --check.
2026-07-23 16:59:45 +03:00
Dmitriy Dementiev 35d4114ba3 feat(wezterm): добавлен Windows-конфиг через chezmoi
- Зачем:
  - нужен живой WezTerm-конфиг, который тиражируется через dotfiles на Windows.
- Что:
  - добавлен репозиторный `wezterm/.wezterm.lua`.
  - добавлен chezmoi-шаблон для symlink `~/.wezterm.lua`.
  - README описывает Windows-настройку WezTerm.
- Проверка:
  - git diff --check -- README.md chezmoi/.chezmoiignore chezmoi/symlink_dot_wezterm.lua.tmpl wezterm/.wezterm.lua.
  - проверено, что `~/.wezterm.lua` является SymbolicLink на `dotfiles\wezterm\.wezterm.lua`.
2026-07-08 18:59:25 +03:00
Dmitriy Dementiev aece3bfcc6 feat(chezmoi): добавлен шаблон env.secrets для Windows
- Зачем:
  - автоматизировано создание ~/.env.secrets при chezmoi apply на Windows.
- Что:
  - добавлен chezmoi/create_dot_env.secrets с заглушками для CONTEXT7_API_KEY и ZAI_API_KEY.
- Проверка:
  - chezmoi apply и проверка наличия ~/.env.secrets
2026-06-15 15:37:37 +03:00
Dmitry Dementiev c6c455412f fix(chezmoi): исправлен путь pwsh в ярлыке Codex Proxy
- Зачем:
  - ярлык ломался после обновления PowerShell из Microsoft Store из-за версионного пути к pwsh.exe.
- Что:
  - добавлено использование стабильного App Execution Alias для pwsh.exe.
  - сохранен fallback на найденную команду pwsh и имя pwsh.exe.
- Проверка:
  - пересоздан ярлык Codex Proxy и проверено, что TargetPath существует.
2026-05-28 18:28:30 +03:00
Dmitry Dementiev d5559867bd feat(proxy): добавлены pclaude/pcodex для явного запуска через прокси
- Зачем:
  - claude/codex должны ходить через hproxy.local, а ручной proxy_on легко забыть; нужны явные команды, которые не стартуют молча при недоступном прокси.
- Что:
  - bash: добавлены _proxy_export/_proxy_reachable/_proxy_run и pclaude/pcodex; proxy_on рефакторен на единый источник правды без смены поведения.
  - powershell: добавлены Get-ProxyEndpoint/Set-ProxyEnv/Test-ProxyReachable/Invoke-WithProxy и pclaude/pcodex; proxy_on рефакторен аналогично.
  - таймаут pre-flight вынесен в PROXY_PREFLIGHT_TIMEOUT (дефолт 2 c).
  - добавлен tests/test_proxy_launchers.sh (fail-fast, изоляция env, проброс кода, аргументы, регресс proxy_on).
- Проверка:
  - bash tests/test_proxy_launchers.sh.
2026-05-19 14:28:41 +03:00
Dmitry Dementiev 42375c2672 feat(codex): добавлен proxy launcher для GUI
- Зачем:
  - нужен удобный запуск Codex GUI с proxy-окружением Windows и WSL.
- Что:
  - добавлен PowerShell launcher, выставляющий proxy-переменные и WSLENV.
  - добавлен chezmoi-скрипт для Start Menu ярлыка Codex Proxy.
  - обновлена документация по использованию Codex GUI через прокси.
- Проверка:
  - git diff --cached --check.
  - запуск launcher и повторный запуск shortcut-скрипта.
2026-05-10 12:12:27 +03:00
ddadminandClaude Opus 4.6 6c183356aa fix(chezmoi): utf8BOM не поддерживается в PS 5.1
- Зачем:
  - chezmoi запускает скрипт через PS 5.1, где допустимы только
    UTF8/Unicode/ASCII и т.д., но не utf8BOM (появился в PS 7).
- Что:
  - заменено -Encoding utf8BOM на -Encoding UTF8 (в PS 5.1 пишет с BOM).
- Проверка:
  - chezmoi -S "$HOME\dotfiles\chezmoi" apply (на Windows с PS 5.1)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 20:13:52 +03:00
ddadminandClaude Opus 4.6 21a6494cc4 fix(chezmoi): кириллица в PS-скриптах ломала парсер на Windows
- Зачем:
  - PS 5.1 читает UTF-8 без BOM как системную кодовую страницу;
    байт 0x91 из «Бэкап» интерпретировался как кавычка, ломая парсер.
- Что:
  - заменена кириллица в Write-Host/Write-Warning на английский текст
    в run_20-configure-windows-terminal.ps1 и run_before_10-migrate-gitconfig.ps1.
  - комментарии на русском оставлены (парсер их не обрабатывает).
- Проверка:
  - chezmoi -S "$HOME\dotfiles\chezmoi" apply (на Windows)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 20:11:32 +03:00
Dmitry DementievandClaude Opus 4.6 1963b6a117 refactor(windows): причёсан стиль chezmoi-скриптов и pwsh-профиля
- Зачем:
  - код Codex работал, но был тяжёл для чтения и сопровождения: 4 naming-конвенции, скрытая мутация $script:changed, 298 строк WT-скрипта почти без комментариев.
- Что:
  - profile.ps1: комментарии на русском перед каждой функцией, секционные разделители, wt-here → wt_here (единый snake_case), Get-PublicIp упрощён до Invoke-RestMethod, Chocolatey boilerplate обрезан.
  - WT-скрипт: Set/Remove-Prop возвращают bool вместо мутации $script:changed, naming выровнен в PascalCase, хелперы переименованы (Get-Prop, Set-Prop, Test-IsPS7, Test-IsStockPS7), комментарии к каждому блоку логики, вывод на русском.
  - Git-миграция: блок комментариев с описанием 4 сценариев, пояснение 3 вариантов ManagedStubs, naming выровнен, вывод на русском.
- Проверка:
  - pwsh -NoProfile -Command "[System.Management.Automation.Language.Parser]::ParseFile(...)" — синтаксис всех трёх файлов OK.
  - chezmoi -S "$HOME\dotfiles\chezmoi" apply --dry-run --verbose.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 17:59:59 +03:00
Dmitry DementievandClaude Opus 4.6 c06ad1ecbb fix(windows): WT-скрипт использует source вместо commandline для PS7
- Зачем:
  - на машине без pwsh в стандартном PATH профиль с `commandline = 'pwsh.exe'` ломался, потому что WT игнорировал динамический `source` в пользу явного `commandline`.
- Что:
  - PS7 профиль теперь управляется через `source = Windows.Terminal.PowershellCore`, `commandline` удаляется.
  - добавлена проверка `Test-PowerShell7Available`: если pwsh не найден, профиль не создаётся.
  - добавлена `Remove-JsonPropertyValue` для идемпотентного удаления свойств.
  - magic string вынесен в константу `$PowerShellSource`.
- Проверка:
  - `chezmoi -S "$HOME\dotfiles\chezmoi" apply --dry-run --verbose`.
  - `pwsh -NoProfile -Command "(Get-Content (Join-Path $env:LOCALAPPDATA 'Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json') -Raw | ConvertFrom-Json).profiles.list | Where-Object {$_.source -eq 'Windows.Terminal.PowershellCore'} | ConvertTo-Json"`.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 17:41:37 +03:00
Dmitry Dementiev f9083af8b2 fix(windows): исправлены LF и совместимость chezmoi с PS 5.1
- Зачем:
  - нужно убрать line-ending noise в репозитории и сделать Windows-слой безопаснее для запуска без установленного pwsh.
- Что:
  - добавлена `.gitattributes` с LF-базой для текста и CRLF-исключениями для `.bat` и `.cmd`.
  - `README.md` нормализован в LF и quick start дополнен явной установкой PowerShell 7.
  - `chezmoi`-скрипты переведены на guard, совместимый с PowerShell 5.1, а запись `settings.json` переведена на `utf8BOM`.
- Проверка:
  - `git diff --check`.
  - `powershell.exe -NoProfile -ExecutionPolicy Bypass -File chezmoi\\.chezmoiscripts\\run_before_10-migrate-gitconfig.ps1`.
  - `powershell.exe -NoProfile -ExecutionPolicy Bypass -File chezmoi\\.chezmoiscripts\\run_20-configure-windows-terminal.ps1`.
  - `chezmoi -S C:\\Users\\dmitry\\dotfiles\\chezmoi apply --dry-run --verbose`.
2026-03-22 17:12:59 +03:00
Dmitry Dementiev 9b66fc70fc feat(windows): добавлены proxy-хелперы и упрощен git baseline
- Зачем:
  - нужно перенести привычные proxy_on/proxy_off/myip из bash в pwsh и убрать устаревший codevpn.
  - нужно сделать Windows Git baseline проще и предсказуемее, чтобы effective значения и проверки не путались.
- Что:
  - в managed profile PowerShell 7 добавлены `proxy_on`, `proxy_off`, `myip` и удалён `codevpn`.
  - Git baseline перенесён в `~/.gitconfig`, а `~/.gitconfig.local` оставлен только для локальных и персональных override-настроек.
  - README уточнён: legacy-статус Windows PowerShell 5.1, новые helper-функции и корректная команда проверки Git-конфига.
- Проверка:
  - `chezmoi -S "$HOME\dotfiles\chezmoi" apply --force`
  - `pwsh -NoLogo -Command ''Get-Command proxy_on,proxy_off,myip,Reload-Profile,wt-here; Test-Path function:codevpn''`
  - `git config --global --includes --list --show-origin`
2026-03-22 15:58:10 +03:00
Dmitry Dementiev 8fd5b9c630 feat(windows): добавлен chezmoi-слой для pwsh, terminal и git
- Зачем:
  - нужно перенести стабильную Windows-конфигурацию в dotfiles без поломки существующего stow/install.sh workflow для Linux и WSL.
  - нужно убрать типичные проблемы Git на Windows, включая line endings, из ручной настройки машины.
- Что:
  - добавлен отдельный source dir `chezmoi/` с tiny stub для PowerShell 7 и managed profile в `~/.config/powershell`.
  - добавлены идемпотентная настройка Windows Terminal и managed Git baseline с миграцией локальных настроек в `~/.gitconfig.local`.
  - обновлён README: описан Windows workflow, helper-функции pwsh и состав Git baseline без персональных данных.
- Проверка:
  - `chezmoi -S "$HOME\dotfiles\chezmoi" apply`
  - `pwsh -NoLogo -Command ''$PSVersionTable.PSVersion.ToString(); chcp; [Console]::InputEncoding.WebName; [Console]::OutputEncoding.WebName''`
  - `git config --global --includes --list --show-origin`
2026-03-22 15:45:08 +03:00