Commit Graph
87 Commits
Author SHA1 Message Date
Dmitry Dementiev dbc81c9c8f chore(opencode): удалены Z.AI MCP-сервисы (web-reader, web-search-prime, zread) 2026-05-11 19:16:37 +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
ddadmin fd56702644 feat(claude): добавлен скрипт statusline-command.sh для строки статуса
- Зачем:
  - отображать в Claude Code текущий путь, ветку, модель и использование контекста/rate limits.
- Что:
  - создан claude/.claude/statusline-command.sh с парсингом JSON и ANSI-форматированием.
  - обновлён .gitignore для трекинга нового скрипта.
- Проверка:
  - запуск скрипта в рабочей директории проекта: bash claude/.claude/statusline-command.sh.
2026-04-26 22:39:21 +03:00
ddadmin 1a5ff7cecf feat(opencode): добавлен плагин superpowers в конфигурацию
- Зачем:
  - необходимо подключить набор skills для расширения возможностей агента Opencode.
- Что:
  - добавлена опция plugin с указанием репозитория superpowers в opencode.json.
- Проверка:
  - cat opencode/.config/opencode/opencode.json.
2026-04-25 20:13:14 +03:00
ddmitry 92339acc4c update: .tmux.conf 2026-04-21 18:21:05 +00:00
ddmitry 577d10e206 update: .tmux.conf 2026-04-21 18:17:46 +00:00
ddmitry 90c0bb0ba9 update: .tmux.conf 2026-04-21 18:15:38 +00:00
ddadmin f5e8fec192 fix(bash): добавлена поддержка IPv6 и lower-case переменных в proxy_on/off
- Зачем:
  - локальные MCP/loopback-соединения уходили в SOCKS5 через hproxy.local из-за отсутствия IPv6 в NO_PROXY
  - Python-приложения не видели прокси-переменные в lower-case
- Что:
  - добавлены ::1 и [::1] в список NO_PROXY для IPv6 loopback
  - добавлены lower-case переменные (http_proxy, https_proxy, all_proxy, no_proxy)
  - функция proxy_off теперь сбрасывает все прокси-переменные
- Проверка:
  - source ~/.bash_functions && proxy_on && echo $NO_PROXY && proxy_off
2026-04-19 12:25:03 +03:00
Dmitry DementievandClaude Opus 4.6 582eb3fa11 refactor(skills): удалён codex-review, поглощён adversarial-review
- Зачем:
  - codex-review дублировал adversarial-review с менее проработанными промптами,
    а Codex CLI регулярно путался и пытался вызывать сам себя.
- Что:
  - удалён скилл codex-review (SKILL.md).
  - из TODO.md убраны завершённые задачи, актуальные перефокусированы на adversarial-review.
  - в settings.local.json паттерны codex-review-* расширены до codex-* для adversarial-review.
- Проверка:
  - git diff HEAD~1 --stat.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 23:27:00 +03:00
ddadmin 5d2d9e3d22 feat(skills): добавлены новые паттерны и quick scan в ai-text-lint
- Зачем:
  - расширить покрытие AI-маркеров и добавить быстрый режим для коротких текстов.
- Что:
  - добавлен режим quick scan (только 🔴 high, без развёрнутых объяснений).
  - новые паттерны: P05 (буква «ё»), L06 (hedging), S07 (двоеточие перед списком), T05 (sandwich pattern).
  - расширен словарь L01 (формирование, реализация, осуществлять, функционирование).
  - улучшена детекция S04 (добавлен синтаксический аспект однородности).
  - обновлены таблицы severity для всех контекстов.
- Проверка:
  - /ai-text-lint на тестовом тексте с новыми паттернами.
2026-04-05 16:49:48 +03:00
ddadmin e11258b51d feat(skills): добавлен скилл ai-text-lint
- Зачем:
  - нужен инструмент для проверки текстов на типичные признаки AI-генерации перед публикацией.
- Что:
  - создан SKILL.md с workflow линтера (диагностика без автоправок, контекстная severity).
  - создана база паттернов references/patterns.md (20 паттернов в 6 категориях: пунктуация, лексика, структура, тон, резюме, связки).
  - матрица severity по трём контекстам: article, message, resume.
- Проверка:
  - вызвать /ai-text-lint на произвольном тексте.
2026-04-05 11:28:09 +03:00
ddadminandClaude Opus 4.6 76e6b293c8 refactor(skills): оптимизирован codex-review для Plan Mode и resume
- Зачем:
  - в Plan Mode ревью плана вызывало ~5 permission prompts (git, Write, rm),
    хотя для плана git не нужен, а план уже является файлом.
- Что:
  - добавлен fast path: явный `plan` или Plan Mode пропускают git-проверки
  - base branch определяется лениво (только для code/code-vs-plan)
  - resume упрощён через `2>/dev/null` (stderr → /dev/null, stdout = чистое ревью)
  - cleanup пропускается в Plan Mode, best-effort вне его
  - удалены deprecated permissions claude-diff-* из settings.local.json
- Проверка:
  - `/codex-review plan` в Plan Mode — 0 permission prompts
  - `/codex-review code` вне Plan Mode — работает как раньше

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 12:26:46 +03:00
ddadminandClaude Opus 4.6 fee4587129 docs(todo): известные проблемы и план публикации codex-review
- Зачем:
  - зафиксировать известные проблемы и план выделения скилла в отдельный репо.
- Что:
  - добавлен TODO: resume переключает sandbox/reasoning (разобраться с плагином).
  - добавлен TODO: pipe в определении base branch.
  - добавлен TODO: отдельный репозиторий + статья на Хабр (высокий приоритет).
- Проверка:
  - cat TODO.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 00:14:06 +03:00
ddadminandClaude Opus 4.6 2d12d83486 docs(todo): добавлена задача на изучение codex-plugin-cc
- Зачем:
  - официальный плагин OpenAI может содержать идеи для улучшения скилла codex-review.
- Что:
  - добавлен пункт TODO со ссылкой на openai/codex-plugin-cc.
- Проверка:
  - cat TODO.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 00:09:33 +03:00
ddadminandClaude Opus 4.6 55079efe46 refactor(skills): codex-review передаёт список файлов вместо diff
- Зачем:
  - Codex имеет доступ к репо в read-only sandbox и может сам читать diff — сбор в temp-файл избыточен.
- Что:
  - шаг 1: автодетект дополнен проверкой branch-изменений (BASE_BRANCH...HEAD).
  - шаг 2: добавлено определение base branch через origin/HEAD + fallback main/master.
  - шаг 3: diff заменён на --name-only списки (unstaged+staged, branch как fallback).
  - шаг 4: промпты передают список файлов и git-команды вместо <diff-path>.
  - убраны temp-файлы claude-diff-*, preflight --shortstat, часть cleanup.
  - TODO.md: задача отмечена как выполненная.
- Проверка:
  - /codex-review code — одобрено Codex за 3 раунда, 0 permission prompts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 00:07:57 +03:00
ddadminandClaude Opus 4.6 6347252d4e docs(todo): добавлена задача на упрощение codex-review
- Зачем:
  - Codex и так имеет доступ к репо в read-only sandbox, сбор diff избыточен.
- Что:
  - добавлен пункт TODO: передавать список файлов вместо diff.
- Проверка:
  - cat TODO.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 23:38:32 +03:00
ddadminandClaude Opus 4.6 c7e981604e fix(skills): убраны permission prompts из codex-review
- Зачем:
  - каждый раунд ревью требовал 3-5 ручных подтверждений из-за $(), > и 2>&1 в bash-командах.
- Что:
  - шаг 2: Session ID генерируется Claude без bash, вместо $(date).
  - шаг 3: git diff → stdout + Write tool вместо > redirect; добавлен preflight через --shortstat.
  - шаг 7: resume stdout + Write tool вместо > 2>&1; дифференцированная обработка exit code.
  - добавлено пояснение о плейсхолдерах ${REVIEW_ID}/${CODEX_SESSION_ID}.
  - TODO.md: задача отмечена как выполненная.
- Проверка:
  - /codex-review code на текущем diff — 0 permission prompts за 3 раунда.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 23:33:36 +03:00
ddadminandClaude Opus 4.6 a05830c4f4 docs: план доработки codex-review в TODO.md, ссылка из AGENTS.md
- Зачем:
  - планы должны жить в TODO.md, AGENTS.md ссылается на него.
