Skip to content

Commit a5ec15e

Browse files
committed
docs(devlog): fold integration audit blockers into plan
1 parent ce30d71 commit a5ec15e

1 file changed

Lines changed: 39 additions & 22 deletions

File tree

devlog/_plan/260725_bug_sweep/070_dev_integration_and_issue_closure.md

Lines changed: 39 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
- **Non-goals:** #418, #417, #241, #420/#430, #435/#436, GUI enhancement, 릴리스와 `main`
1111
승격은 건드리지 않는다. #433의 CLI escape hatch와 GUI 가시화도 이번 종료 근거에 포함하지
1212
않는다.
13-
- **Verifier:** `git merge-tree --write-tree`, rebase 뒤 focused tests, `bun run typecheck`,
14-
`bun run test`, `bun run privacy:scan`, 원격 `dev` SHA 대조, GitHub issue/PR 상태 재조회.
13+
- **Verifier:** `git merge-tree --write-tree`, rebase 뒤 focused tests와 `bun run prepush`,
14+
exact-SHA Cross-platform CI·Service lifecycle, 원격 `dev` SHA 대조, GitHub issue/PR 상태 재조회.
1515
- **Stop condition:** local `dev``origin/dev`가 같은 통합 SHA를 가리키고, #433/#432/#422/
1616
#373/#404가 근거 코멘트와 함께 closed이며, 대체되는 열린 PR만 닫혀 있다.
1717
- **Memory artifact:** 이 문서 하단의 실행 영수증과 WP6 검증 기록.
@@ -28,22 +28,22 @@
2828
- fetch 뒤 `origin/dev`: `9b37ef5a926388e7570bd819512ac3dbc8ae18e5`
2929
- local `dev``origin/dev`보다 1커밋 앞서며, `dev` 워크트리에는 사용자 소유
3030
`devlog/_plan/.DS_Store` 수정이 있다. 이 파일은 stage, restore, commit하지 않는다.
31-
- merge-base 이후 local `dev`의 41개 커밋과 스윕의 14개 커밋은 변경 파일 교집합이 없고,
32-
`git merge-tree --write-tree dev codex/260725-bug-sweep`가 tree
33-
`964c0433f05fee1325cf284639eb9d0547eb0277`를 생성했다.
31+
- merge-base 이후 local `dev`의 41개 커밋과 계획·감사반영 커밋을 포함한 스윕의 16개 커밋은 변경 파일
32+
교집합이 없다. `git merge-tree --write-tree dev codex/260725-bug-sweep` 결과는 계획 문서를
33+
고칠 때마다 바뀌므로 rebase 직전에 실행해 영수증에 기록한다.
3434

3535
## 변경 계약
3636

3737
### 1. 스윕 브랜치 재배치
3838

3939
```diff
40-
- codex/260725-bug-sweep: <옛 merge-base> + 14 commits
41-
+ codex/260725-bug-sweep: local dev@f0db9188 + 같은 14개 논리 커밋
40+
- codex/260725-bug-sweep: <옛 merge-base> + 16 commits
41+
+ codex/260725-bug-sweep: local dev@f0db9188 + 같은 16개 논리 커밋
4242
```
4343

4444
- 현재 clean 워크트리에서 `git rebase dev`를 실행한다.
4545
- 충돌이 생기면 자동 해석하지 않고 파일별로 local `dev`와 스윕 의도를 대조한다.
46-
- 재배치 뒤 `dev..codex/260725-bug-sweep`가 정확히 스윕 커밋 14개인지 확인한다.
46+
- 재배치 뒤 `dev..codex/260725-bug-sweep`가 정확히 스윕 커밋 16개인지 확인한다.
4747

4848
### 2. 검증
4949

@@ -54,19 +54,21 @@ bun test tests/codex-routing.test.ts tests/service.test.ts \
5454
tests/responses-compaction-routing.test.ts tests/cursor-blob.test.ts \
5555
tests/cursor-live-transport.test.ts tests/cursor-protobuf-events.test.ts \
5656
tests/adapter-resolve.test.ts tests/config.test.ts \
57-
tests/management-provider-validation.test.ts
57+
tests/management-provider-validation.test.ts tests/codex-auth-context.test.ts \
58+
tests/chat-completions-endpoint.test.ts
5859
```
5960

6061
full gates:
6162

6263
```bash
63-
bun run typecheck
64-
bun run test
65-
bun run privacy:scan
64+
bun run prepush
65+
cd gui && bun test tests && bun run build
6666
```
6767

68-
- full suite의 기존 GUI dependency 실패는 WP6 기준선과 동일한지 다시 확인한다.
69-
- 신규 실패가 있으면 push와 GitHub 종료를 중단한다.
68+
- `prepush`가 요구하는 typecheck, GUI lint, isolated root test, privacy scan이 실패하면 push를
69+
중단한다. conditional React Doctor는 advisory이므로 출력은 기록하되 blocking gate로 과장하지
70+
않는다. GUI test/build는 위 별도 명령으로 검증한다. WP6 기준선은 진단 자료일 뿐 통과 예외가
71+
아니다.
7072

7173
### 3. local dev fast-forward와 push
7274

@@ -77,14 +79,18 @@ bun run privacy:scan
7779

7880
- `/Users/jun/Developer/new/700_projects/opencodex`에서 `git merge --ff-only
7981
codex/260725-bug-sweep`를 실행한다.
80-
- `.DS_Store` 수정이 그대로 남았는지 확인한다.
82+
- fast-forward 전에 `.DS_Store``git hash-object` 값을 기록하고, 작업 뒤 같은 값인지 확인한다.
83+
수정 상태뿐 아니라 내용 해시가 같아야 한다.
8184
- 원격 선행 변경이 없는지 한 번 더 fetch하고 `origin/dev`가 현재 local `dev`의 ancestor인지
8285
확인한 뒤 `git push origin dev`한다. force push는 사용하지 않는다.
83-
- push 뒤 `git ls-remote origin refs/heads/dev`와 local SHA가 같아야 한다.
86+
- 첫 push의 SHA를 `IMPLEMENTATION_SHA`로 기록한다. `git ls-remote origin refs/heads/dev`
87+
local SHA가 같아야 한다.
88+
- `IMPLEMENTATION_SHA`에 대한 `Cross-platform CI``Service lifecycle`이 모두 success가
89+
될 때까지 기다린다. 이전 SHA의 성공이나 로컬 테스트는 이 hosted gate를 대신하지 않는다.
8490

8591
### 4. GitHub 종료 범위
8692

87-
dev push가 확인된 뒤 다음 순서로 처리한다.
93+
`IMPLEMENTATION_SHA`의 두 hosted gate가 성공한 뒤 다음 순서로 처리한다.
8894

8995
| 항목 | 조치 | 근거 |
9096
|---|---|---|
@@ -98,15 +104,26 @@ dev push가 확인된 뒤 다음 순서로 처리한다.
98104
- PR #376 외 다른 열린 PR은 이번 다섯 이슈를 직접 대체하지 않는다.
99105
- #430/#436은 별도 버그를 해결하므로 유지한다. #408은 Windows elevation 문제라 #432
100106
겹치지 않으므로 유지한다.
101-
- 코멘트에는 최종 `dev` SHA와 해당 구현 커밋 SHA, 검증 결과를 넣는다. issue를 먼저 닫아
102-
PR 자동 문구가 문맥을 흐리지 않도록 PR #376은 별도 설명과 함께 닫는다.
107+
- 코멘트에는 `IMPLEMENTATION_SHA`와 해당 구현 커밋 SHA, 검증 결과를 넣는다. 모든 코멘트를
108+
먼저 게시하고 URL을 확인한 뒤 PR #376을 닫고, 마지막으로 이슈 다섯 건을 닫는다.
109+
- #433에는 핵심 pinning 수정만 완료됐고 CLI clear-cooldown과 GUI 가시화는 이번 변경에 없다고
110+
명시한다. #404/#422는 제보자의 live gateway 재검증이 아니라 회귀 계약으로 닫는다고 밝힌다.
111+
- 상태와 URL을 실행 영수증에 기록해 별도 docs-only receipt commit을 만든다. 이
112+
`RECEIPT_SHA`는 스윕 워크트리에서 만든다. local `dev`를 다시
113+
`git merge --ff-only codex/260725-bug-sweep`한 뒤 `dev`를 push하고 `.DS_Store` blob hash가
114+
여전히 같은지 확인한다.
115+
- receipt는 docs-only라 push path filter가 두 hosted workflow를 자동 실행하지 않는다.
116+
`gh workflow run ci.yml --ref dev``gh workflow run service-lifecycle.yml --ref dev`로 둘을
117+
수동 dispatch하고, `RECEIPT_SHA`에 매인 두 run이 success인지 확인한다. 이 두 번째 hosted
118+
gate가 끝나야 이 work-phase를 닫는다.
103119

104120
## 수용 기준
105121

106122
- rebase와 fast-forward가 비강제 방식으로 끝난다.
107-
- 사용자 소유 `.DS_Store` 수정이 보존된다.
108-
- focused tests, typecheck, privacy scan이 0으로 끝나고 full suite가 기준선보다 악화되지 않는다.
109-
- `origin/dev`가 최종 local `dev` SHA와 일치한다.
123+
- 사용자 소유 `.DS_Store`의 전후 blob hash가 같다.
124+
- focused tests, `bun run prepush`, GUI test/build가 0으로 끝난다.
125+
- `IMPLEMENTATION_SHA``RECEIPT_SHA` 각각의 Cross-platform CI·Service lifecycle이 성공한다.
126+
- `origin/dev`가 최종 `RECEIPT_SHA`와 일치한다.
110127
- #433/#432/#422/#373/#404와 PR #376의 최종 상태·코멘트 URL을 이 문서에 기록한다.
111128

112129
## 실행 영수증

0 commit comments

Comments
 (0)