Repository navigation
[Fix] 실패한 topology 갱신 run이 자기 빈 claim을 같은 run에서 정리해 전국 후보 갱신 대기를 막지 않도록 수정 - #1065
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
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. Comment |
AquilaXk
left a comment
There was a problem hiding this comment.
Actionable comments posted: 2
🎯 Linked issue & acceptance criteria audit
- Linked issue: #1064
[Fix] 반복 실패하는 topology 갱신이 남긴 빈 claim이 전국 후보 갱신을 매 주기 막지 않도록 같은 run에서 정리 - Goal summary: Failed topology runs remove their own empty claim so candidate refresh is not blocked
- Acceptance criteria verified: 4/4
| ID | Acceptance criterion | Status | Evidence |
|---|---|---|---|
| AC1 | Failed run removes its own empty claim only after the failure report | PASS | tools/ci/remove-orphan-claims.mjs; report precedes git push in the own-run test |
| AC2 | Keep claims with output, PR, other title, publishing workflow or other run | PASS | tools/ci/remove-orphan-claims.test.mjs; counterexample tests refuse every shape |
| AC3 | Record the removal in the run log and step summary | PASS | tools/ci/remove-orphan-claims.mjs; recordRemoval writes notice and summary |
| AC4 | Do not delete when the report fails | PASS | tools/ci/remove-orphan-claims.test.mjs; failing report test sees no push |
🛡️ Adversarial audit evidence
- Falsifiability verified: Yes (Safety guards killed by tests; one reporting-only survivor is reported as F2)
- Hollow assertions detected: 0
- Production backdoors detected: 0
- Ground-truth sources verified:
tools/ci/claim-orphans.mjs classification rules and CLAIM_OWNERS tabletools/ci/report-refresh-failure.mjs report contract
🤖 Prompt for all review comments with AI agents
Could we verify each finding against the current code and keep only those that
still apply? Could we make the smallest validated fix and briefly note why any
finding no longer applies?
Inline comments:
- `@tools/ci/remove-orphan-claims.mjs:81-87`
Could the claim step export the claim commit sha, and could self mode require
the ls-remote sha to equal it so the lease binds to the empty claim itself?
- `@tools/ci/remove-orphan-claims.mjs:124-124`
Could the reused-claim test assert the exact report input, including orphan,
so the AND to OR mutant turns RED?
---
Outside diff comments:
None.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository CLAUDE.md rules, PR 1065 text and linked issue 1064, applied by aquila-review
Review profile: ASSERTIVE
Plan: Aquila fallback
Run ID: N/A (Aquila fallback)
Review source: Aquila CLI
Repository visibility: public GitHub repository
Trigger:
Manual discovery review of a self-authored grade-A CI workflow PR
Base:
main@ad1455fb06ca72d8fbfce928a6e9a0478b3398a9
Head:
fix/release-own-empty-topology-claim-1064@351cdb3780d8449494197f56746cff5b01838512
Command:
aquila-review discovery for easysubway-data PR 1065
📥 Commits
Reviewing files changed in this pull request between:
- Base:
ad1455fb06ca72d8fbfce928a6e9a0478b3398a9 - Head:
351cdb3780d8449494197f56746cff5b01838512
📒 Files selected for processing (4)
.github/workflows/current-capital-topology-refresh.ymltools/ci/current-capital-topology-refresh-workflow.test.mjstools/ci/remove-orphan-claims.mjstools/ci/remove-orphan-claims.test.mjs
📜 Review details
|
No description provided. |
|
No description provided. |
|



Related issue
Closes #1064
Refs #870, #964
Summary
BLOCKED_BY_PENDING_PR로 끝날 수 있다(마지막 판정 02:29Z).Changes
tools/ci/remove-orphan-claims.mjs:--self-run-id <run id>를 추가했다. claim을 만든 run이 자기 run이면failure()step이 부르는 것을 근거로 끝난 failure run으로 본다.publicationSteps: null, 현재 topology 갱신)에서만 쓴다. 게시하는 workflow는CLAIM_ORPHAN_REMOVE_REFUSED..github/workflows/current-capital-topology-refresh.yml: 실패 보고 step 바로 앞에 "Remove this failed run's empty topology claim" step을 추가했다(failure() && env.TOPOLOGY_BRANCH != ''). 실패 보고 step은 계속 마지막이라 새 step의 실패도 보고된다.claim-orphans.mjs(#995) 의미와의 대응EMPTY_CLAIM_NO_PUBLICATION), 다음 실행이 보고 후 삭제Scope
Included
Excluded
ledger-writers-idle의 대기 의미 변경 없음(다른 원장 writer에도 영향이 가는 공유 의미라 건드리지 않았다)Ownership / dependencies
Contract & Compatibility
--self-run-id는 선택 인자다. 다른 workflow 호출은 그대로다.Version impact
Product gate impact
Provenance impact
Version decision
Verification
remove-orphan-claims.test.mjs5건·workflow 계약 2건 실패. GREEN: 34건·11건 통과node --test tools/ci/*.test.mjs: 907건 중 906 통과, 1건 실패(stageLocalMobileFixture)는 main(ad1455f)에서도 같은 로컬 실패다actionlint .github/workflows/current-capital-topology-refresh.yml: 출력 없음Not run
Orphan claim removed)로 확인한다.