- Что:
  - перенесён план по codex-review из AGENTS.md в TODO.md.
  - в AGENTS.md добавлена ссылка на TODO.md.
- Проверка:
  - cat TODO.md, cat AGENTS.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 11:03:47 +03:00
ddadminandClaude Opus 4.6 3c690bdb12 fix(skills): ужесточены permissions и добавлен TODO для codex-review
- Зачем:
  - Codex-ревью выявило permission bypass через Bash(timeout *) и
    сохраняющиеся safety prompts на $() и > в bash-командах.
- Что:
  - permission сужен до Bash(timeout 600 codex exec *), rm-паттерны конкретизированы.
  - REVIEW_ID использует $RANDOM для энтропии, resume пишет в файл вместо pipe.
  - добавлен TODO в AGENTS.md: план замены bash-паттернов на нативные инструменты.
- Проверка:
  - /codex-review при следующем использовании.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 10:59:26 +03:00
ddadminandClaude Opus 4.6 6190fbaf08 fix(skills): улучшена надёжность и UX скилла codex-review
- Зачем:
  - скилл генерировал множество промежуточных bash-команд, каждая из которых
    требовала ручного подтверждения пользователя.
  - poll-loop (while/sleep) мог зависнуть навсегда при сбое Codex.
- Что:
  - добавлены permissions для типовых команд скилла (timeout, rm/Write для /tmp).
  - uuidgen заменён на date +%s (меньше промптов).
  - codex exec обёрнут в timeout 600 (10 мин) вместо poll-loop.
  - resume оставлен как primary, свежий exec — fallback.
  - добавлен захват session ID в Шаг 4.
- Проверка:
  - /codex-review при следующем использовании.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 10:38:07 +03:00
ddadminandClaude Opus 4.6 9341853479 refactor(claude): settings.json отдан Claude Code, базовые настройки в settings.local.json
- Зачем:
  - Claude Code перезаписывает settings.json при каждом «always allow», что создавало
    конфликт с managed-копией из dotfiles при повторном запуске install.sh.
- Что:
  - settings.json удалён из репозитория, Claude Code владеет им полностью.
  - создан settings.local.json (базовые permissions + statusLine), деплоится через симлинк.
  - install.sh: копирование + шаблон заменены на ln -sf с бэкапом и guard для edge cases.
  - check.sh: проверка обновлена под симлинк вместо «файл + chmod 444».
  - тесты: старый тест копирования заменён на 4 новых (симлинк, бэкап, директория, stow-миграция).
- Проверка:
  - bash tests/test_install.sh (15 тестов).
  - bash agents/.agents/skills/dotfiles-check/check.sh.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 10:28:41 +03:00
ddadminandClaude Opus 4.6 bdccd889fe refactor(skills): переработан скилл codex-review
- Зачем:
  - скилл работал только с планами; нужна поддержка ревью кода и автодетект режима.
- Что:
  - добавлен автодетект режима: plan, code, code-vs-plan.
  - три отдельных промпта для каждого режима ревью.
  - модель обновлена на gpt-5.4, reasoning effort = high.
  - исправлен сбор diff (условный, не перезаписывающий).
  - инструкции переведены на русский, промпты к Codex оставлены на английском.
  - добавлен вывод пути к файлу плана для открытия в IDE.
  - явные правила парсинга аргументов (model:..., reasoning level, путь к файлу).
- Проверка:
  - /codex-review в Claude Code.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 09:40:41 +03:00
ddadmin 9b05b4ab82 chore(skills): добавлен скилл codex-review
- Зачем:
  - нужен инструмент для итеративного ревью планов реализации через OpenAI Codex CLI.
- Что:
  - добавлен SKILL.md для скилла codex-review: цикл до 5 раундов, Claude отправляет план → Codex рецензирует → Claude правит → повторяет до VERDICT: APPROVED.
- Проверка:
  - вызвать `/codex-review` во время или после plan mode.
2026-03-30 23:42:22 +03:00
Dmitry DementievandClaude Opus 4.6 b6b501dc77 fix(docker): изменён порт SearXNG на безопасный диапазон
- Зачем:
  - порт 57458 попадал в динамический диапазон Hyper-V (49152–65535), что блокировало запуск контейнера на WSL2.
