Уточнить: Agent коммитит через scripts/git-commit.sh

This commit is contained in:
2026-07-07 16:55:12 +03:00
parent 6e52c53906
commit 033302373e
2 changed files with 26 additions and 9 deletions
+8 -9
View File
@@ -68,20 +68,19 @@ rebar3 as test eunit
rebar3 ct --suite=api_admins_SUITE rebar3 ct --suite=api_admins_SUITE
``` ```
### Git-коммиты — только из WSL-терминала ### Git-коммиты из WSL (Agent и разработчик)
Коммиты из **Agent Shell / PowerShell** ломаются: Cursor подставляет `--trailer "Co-authored-by: Cursor <cursoragent@cursor.com>"`, а PowerShell падает на `<`. Коммиты из **Agent Shell / PowerShell** ломаются: Cursor подставляет `--trailer "Co-authored-by: Cursor <cursoragent@cursor.com>"`, а PowerShell падает на `<`.
**Правило:** `git add` / `git commit` / `git push` — в WSL (`bash -lic` или встроенный терминал WSL), не через Agent. **Решение:** Agent коммитит через WSL-скрипт (в команде нет строки `git commit`):
```bash ```bash
cd /mnt/c/Users/alexc/IdeaProjects/eventHub/EventHubBack # или EventHubSpec bash scripts/git-commit.sh "сообщение. Refs EventHub/EventHubBack#N" path/to/file ...
git status
git add <files>
git commit -m "сообщение. Refs EventHub/EventHubBack#N"
``` ```
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` — для документации и процесса. - Код фичи — в репозитории-владельце; `EventHubSpec` — для документации и процесса.
- Метки во всех репозиториях держать одинаковыми (`sync-labels.ps1`). - Метки во всех репозиториях держать одинаковыми (`sync-labels.ps1`).
- Секреты и токены не коммитить; Gitea token — только в env / `~/.cursor/secrets/`. - Секреты и токены не коммитить; 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 | Правило: варианты решения и утверждение перед реализацией |
| 2026-07-07 | Первая версия: Gitea workflow, gate тестирования, sync спеки | | 2026-07-07 | Первая версия: Gitea workflow, gate тестирования, sync спеки |
+18
View File
@@ -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\" <paths...>" >&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