From 2a8e7d933569720da4ffb6beaa731c5dbdb99c0e Mon Sep 17 00:00:00 2001 From: su-record Date: Tue, 4 Aug 2026 06:07:24 +0000 Subject: [PATCH 1/2] 3.2.18 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 03193f2..4329791 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@su-record/vibe", - "version": "3.2.17", + "version": "3.2.18", "description": "AI Coding Framework for Claude Code — 7+ agents, 52 skills, multi-LLM orchestration", "type": "module", "main": "dist/cli/index.js", From 924fccfb80690595d523060e0fa4bff6d95971d2 Mon Sep 17 00:00:00 2001 From: su-record Date: Tue, 4 Aug 2026 06:08:45 +0000 Subject: [PATCH 2/2] =?UTF-8?q?fix(release):=20=EC=B2=B4=ED=81=AC=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=20=EC=A0=84=20--watch=20=EA=B0=80=20?= =?UTF-8?q?=EC=A6=89=EC=8B=9C=20=EC=8B=A4=ED=8C=A8=ED=95=98=EB=8A=94=20?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=8A=A4=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v3.2.18 첫 실주행에서 `gh pr checks --watch` 가 "no checks reported on the 'release/v3.2.18' branch" 로 즉시 죽었다. PR 생성과 워크플로 등록 사이에 수 초의 간격이 있는데 `--watch` 는 체크가 하나도 없으면 기다리지 않고 실패한다. 등록될 때까지(최대 5분) 폴링한 뒤 watch 한다. 계약 테스트 REQ-release-flow-006 이 폴링이 watch 앞에 오는 순서를 고정한다. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01J5idecfzZnceLmL2KYW2rG --- scripts/release.sh | 7 +++++++ src/tests/curated-release-notes.test.ts | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/scripts/release.sh b/scripts/release.sh index e1d67c6..4147570 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -37,6 +37,13 @@ gh pr create --base main --head "$BRANCH" --title "$VERSION" \ --body "Release ${TAG}. 버전 범프만 포함한다 — 릴리스 절차는 scripts/release.sh 참조." echo "▶ 필수 체크 대기 중 (Build (type-check) · Tests)" +# `--watch` 는 체크가 아직 하나도 등록되지 않았으면 즉시 실패한다 +# ("no checks reported on the ... branch"). PR 생성과 워크플로 등록 사이에 +# 수 초의 간격이 있으므로, 등록될 때까지 먼저 기다린다. +for _ in $(seq 1 60); do + [ "$(gh pr checks "$BRANCH" --json name -q 'length' 2>/dev/null || echo 0)" -gt 0 ] && break + sleep 5 +done gh pr checks "$BRANCH" --watch --fail-fast gh pr merge "$BRANCH" --squash --delete-branch diff --git a/src/tests/curated-release-notes.test.ts b/src/tests/curated-release-notes.test.ts index fb166d6..fd403de 100644 --- a/src/tests/curated-release-notes.test.ts +++ b/src/tests/curated-release-notes.test.ts @@ -178,6 +178,17 @@ describe('release procedure respects branch protection', () => { expect(script.indexOf('gh pr checks')).toBeLessThan(script.indexOf('gh pr merge')); }); + /** + * v3.2.18 첫 실주행에서 `--watch` 가 "no checks reported on the + * 'release/v3.2.18' branch" 로 즉시 실패했다 — PR 생성과 워크플로 등록 사이의 + * 레이스다. 등록을 먼저 기다리지 않으면 매 릴리스가 같은 지점에서 끊긴다. + */ + it('REQ-release-flow-006 체크가 등록될 때까지 기다린 뒤 watch 한다', () => { + expect(executable).toMatch(/gh pr checks "\$BRANCH" --json name -q 'length'/); + expect(executable.indexOf("--json name -q 'length'")) + .toBeLessThan(executable.indexOf('--watch')); + }); + it('REQ-release-flow-004 병합 후 태그를 붙여 Release 워크플로를 발동한다', () => { expect(script).toMatch(/git tag -a "\$TAG"/); expect(script).toMatch(/git push -q origin "\$TAG"/);