- Что:
  - порт изменён с 57458 на 26745 в docker-compose.yml.
  - обновлён SEARXNG_URL в конфиге MCP opencode.
- Проверка:
  - docker compose up -d && curl -s -o /dev/null -w "%{http_code}" http://localhost:26745/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 10:09:42 +03:00
ddadminandClaude Opus 4.6 77adaad441 chore(skills): добавлены скиллы docstring и security-audit
- Зачем:
  - напоминание моделям про Google-style docstring'ы и Ruff-конфиг.
  - чеклист безопасности для ревью кода и зависимостей.
- Что:
  - добавлен docstring (DeerHide): вычищены мёртвые ссылки, добавлен Ruff select, правило языка проекта.
  - добавлен security-audit: чеклист OWASP, severity-уровни, формат отчёта.
  - убраны test-generator (Node.js стек) и api-docs (избыточен).
- Проверка:
  - ls agents/.agents/skills/{docstring,security-audit}/SKILL.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 19:44:37 +03:00
ddadminandClaude Opus 4.6 168b40ddd7 feat(docker): добавлен локальный SearXNG для веб-поиска из opencode
- Зачем:
  - модели в opencode не имели доступа к поиску без платных API.
- Что:
  - добавлен docker-compose для SearXNG (localhost:57458, без valkey).
  - секрет подставляется из .env через generate-config.sh при старте.
  - добавлен MCP-сервер searxng в конфиг opencode.
  - env_file с fallback: .env.sample работает из коробки, .env опционален.
- Проверка:
  - cd docker/searxng && docker compose up -d.
  - curl http://localhost:57458/search?q=test&format=json.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 19:09:41 +03:00
ddadminandClaude Opus 4.6 d3a91bea95 fix(opencode): заменён DuckDuckGo MCP с npx/bun на uvx
- Зачем:
  - duckduckgo-mcp (npx) требует bun, которого нет в системе.
- Что:
  - убран websearch из permissions (инструмент не существует в opencode).
  - команда заменена на uvx duckduckgo-mcp-server (Python, работает без bun).
- Проверка:
  - перезапустить opencode, убедиться что инструменты duckduckgo доступны.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 18:11:22 +03:00
ddadminandClaude Opus 4.6 1b675ab34a feat(opencode): включён встроенный websearch в permissions
- Зачем:
  - доступ к поиску в интернете для моделей без внешних MCP-серверов.
- Что:
  - добавлен "websearch": "ask" в секцию permission.
- Проверка:
  - открыть opencode, убедиться что websearch доступен как инструмент.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 17:42:29 +03:00
ddadminandClaude Opus 4.6 35b49e697d docs(readme): добавлена ссылка на репозиторий Opencode
- Зачем:
  - существует два проекта opencode, ссылка устраняет путаницу.
- Что:
  - название Opencode в таблице AI-инструментов обёрнуто в ссылку на anomalyco/opencode.
- Проверка:
  - открыть README.md, убедиться что ссылка ведёт на правильный репозиторий.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 17:21:59 +03:00
ddadminandClaude Opus 4.6 ffc794a219 feat(opencode): добавлен провайдер GLM-5.1 (Coding Plan) и TODO.md
- Зачем:
  - подключение модели glm-5.1 через подписку GLM Coding Plan Lite.
