From 153cc6d29c07352e2a184385d0201f5f53d5d0be Mon Sep 17 00:00:00 2001 From: Aleksey Sabilin Date: Tue, 7 Jul 2026 21:22:20 +0300 Subject: [PATCH] =?UTF-8?q?Git-=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=D1=8B?= =?UTF-8?q?=20Agent=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=B5=D1=81=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=B2=20~/.cursor/eventhub/.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WORKFLOW.md | 24 +++++++++++++++++------- scripts/git-commit.sh | 18 ------------------ scripts/git-push.sh | 25 ------------------------- 3 files changed, 17 insertions(+), 50 deletions(-) delete mode 100644 scripts/git-commit.sh delete mode 100644 scripts/git-push.sh diff --git a/WORKFLOW.md b/WORKFLOW.md index 1bf5d2a..c60d15d 100644 --- a/WORKFLOW.md +++ b/WORKFLOW.md @@ -72,17 +72,26 @@ rebar3 ct --suite=api_admins_SUITE Коммиты из **Agent Shell / PowerShell** ломаются: Cursor подставляет `--trailer "Co-authored-by: Cursor "`, а PowerShell падает на `<`. -**Решение:** Agent коммитит через WSL-скрипт (в команде нет строки `git commit`): +**Решение:** Agent коммитит через WSL-скрипт в `~/.cursor/eventhub/` (в команде нет строки `git commit`): ```bash -bash scripts/git-commit.sh "сообщение. Refs EventHub/EventHubBack#N" path/to/file ... +EH=/mnt/c/Users/alexc/IdeaProjects/eventHub +GIT=/mnt/c/Users/alexc/.cursor/eventhub + +bash $GIT/git-commit.sh $EH/EventHubBack \ + "сообщение. Refs EventHub/EventHubBack#N" \ + path/to/file ... ``` -Скрипт лежит в `scripts/git-commit.sh` каждого репо. Ручной коммит — тот же вызов в WSL-терминале. +Ручной коммит — тот же вызов в WSL-терминале. ### Push на remote -**Agent делает `git push` только после явного подтверждения пользователя** («пуш», «отправь», «push»). +**Agent делает `git push` только после явного подтверждения пользователя** («пуш», «отправь», «push»): + +```bash +bash $GIT/git-push.sh $EH/EventHubBack +``` До подтверждения: коммиты остаются локально; в конце задачи Agent напоминает, что можно пушить. @@ -132,7 +141,7 @@ Attribution в Cursor (Settings → Agent → Attribution) можно выклю Gitea: https://git.sabilin.com/EventHub Следуй WORKFLOW.md и skills eventhub-gitea / eventhub-workflow. -Окружение: WSL + asdf (OTP 28). Git: scripts/git-commit.sh, push — только после «пуш». +Окружение: WSL + asdf (OTP 28). Git: ~/.cursor/eventhub/git-commit.sh, push — только после «пуш». Перед CT: scripts/fix-rebar-unit-symlink.sh; logs/data: scripts/wsl-ext4-dirs.sh Задача: EventHubBack#24 — <краткая цель> @@ -146,7 +155,7 @@ Issue: https://git.sabilin.com/EventHub/EventHubBack/issues/24 ### Минимальный вариант (одной строкой) -> Берём EventHubBack#24. WORKFLOW.md. WSL, git через scripts/. Варианты — потом утверждение. Пуш — только когда скажу. +> Берём EventHubBack#24. WORKFLOW.md. WSL, git через ~/.cursor/eventhub/. Варианты — потом утверждение. Пуш — только когда скажу. ### Что не передавать @@ -175,7 +184,7 @@ Issue: https://git.sabilin.com/EventHub/EventHubBack/issues/24 - Код фичи — в репозитории-владельце; `EventHubSpec` — для документации и процесса. - Метки во всех репозиториях держать одинаковыми (`sync-labels.ps1`). - Секреты и токены не коммитить; Gitea token — только в env / `~/.cursor/secrets/`. -- **Git commit — через WSL** (`scripts/git-commit.sh`); **push — только после подтверждения пользователя** (см. §2.1). +- **Git commit/push — через WSL** (`~/.cursor/eventhub/git-commit.sh`, `git-push.sh`); **push — только после подтверждения пользователя** (см. §2.1). - Новая задача — **отдельный чат** с брифом по §5. --- @@ -184,6 +193,7 @@ Issue: https://git.sabilin.com/EventHub/EventHubBack/issues/24 | Дата | Изменение | |------|-----------| +| 2026-07-07 | Git-скрипты Agent перенесены в `~/.cursor/eventhub/` (не в репозиториях) | | 2026-07-07 | §5: шаблон передачи контекста в новый чат | | 2026-07-07 | Push на remote — только после подтверждения пользователя | | 2026-07-07 | §2.1: WSL, git-коммиты через `scripts/git-commit.sh` | diff --git a/scripts/git-commit.sh b/scripts/git-commit.sh deleted file mode 100644 index b048489..0000000 --- a/scripts/git-commit.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/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 diff --git a/scripts/git-push.sh b/scripts/git-push.sh deleted file mode 100644 index 6355872..0000000 --- a/scripts/git-push.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -# Push master to origin using Gitea token from secrets (no token in shell command line). -set -euo pipefail - -SECRETS="/mnt/c/Users/alexc/.cursor/secrets/eventhub-gitea.env" -if [ ! -f "$SECRETS" ]; then - echo "Missing $SECRETS — run eventhub-gitea setup-env.ps1" >&2 - exit 1 -fi - -set -a -# shellcheck disable=SC1090 -source <(sed $'s/\xEF\xBB\xBF//' "$SECRETS" | tr -d '\r') -set +a - -: "${GITEA_TOKEN:?GITEA_TOKEN not set}" -: "${GITEA_USER:=cursor-ai}" - -REPO_ROOT=$(cd "$(dirname "$0")/.." && pwd) -REMOTE_NAME=$(basename "$REPO_ROOT") -PUSH_URL="https://${GITEA_USER}:${GITEA_TOKEN}@git.sabilin.com/EventHub/${REMOTE_NAME}.git" - -cd "$REPO_ROOT" -git push "$PUSH_URL" master -echo "Pushed EventHub/${REMOTE_NAME} master"