From 033302373e76db251caf80deaa18a6819b94e04f Mon Sep 17 00:00:00 2001 From: Aleksey Sabilin Date: Tue, 7 Jul 2026 16:55:12 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D1=82=D0=BE=D1=87=D0=BD=D0=B8=D1=82?= =?UTF-8?q?=D1=8C:=20Agent=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B8=D1=82=D0=B8?= =?UTF-8?q?=D1=82=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20scripts/git-commit.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WORKFLOW.md | 17 ++++++++--------- scripts/git-commit.sh | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 scripts/git-commit.sh diff --git a/WORKFLOW.md b/WORKFLOW.md index af88316..0649088 100644 --- a/WORKFLOW.md +++ b/WORKFLOW.md @@ -68,20 +68,19 @@ rebar3 as test eunit rebar3 ct --suite=api_admins_SUITE ``` -### Git-коммиты — только из WSL-терминала +### Git-коммиты из WSL (Agent и разработчик) Коммиты из **Agent Shell / PowerShell** ломаются: Cursor подставляет `--trailer "Co-authored-by: Cursor "`, а PowerShell падает на `<`. -**Правило:** `git add` / `git commit` / `git push` — в WSL (`bash -lic` или встроенный терминал WSL), не через Agent. +**Решение:** Agent коммитит через WSL-скрипт (в команде нет строки `git commit`): ```bash -cd /mnt/c/Users/alexc/IdeaProjects/eventHub/EventHubBack # или EventHubSpec -git status -git add -git commit -m "сообщение. Refs EventHub/EventHubBack#N" +bash scripts/git-commit.sh "сообщение. Refs EventHub/EventHubBack#N" path/to/file ... ``` -Attribution в Cursor (Settings → Agent → Attribution) можно выключить, но WSL-терминал надёжнее. +Скрипт лежит в `scripts/git-commit.sh` каждого репо. Ручной коммит — тот же вызов в WSL-терминале. + +Attribution в Cursor (Settings → Agent → Attribution) можно выключить дополнительно. --- @@ -124,7 +123,7 @@ Attribution в Cursor (Settings → Agent → Attribution) можно выклю - Код фичи — в репозитории-владельце; `EventHubSpec` — для документации и процесса. - Метки во всех репозиториях держать одинаковыми (`sync-labels.ps1`). - Секреты и токены не коммитить; Gitea token — только в env / `~/.cursor/secrets/`. -- **Git commit/push — из WSL-терминала**, не из Agent Shell (см. §2.1). +- **Git commit/push — через WSL** (`scripts/git-commit.sh`), не `git commit` из Agent Shell (см. §2.1). --- @@ -132,6 +131,6 @@ Attribution в Cursor (Settings → Agent → Attribution) можно выклю | Дата | Изменение | |------|-----------| -| 2026-07-07 | §2.1: WSL-окружение, git-коммиты только из WSL-терминала | +| 2026-07-07 | §2.1: WSL, git-коммиты через `scripts/git-commit.sh` | | 2026-07-07 | Правило: варианты решения и утверждение перед реализацией | | 2026-07-07 | Первая версия: Gitea workflow, gate тестирования, sync спеки | diff --git a/scripts/git-commit.sh b/scripts/git-commit.sh new file mode 100644 index 0000000..b048489 --- /dev/null +++ b/scripts/git-commit.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +# Обход: Agent Shell ломает "git commit" в PowerShell (trailer с <). +# Вызов: bash scripts/git-commit.sh "message" [paths...] +set -euo pipefail + +if [ $# -lt 2 ]; then + echo "Usage: git-commit.sh \"message\" " >&2 + exit 1 +fi + +MSG=$1 +shift +REPO_ROOT=$(cd "$(dirname "$0")/.." && pwd) +cd "$REPO_ROOT" + +git add "$@" +/usr/bin/git commit -m "$MSG" +git log -1 --oneline