- Что:
  - добавлен кастомный провайдер zai с OpenAI-compatible адаптером.
  - создан TODO.md с планом миграции на config.d + stow (anomalyco/opencode#9062).
- Проверка:
  - открыть opencode, выполнить /models, убедиться что zai/glm-5.1 доступен.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 17:17:01 +03:00
ddadmin 9ce545d0bd chore(zed): добавлена конфигурация прокси для AI агентов
- Зачем:
  - требуется обеспечение работы Claude, Codex и Gemini через корпоративный прокси.
- Что:
  - добавлен глобальный параметр proxy.
  - настроены переменные окружения для claude-acp, codex-acp и gemini.
  - определены исключения для локальных адресов в NO_PROXY.
- Проверка:
  - запуск Zed с проверкой подключения к AI агентам.
2026-03-27 23:42:13 +03:00
ddadminandClaude Opus 4.6 cb0d09370a docs: добавлено предупреждение о перезапуске терминала в Windows quickstart
- Зачем:
  - winget install не обновляет PATH текущей сессии; без перезапуска
    chezmoi не находит pwsh и запускает скрипты через PS 5.1.
- Что:
  - добавлен комментарий между установкой пакетов и chezmoi apply.
- Проверка:
  - визуальная проверка README.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 20:19:31 +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
ddadminandClaude Opus 4.6 8567b2262c refactor(install): причёсан стиль и структура install.sh
- Зачем:
  - скрипт, написанный Codex, отличался по стилю от остального репозитория,
    трудно читался из-за вложенных условий и отсутствия визуальной структуры.
- Что:
  - добавлены секционные заголовки в стиле profile.ps1 (# ── Name ──────).
  - извлечён ask_yes_no() — убрано дублирование промптов.
  - WSL-логика вынесена в setup_wsl_hproxy() с flat early returns.
  - миграция stow-симлинка вынесена в migrate_claude_stow_symlink().
  - добавлены однострочные комментарии к хелперам и нетривиальным веткам.
- Проверка:
  - bash tests/test_install.sh
  - ./install.sh (идемпотентный повторный прогон)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 20:03:12 +03:00
ddadminandClaude Opus 4.6 877dd6cc4d chore(agents): удалён скилл differential-review
- Зачем:
  - скилл ухудшал работу Codex при ревью, добавляя избыточный контекст.
- Что:
  - удалены 5 файлов из agents/.agents/skills/differential-review/.
  - через симлинки скилл автоматически пропал из Claude и Opencode.
- Проверка:
  - grep -r differential-review agents/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 19:47:30 +03:00
ddadminandClaude Opus 4.6 898db1098d refactor(wsl): унифицирована логика hproxy.local и добавлена миграция legacy boot command
- Зачем:
  - setup-hproxy.sh удалял запись из hosts до проверки gateway — при ошибке hosts ломался.
  - update_hproxy() дублировала логику скрипта с багами и не тестировалась.
  - legacy inline boot command в wsl.conf не мигрировался автоматически.
- Что:
  - setup-hproxy.sh: безопасный порядок (gateway → hosts), set -e, экранированная точка в sed.
  - update_hproxy() заменена на thin wrapper с проверкой wsl.conf и ошибок sudo.
  - install.sh: интерактивная замена legacy boot command, детекция существующих [boot] command,
    принимает русскую «у» наравне с «y».
  - README.md: описаны три сценария (WSL NAT, WSL mirrored — host-side resolution, native Linux).
  - добавлены тесты: existing boot command preserved, legacy command migration hint.
- Проверка:
  - bash tests/test_install.sh
  - ./install.sh (интерактивно, ответить «y» на миграцию legacy command)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 19:42:50 +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 DementievandClaude Opus 4.6 d8768a1642 docs: переписан README по принципу «платформа → действие → справочник»
- Зачем:
  - README вырос органически и перестал соответствовать тому, как человек его читает: quick start был на строке 80, требования после инструкций, Windows-справочник внутри установки, прокси и секреты размазаны по 4 местам.
- Что:
  - добавлен quick start наверху (3 команды для каждой платформы).
  - содержимое сгруппировано по платформе: Linux/WSL (stow), Windows (chezmoi), AI-инструменты.
  - прокси, секреты и Git baseline консолидированы в отдельные секции.
  - добавлены секции «Справочник» (bash/pwsh функции, точки расширения) и «Дизайн-решения».
  - удалены дубли и заглушки (Stow вручную, Zed placeholder, VS Code Server как отдельная секция).
- Проверка:
  - визуальный просмотр README.md.
  - git diff --check — нет trailing whitespace / CRLF.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 17:32:42 +03:00
Dmitry DementievandClaude Opus 4.6 4331b0c02c chore: нормализация line endings и удаление __pycache__
- .gitattributes уже нормализует новые файлы; renormalize убрал
  CRLF из slides/LICENSE.txt (pre-existing, 201 CR).
- __pycache__/*.pyc убран из tracking, добавлен в .gitignore.
- Удалены тестовые бэкапы ~/.gitconfig.pre-chezmoi.bak-*.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 17:19:28 +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
ddadmin 22d38f80e5 fix(install): устранены конфликты stow в WSL и opencode
- Зачем:
  - нужно было убрать падение install.sh на абсолютных WSL-симлинках и существующей runtime-директории opencode.
- Что:
  - убран `--restow` из вызова stow, чтобы install не падал на ссылках `~/.aws` и `~/.azure`.
  - настройка `~/.config/opencode` переведена на ручную установку с backup существующего `opencode.json` и сохранением runtime-файлов.
  - в tests/test_install.sh добавлены сценарии для WSL-симлинков и существующей директории opencode.
- Проверка:
  - bash -n install.sh
  - bash -n tests/test_install.sh
  - ./tests/test_install.sh
2026-03-22 01:37:54 +03:00
ddadmin edeb8da3c2 fix(install): исправлена установка dotfiles и добавлены тесты
- Зачем:
  - нужно было убрать баги install.sh и сделать регрессии воспроизводимыми.
- Что:
  - исправлена установка через stow в HOME, миграция ~/.claude и копирование settings.json без разрушения рабочей директории.
  - стабилизирована WSL-логика через проверки интерактивности и защиту от дублирования boot command.
  - добавлен tests/test_install.sh с regression-сценариями для install.sh.
- Проверка:
  - bash -n install.sh
  - bash -n tests/test_install.sh
  - ./tests/test_install.sh
2026-03-22 01:21:56 +03:00
Dmitry DementievandClaude Opus 4.6 e00611015a fix(claude): settings.json копируется вместо симлинка через stow
- Зачем:
  - stow tree-folding создавал симлинк ~/.claude → dotfiles/claude/.claude/,
    из-за чего Claude Code модифицировал settings.json прямо в репозитории,
    а рантайм-данные (sessions, credentials) попадали в каталог dotfiles.
- Что:
  - claude убран из stow-пакетов, установка через ручную секцию в install.sh.
  - settings.json копируется в ~/.claude/ (оригинал защищён chmod 444).
  - добавлена автомиграция: симлинк → директория с переносом рантайм-данных.
  - грязный settings.json в репо автоматически сбрасывается через git checkout.
  - добавлен .stow-local-ignore для защиты от случайного stow claude.
  - check.sh дополнен проверками: ~/.claude — директория, settings.json — копия.
- Проверка:
  - bash install.sh (на машине с симлинком — мигрирует, иначе — идемпотентно).
  - bash agents/.agents/skills/dotfiles-check/check.sh.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 15:01:34 +03:00
Dmitry Dementiev 769ef95096 chore(git): добавлено игнорирование локальных файлов ассистентов и vscode
- Зачем:
  - статус git был засорен логами, базами данных, токенами и кэшами от локально работающих агентов (codex, gemini) и сервера VS Code, что затрудняло анализ реальных изменений.
- Что:
  - в .gitignore добавлены правила для codex/.codex/, gemini/.gemini/ и vscode/.vscode-server/.
  - добавлены исключения (!) для конфигурационных директорий и файлов (skills, policies, server-env-setup).
- Проверка:
  - git status больше не показывает сотни неотслеживаемых локальных файлов.
2026-03-18 14:38:58 +03:00
Dmitry Dementiev 44c9510af2 docs(skills): ограничена область применения differential-review
- Зачем:
  - навык не должен предлагаться AI-ассистентом автоматически при каждом изменении кода, так как это дорогостоящая и глубокая операция.
- Что:
  - в описании (description) явно указано, что навык предназначен только для ручного вызова (Manual invocation only).
  - обновлено поле description текстом "ONLY when explicitly requested by the user".
- Проверка:
  - визуальная проверка agents/.agents/skills/differential-review/SKILL.md.
2026-03-18 14:35:47 +03:00
ddadminandClaude Opus 4.6 98484ad220 feat(wsl): добавлен boot-скрипт для автоматического резолва hproxy.local
- Зачем:
  - старая команда в wsl.conf дублировала записи в /etc/hosts при каждом ребуте.
  - настройка hproxy.local не была задокументирована в репозитории.
- Что:
  - создан идемпотентный скрипт scripts/setup-hproxy.sh (sed + append).
  - в install.sh добавлен интерактивный вопрос о подключении скрипта в wsl.conf.
  - в README.md добавлена документация по настройке hproxy.local (NAT и Mirror).
- Проверка:
  - cat /etc/wsl.conf, wsl --shutdown, getent hosts hproxy.local.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 11:11:03 +03:00