From 8a39c2857209127e8dfa114766f8dd31ad5d99bf Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Fri, 16 Oct 2026 13:45:30 +0400 Subject: [PATCH 1/2] =?UTF-8?q?fix(scripts):=20sync-web=20=E2=80=94=20?= =?UTF-8?q?=D1=84=D0=BB=D0=B0=D0=B3=D0=B8=20tea=20=D0=BF=D0=BE=D1=81=D0=BB?= =?UTF-8?q?=D0=B5=20=D0=BF=D0=BE=D0=B4=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4?= =?UTF-8?q?=D1=8B=20(tea=200.16)=20(#110)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit tea 0.16.0 не принимает --login/--repo перед подкомандой: «flag provided but not defined: -login» — sync-web падал сразу после создания worktree, issue и PR в arm-core не создавались. Флаги вынесены в TEA_FLAGS и передаются после «issues create» / «pulls create»; подсказка ручного создания PR — с --login/--repo/--base. В test_sync_web.sh — проверка, что ни один вызов tea в sync-web.sh и prepare-contour-snapshot.sh не начинается с флага. Co-Authored-By: Claude Opus 5.5 --- scripts/sync-web.sh | 9 +++++---- scripts/test_sync_web.sh | 6 ++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/scripts/sync-web.sh b/scripts/sync-web.sh index 0a0652d..0a982be 100755 --- a/scripts/sync-web.sh +++ b/scripts/sync-web.sh @@ -112,7 +112,8 @@ touch "$WT/.bounded" echo "worktree: $WT ($TMP_BRANCH от $CORE_REF)" # --- 3. Issue и ветка (не в dry-run) --------------------------------------------------------------------------------- -TEA=(tea --login home --repo RSHB/arm-core) +# tea 0.16+ принимает --login/--repo только после подкоманды: tea issues create --login … (arm-ka-docs#110) +TEA_FLAGS=(--login home --repo RSHB/arm-core) ISSUE="" BRANCH="$TMP_BRANCH" if [ "$MODE" = sync ]; then @@ -123,7 +124,7 @@ $(printf '%s\n' "$COMMITS" | sed 's/^/- /') Bounded-задача, выполнена \`docs/scripts/sync-web.sh\`: перенос набора синхронизации ($N_FILES файлов) в \`web/\`, проверки vitest / tsc / biome / build, PR в main. Ревью перенесённого кода против бэкенда — за исполнителем." - ISSUE_URL=$("${TEA[@]}" issues create --title "$TITLE" --description "$BODY" | grep -o 'https://[^ ]*/issues/[0-9]*' | tail -1) + ISSUE_URL=$(tea issues create "${TEA_FLAGS[@]}" --title "$TITLE" --description "$BODY" | grep -o 'https://[^ ]*/issues/[0-9]*' | tail -1) ISSUE=${ISSUE_URL##*/} [ -n "$ISSUE" ] || die "не удалось создать issue через tea" BRANCH="feat/$ISSUE-web-sync-$HEAD7" @@ -207,12 +208,12 @@ $(printf '%s\n' "$FILES" | sed 's/^/- web\//') Ревью перенесённого кода против бэкенда — за исполнителем, находки с маркерами в комментариях к PR. 🤖 Generated with [Claude Code](https://claude.com/claude-code)" -PR_URL=$("${TEA[@]}" pulls create --head "$BRANCH" --base "${CORE_REF#origin/}" --title "fix(web): синхронизация встроенного фронта с arm-web@${REF#origin/} ($HEAD7) (#$ISSUE)" \ +PR_URL=$(tea pulls create "${TEA_FLAGS[@]}" --head "$BRANCH" --base "${CORE_REF#origin/}" --title "fix(web): синхронизация встроенного фронта с arm-web@${REF#origin/} ($HEAD7) (#$ISSUE)" \ --description "$PR_BODY" | grep -o 'https://[^ ]*/pulls/[0-9]*' | tail -1) echo echo "готово: коммит $COMMIT, ветка $BRANCH" echo "issue: $ISSUE_URL" -echo "PR: ${PR_URL:-создать вручную: tea pulls create --head $BRANCH}" +echo "PR: ${PR_URL:-создать вручную: tea pulls create ${TEA_FLAGS[*]} --head $BRANCH --base ${CORE_REF#origin/}}" echo "исполнителю: проверить перенесённый код против бэкенда (коммиты arm-web выше), затем — merge и «закрывай»." echo "worktree $WT, симлинк web/node_modules и .bounded остаются до закрытия." diff --git a/scripts/test_sync_web.sh b/scripts/test_sync_web.sh index 6095934..1f7e330 100755 --- a/scripts/test_sync_web.sh +++ b/scripts/test_sync_web.sh @@ -123,5 +123,11 @@ rc=0; out=$("$SNAPSHOT" "$CORE" "$WORK/out6" origin/main &1) || rc= check "$([ "$rc" != 0 ] && [ ! -d "$WORK/out6/arm-core" ] && echo 0 || echo 1)" "пайплайн при расхождении: снимок не делается (rc=$rc)" unset ARM_WEB +# --- 6. вызовы tea: флаги после подкоманды --------------------------------------------------------------------------- +# tea 0.16 не принимает --login/--repo перед подкомандой («flag provided but not defined: -login», arm-ka-docs#110); +# сам tea тест не вызывает (нет сети), поэтому проверяется текст скриптов +bad=$(grep -nE '(^|[^[:alnum:]_-])tea[[:space:]]+-' "$SYNC" "$SNAPSHOT" || true) +check "$([ -z "$bad" ] && echo 0 || echo 1)" "tea: флаги идут после подкоманды${bad:+ — нарушения: $bad}" + [ "$fail" = 0 ] || exit 1 echo "ok: sync-web.sh — точка синхронизации, перенос набора, отказ при расхождении, пайплайн переноса" From 4475d018cb3d0c199371694f5b350ddb632bb574 Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Fri, 16 Oct 2026 13:47:13 +0400 Subject: [PATCH 2/2] =?UTF-8?q?fix(scripts):=20sync-web=20=E2=80=94=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D0=B8=D1=81=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=20=D0=B8=D0=B3=D0=BD=D0=BE=D1=80=D0=B8=D1=80=D1=83=D0=B5?= =?UTF-8?q?=D0=BC=D1=8B=D0=B9=20web/dist=20=D0=B2=20git=20add=20(#110)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git 2.50 на явно названный в pathspec игнорируемый путь (':!web/dist') печатает «paths are ignored» и возвращает 1 — sync-web останавливался после проверок, до коммита и PR (issue arm-core #115 создана, PR не было). web/dist и так игнорируется .gitignore arm-core; исключение симлинка node_modules оставлено (.gitignore его не ловит). Co-Authored-By: Claude Opus 5.5 --- scripts/sync-web.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/sync-web.sh b/scripts/sync-web.sh index 0a982be..0a32f17 100755 --- a/scripts/sync-web.sh +++ b/scripts/sync-web.sh @@ -175,7 +175,9 @@ run_check build npm run build echo "проверки: $TESTS; tsc чисто; biome $W_NEW предупреждений (на $CORE_REF — $W_MAIN); build ок" # --- 6. Коммит, push, PR ------------------------------------------------------------------------------------------- -git -C "$WT" add -A web -- ':!web/node_modules' ':!web/dist' +# web/dist игнорируется .gitignore arm-core; исключать его pathspec'ом нельзя — git 2.50 на явно названный +# игнорируемый путь отвечает «paths are ignored» и кодом 1 (arm-ka-docs#110). Симлинк node_modules .gitignore не ловит. +git -C "$WT" add -A web -- ':!web/node_modules' git -C "$WT" -c commit.gpgsign=false commit -q -F - <