Skip to content

docs(devlog): make CI completion check fail closed (carry #3532) - #3865

Merged
lidge-jun merged 1 commit into
devfrom
codex/rt-m1-3532
Sep 7, 2026
Merged

docs(devlog): make CI completion check fail closed (carry #3532)#3865
lidge-jun merged 1 commit into
devfrom
codex/rt-m1-3532

Conversation

@lidge-jun

@lidge-jun lidge-jun commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Summary

Carries #3532 by @Ingwannu onto current dev: the devlog CI-completion audit instruction now requires complete paginated check evidence and fails closed on partial results. Docs only.

(carried/reimplemented from #3532; Co-authored-by trailer in the commit)

Verification

  • Docs-only layer; no runtime change.
  • Local checks NOT RUN by maintainer instruction; remote CI at the chain top (layer 6) is the evidence.

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs or release notes were updated when needed.
  • Security-sensitive changes were reviewed for secrets, auth, and unsafe defaults.

Manual review chain (integrate bottom-up; stack: null, no native stack)

Layer Branch Base Source
1 codex/rt-m1-3532 dev #3532 (Ingwannu)
2 codex/rt-m2-3840 layer 1 #3840 (chilung-cgu)
3 codex/rt-m3-3837 layer 2 #3837 (luvs01) + test isolation fix
4 codex/rt-m4-3843 layer 3 #3843 (luvs01) + same-delta fix
5 codex/rt-m5-3845 layer 4 #3845 (luvs01)
6 codex/rt-m6-2033 layer 5 #2033 (louis-tepe) reimplemented — chain top

Verification policy (maintainer instruction, this train): local test suite / typecheck / build were NOT RUN; branches pushed with --no-verify. Lower layers carry [skip ci]; the full Cross-platform CI (lane=all, Windows shards included) runs once at the chain top head and is the exact-head evidence for the cumulative tree.

Layer 1 of 6. Review this PR's diff only.

Summary by CodeRabbit

  • Documentation
    • Clarified that runtime post-merge findings and CI lessons are recorded in the audit documentation.
    • Added stricter verification guidance requiring all expected checks to complete successfully, with no pending or non-terminal runs.
    • Documented that missing checks do not count as successful and that expected check names must be kept current.

Maintainer integration decision (MAINTAINERS.md, dev-only admin integration): @lidge-jun integrates this manual chain into dev bottom-up. Exact chain-top evidence: Cross-platform CI run 34106345180 at head 6eadb1658 (lane=all: Linux 4/4, macOS 2/2 + control, Windows 6/6, gates, storage policy, api usage, keyring ×3, npm-global ×3, docker smoke, aggregate ci = success). Tested tree 7621cac89 equals the prospective merge tree of origin/dev@ece556a6e + chain top. Independent chain review PASS; #3845 security review PASS (see #3869). Local suites NOT RUN by maintainer instruction. This is maintainer integration, not self-approval. Lower-layer PR runs are skipped/cancelled by design ([skip ci]); they are not passing evidence on their own.

(cherry picked from commit e5bbd79)

Co-authored-by: Ingwannu <186453546+Ingwannu@users.noreply.github.com>
@lidge-jun
lidge-jun requested a review from Ingwannu as a code owner September 7, 2026 09:24
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 7, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-07T09:30:33.760056Z f1604c6 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Sep 7, 2026
@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Team

Run ID: 1c510e3d-52e2-4638-a5c6-c1121c832d81

📥 Commits

Reviewing files that changed from the base of the PR and between ece556a and f1604c6.

📒 Files selected for processing (2)
  • devlog/_fin/260905_always_on_429_failover/090_outcome.md
  • devlog/_fin/260905_always_on_429_failover/091_post_merge_audit.md

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

The post-merge audit now validates all expected check runs with paginated Checks API data. The outcome document distinguishes runtime findings and CI lessons from other cleanup notes.

Changes

Post-merge audit documentation

Layer / File(s) Summary
Audit verification and outcome record
devlog/_fin/260905_always_on_429_failover/091_post_merge_audit.md, devlog/_fin/260905_always_on_429_failover/090_outcome.md
The audit now requires every expected check name to have a completed success run and rejects missing, pending, or non-terminal runs. The outcome document identifies runtime findings and CI lessons recorded in 091.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to f1604

This change strengthens post-merge CI audit documentation to reject missing, pending, or unsuccessful expected checks and clarifies the recorded findings. It introduces no runtime behavior changes and is ready to merge.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately and specifically summarizes the documentation change: it updates the devlog CI completion check to fail closed and identifies the carried issue.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/rt-m1-3532

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 48 / 80

이 PR은 런타임 코드를 고치는 게 아니라, 이미 끝난 작업 기록(devlog/_fin/260905_always_on_429_failover/) 안의 CI 확인 방법을 더 엄격하게 바꾸는 문서 PR이다. 원본은 @Ingwannu의 #3532이고, 지금 dev(HEAD ece556a6e, package 2.47.0, 방금 #3854 code-mode host contract까지 올라간 상태) 위에 메인터가 다시 올린 carry다. 제목의 carry #3532와 커밋의 Co-authored-by가 그 뜻을 그대로 말해 준다.

왜 이게 중요한가. 예전 문서 규칙은 “check-runs를 보고 conclusion이 null이 아닌지만 세자”에 가까웠다. 그런데 #3523을 머지할 때 gh pr checks가 아직 큐에 남은 잡이 있는데도 일부만 초록으로 보여서, 부분 결과를 완전한 초록처럼 읽은 적이 있다. 그다음에 dev에서 보이는 ci failure도 실제 실패가 아니라 다음 머지로 인한 cancelled였다. 즉 “몇 개가 통과했는가”만 보면 머지 직전에 아직 안 끝난 잡, 취소된 잡, 아예 안 뜬 잡을 놓친다. 이번 문서는 그걸 “정확한 head SHA + 이름으로 기대하는 게이트가 전부 success + 아직 안 끝난 체크가 0개 + 페이지네이션으로 목록을 끝까지”로 바꾼다. 실패하면 조용히 넘어가지 않고 error(...)로 끝난다. 이게 fail closed다.

현재 dev와 맞춰 보면, PR 안의 $expected 목록 ci, enforce-target, hygiene, react-doctor는 실제 Checks API 이름과 맞다. 최근 머지된 #3854 쪽 PR 체크에도 같은 이름이 보인다. 워크플로 파일도 .github/workflows/ci.yml(집계 job ci), enforce-pr-target.yml, pr-hygiene.yml, react-doctor.yml로 존재한다. 다만 이 이름들은 PR 이벤트에 붙는 게이트라서, dev에 직접 푸시한 커밋의 check-runs만 보면 gates/test N/4 같은 Cross-platform CI 쪽만 보일 수 있다. 문서가 “workflow 제목이 아니라 check-run .name을 보라”고 못 박은 점은 맞고, 목록이 바뀌면 문서도 같이 고치라고 한 주의도 맞다.

이 PR은 6층 릴리스 트레인(codex/rt-m1-3532codex/rt-m6-2033)의 맨 아래 층이다. 본문 정책대로 아래 층은 [skip ci]이고, 전체 Cross-platform CI는 체인 꼭대기에서 한 번 돌린다. 그래서 이 PR 자체에는 런타임 증거 요구가 없다. 문서만 보고, #3532와 diff가 같은지만 보면 된다. types.ts/config.ts 분할 캠페인과도 무관해서 close-don't-rebase 대상이 아니다.

라인 70-71 - 옛 규칙(“null conclusion만 없애면 됨”)을 지우고, 기대 게이트 이름 + non-terminal 0개 + --paginate로 바꾼 핵심 문장이다. 방향은 맞다.
라인 74-94 - 예시 jq가 missingpending을 나눠 실패한다. 부분 초록을 성공으로 읽던 #3523 사고를 직접 막는다.
경로 $expected 목록 - ci/enforce-target/hygiene/react-doctor는 현재 PR 체크 이름과 일치한다. 다만 이 레시피를 dev 푸시 커밋에 그대로 돌리면 PR 전용 게이트가 없어 missing이 날 수 있다. 문서가 “정책 목록을 최신으로 유지하라”고 한 이유를 리뷰어가 한 번 더 확인하면 좋다.
경로 090_outcome.md - 091이 런타임 사후 발견 + CI 교훈을 담는다고 한 줄만 고친 정리라서 문제 없다.
경로 원본 #3532 - 아직 OPEN이다. 이 carry가 머지되면 leftover로 Landed via #3865(또는 체인 랜딩 PR) 코멘트 후 landed-via-maintainer로 닫는 절차가 남는다.

메인테이너의 판단이 필요한 지점

너의 추천
문서-only이고 #3532와 같은 내용이며, fail-closed 방향이 현재 dev의 머지 규율과 맞다. 이 층의 diff만 보면 머지해도 된다. 머지 후(또는 체인 랜딩 후) 원본 #3532는 Landed via #<landing> + landed-via-maintainer로 닫아라. 런타임/타입 분할과 무관하니 리베이스 길게 끌 이유 없다. 위 층(m2~m6) 리뷰는 각 PR diff만 따로 보면 된다.

이 댓글은 grok-bot이 작성했습니다

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f1604c6b26

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +80 to +84
| ($expected - [
$runs[]
| select(.status == "completed" and .conclusion == "success")
| .name
]) as $missing

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Require the newest result for each expected check

When a gate reruns without changing the head SHA, this can report ready: true after the newest run fails: .github/workflows/enforce-pr-target.yml routinely reruns enforce-target for edits, labels, and CodeRabbit status events, but $missing is satisfied by any older successful run with that name, while the completed failure is excluded from $pending. Select the newest run for each required name—ideally scoped to the expected app/workflow—and require that specific run to have completed successfully before emitting readiness. Repository policy requires exact-head CI evidence, so a stale success from an earlier attempt cannot authorize integration.

AGENTS.md reference: AGENTS.md:L335-L338

Useful? React with 👍 / 👎.

@lidge-jun
lidge-jun merged commit 7f2fb92 into dev Sep 7, 2026
10 of 11 checks passed
@lidge-jun
lidge-jun deleted the codex/rt-m1-3532 branch September 7, 2026 10:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants