Skip to content

chore(ci): preserve generated concurrency proposal under canonical owners - #1624

Draft
seonghobae wants to merge 7 commits into
developfrom
autoresearch/concurrency-standard-0909
Draft

chore(ci): preserve generated concurrency proposal under canonical owners#1624
seonghobae wants to merge 7 commits into
developfrom
autoresearch/concurrency-standard-0909

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Current authority — 2026-09-09

  • protected base: develop@042b0c70531b229af3acbd0421a2f23098d848b3
  • generated predecessor: aeaff9730c8387c5ded10b25576c1c89cd798231
  • exact head: e17e87a51f364147a431a4f31b6230f62f71a692
  • lifecycle: provenance-only / zero effective delta against protected develop / canonical CI and dependency owners retain execution authority / do not merge
  • current compare: ahead 7 / behind 0 / 0 effective files

Why the generated source is not an active CI owner

The generated lineage changed seven workflow surfaces plus frontend dependency manifests in one PR. Those surfaces already have active, narrower owner lanes with stronger invariants:

The original claim that seven local workflows could be normalized to one {workflow}-{repository}-{PR} pattern is therefore too coarse. Cancellation generation, bounded pending queues, manual reruns, publication atomicity and destination-specific side effects are domain-specific invariants, not one uniform string-format concern.

Non-force ownership repair

Ordinary two-parent commit e17e87a51f364147a431a4f31b6230f62f71a692 preserves generated predecessor aeaff973... as first-parent provenance, adopts protected develop@042b0c... as the second parent, and points to protected tree 8fde14381aaa430eeaaf61151dab6f6800127cd3. The branch advanced with force=false; no destructive rebase or history deletion occurred.

Fresh protected-base comparison is ahead-only with zero changed files. The generated hypotheses remain in ancestry for each canonical owner to evaluate, but this PR no longer competes for workflow, dependency, lockfile or release-governance source ownership.

Succession boundary

Do not merge this provenance PR. Keep it open as provenance until the canonical owner lanes above normally integrate or explicitly reject the corresponding hypotheses, and a protected-tree audit proves every valid concurrency/security intent is either inherited or deliberately rejected with evidence. Only then may zero-delta closure be justified as complete succession/rejection.

Historical checks/reviews from aeaff973... do not transfer to e17e87a...; this zero-delta provenance head is not an alternate merge candidate.

No force-push, destructive rebase, self-approval, dummy/no-op requeue, synthetic status, competing workflow/dependency source write, review fabrication/dismissal, admin bypass, central-workflow copy, authorization widening, or gate weakening.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 9, 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-09T04:16:42.760992Z aeaff97 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.

@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 46 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: e0083f93-04ac-429c-9537-f28efbf1089b

📥 Commits

Reviewing files that changed from the base of the PR and between 042b0c7 and aeaff97.

⛔ Files ignored due to path filters (1)
  • frontend/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (9)
  • .github/workflows/app-ci.yml
  • .github/workflows/bandit.yml
  • .github/workflows/dependency-review.yml
  • .github/workflows/deploy.yml
  • .github/workflows/docker-publish.yml
  • .github/workflows/mail-smoke.yml
  • .github/workflows/pr-governance.yml
  • frontend/package.json
  • frontend/pnpm-workspace.yaml

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.

@seonghobae seonghobae changed the title fix(ci): 워크플로우 concurrency를 {workflow}-{repository}-{PR번호} 표준으로 통일 chore(ci): preserve generated concurrency proposal under canonical owners Sep 9, 2026
@seonghobae
seonghobae marked this pull request as draft September 9, 2026 04:15

@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: aeaff9730c

ℹ️ 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 thread .github/workflows/docker-publish.yml Outdated
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
# 릴리스 발행은 취소하지 않고 직렬화한다. 태그별 독립 큐.
concurrency:
group: docker-publish-release-${{ github.repository }}-${{ github.ref }}

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 Remove shared concurrency from the release matrix

On every tag release, all three publish_images matrix children resolve this job-level group to the same value. GitHub retains at most one running and one pending item per concurrency group, replacing an existing pending item when another is queued even when cancel-in-progress is false (GitHub concurrency documentation); while the first image builds, a later matrix child can therefore cancel another, leaving at least one of backend, naruon, or frontend unpublished and preventing the dependent deployment path from proceeding. Remove this job-level concurrency block because the workflow-level group already scopes the release run.

Useful? React with 👍 / 👎.

Comment thread .github/workflows/mail-smoke.yml Outdated
Comment on lines +11 to +12
group: mail-smoke-${{ github.repository }}
cancel-in-progress: false

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Avoid dropping queued manual smoke runs

When three manual smoke dispatches overlap, this shared group keeps the active run and only the newest pending run; GitHub cancels the previously pending run despite cancel-in-progress: false (GitHub concurrency documentation). That contradicts the stated no-cancellation behavior and discards a requested smoke execution, so rely on the self-hosted runner's queue or use a queueing mechanism that preserves every dispatch.

Useful? React with 👍 / 👎.

Comment thread .github/workflows/docker-publish.yml Outdated
Comment on lines +18 to +19
group: docker-publish-${{ github.repository }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Do not cancel in-progress tag releases

If another workflow run for the same tag/ref starts while a release is active—for example, after correcting and re-pushing a tag—this workflow-level cancel-in-progress: true cancels the older run before the job-level false setting can protect publish_images (GitHub concurrency documentation). Because cancellation can occur after only some component images were pushed, the registry can be left with a partial release; make cancellation conditional on pull-request events or use separate workflow-level policies for validation and publishing.

Useful? React with 👍 / 👎.

@seonghobae

Copy link
Copy Markdown
Contributor Author

검증 보고 (자율 루프)

  • 실패 0건, 대기 중 검사는 큐 적체로 순차 실행 중.
  • 항목 18 토큰 형식 공지: 로컬·중앙 모두 ghs 길이 하드코딩 없음. 유일한 토큰 길이 상한은 세션 쿠키 4096자이며 신규 형식 약 520자와 무관. 검증 완결.
  • 항목 15 org-queue-sweep: 중앙 워크플로우에 존재하지 않음. 잔여 스케줄러 4종은 목적별 정당. 제거 대상 없음으로 검증 완결.

@seonghobae

Copy link
Copy Markdown
Contributor Author

실패 분석 (자율 루프)

  • trivy-fs: 체크아웃 정합성 불일치로 실패. 동시성 변경과 무관한 일시적 문제로 판단하고 해당 잡을 재실행했음.
  • CodeQL actions: 디스패치 후 verdict 게시 시 자동 재실행되는 정상 흐름의 일부. 개입 없이 대기.
  • noema-review 통과 확인.

@seonghobae

Copy link
Copy Markdown
Contributor Author

정정 (자율 루프)

  • trivy 실패 잡은 개별 재실행 불가(job cannot be rerun) 확인. 전체 run 재실행은 큐 적체를 악화시키므로 보류.
  • 실패 원인(expected SHA와 실제 체크아웃 SHA 불일치)은 동시성 변경과 무관한 외부 정합성 문제로 판단. 다음 푸시 또는 스케줄 재실행 시 해소 여부 재확인 예정.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant