Skip to content

feat(ops): audit and safely disable orphaned Actions identities - #497

Open
seonghobae wants to merge 47 commits into
developfrom
feat/workflow-registry-audit-478
Open

feat(ops): audit and safely disable orphaned Actions identities#497
seonghobae wants to merge 47 commits into
developfrom
feat/workflow-registry-audit-478

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Buyer and operator impact

ScopeWeave has a bounded control-plane path from proof to authorized remediation for stale GitHub Actions registry identities. Deleting workflow YAML is not enough: the read-only detector reconciles a live Actions-registry observation against one unchanged protected develop tree, and the separate operator command can disable only an explicitly reviewed subset of exact workflow IDs after fresh fail-closed checks.

This remains a bounded executable slice of #478. It does not claim that live orphan identities have already been disabled or that #478 is closed.

Exact current identity

  • protected live base: develop@2c328875e00e86537df3e965170be80532571cad;
  • exact contributor head: 9d23bbf5768f41542f3b3c5eac75d17220b0dcf0;
  • branch: feat/workflow-registry-audit-478;
  • Ready/non-Draft and mechanically mergeable at the latest fresh refetch;
  • current head message: fix(ops): bound GitHub registry audit reads;
  • current review threads are either addressed or informational; no unresolved thread currently demonstrates a correctness/security defect; and
  • no qualifying independent current-head/last-push approval exists.

Any contributor-head, protected-base, review, required-gate, or workflow-registry movement invalidates revision-sensitive evidence until freshly reconciled.

Read-only and authorized-cleanup contract

The audit:

  • paginates and validates the full workflow registry, including unique workflow IDs;
  • treats unknown future workflow states as unresolved rather than guessing inactive/active semantics;
  • resolves an absent protected .github/workflows directory through immutable commit/tree evidence instead of trusting an ambiguous Contents 404;
  • preserves exact case-sensitive path identities and fails closed on unresolved records;
  • retries only bounded transient provider failures; and
  • now bounds every GitHub read request with a 10-second AbortSignal.timeout(...), preventing the read-only registry audit from hanging indefinitely on a stalled provider request.

The registry itself is a live control-plane read and is not commit-addressable; the protected-tree side is SHA-bound, and the start/end protected-branch equality check proves that the tree used for classification did not move during the audit window.

Mutation remains dry-run by default and requires explicit --apply, an exact protected SHA, explicit reviewed positive safe-integer workflow IDs, Actions-write authorization, zero unresolved identities, current active_orphan classification, per-target live preflight, exact-ID disable, and fresh postcondition audit on the same protected SHA. The cleanup path also rejects option-token consumption in value flags and bounds each disable request.

Current-head review state

The latest Devin review on exact head 9d23bbf... posted informational observations only:

  • a non-canonical active-orphan path aborts the whole cleanup plan fail-closed;
  • postcondition validation is narrower than the per-target disabled_manually verification but remains sufficient in combination with the zero-unresolved requirement;
  • production retry sleep correctly falls back to the real timer;
  • the read-only audit CLI's value parser is less symmetric than the mutating cleanup parser but malformed flag sequences still fail rather than silently execute a wrong operation; and
  • the live registry observation is reconciled against, rather than itself snapshot-bound to, the protected SHA.

Historical OpenCode CHANGES_REQUESTED reviews target predecessor heads (094739e..., 60e675e...) and failed organization-owned coverage evidence. They do not transfer to exact head 9d23bbf.... CodeRabbit/Devin COMMENTED reviews are supplementary, not independent approval.

Current exact-head workflow truth

All six repository workflow runs associated with exact contributor head 9d23bbf5768f41542f3b3c5eac75d17220b0dcf0 are terminal GitHub-success:

  • Server Tests 32463473601 — success;
  • Fuzz 32463473635 — success;
  • SAST Semgrep 32463473633 — success;
  • OSV Scanner 32463474085 — success;
  • Dependency Review 32463473658 — success; and
  • Security Scan 32463473698 — success.

These labels are not promoted to immutable contributor-head merge authority while the known revision-evidence defects remain unresolved. ScopeWeave #523 owns repository-native exact-head Server Tests/coverage integrity. The organization-owned reusable exact-head SAST/Security repair remains in the existing central .github owner path. Predecessor, synthetic-only, status-only, model-only, pending, skipped, absent, stale, author-only, or infrastructure-only evidence is non-authorizing.

Operational completion boundary

After protected integration and authorization, #478 still requires a fresh complete registry audit, review of current PR/non-default-branch writer ownership for every candidate, explicit preservation/non-selection of legitimate active identities, an exact-SHA apply naming only reviewed IDs, and a second live inventory proving selected orphans are disabled while supported ScopeWeave automation remains operational and no unresolved registry identity remains.

Merge gate

Do not merge or enable auto-merge until the unchanged exact head remains reconciled to freshly resolved protected develop, repository/organization exact-head evidence controls are protected-shipped and regenerated on this exact head, every applicable functional/browser/owned statement-branch-function-line coverage/docstring/CodeQL/SAST/security/dependency/supply-chain/package/provenance gate is substantively terminal-passing under corrected contracts, valid unresolved current-head defects are zero, and a qualifying independent current-head/last-push approval exists under live rulesets.

Pending, queued, skipped-required, cancelled, absent, neutral-required, failed, stale, predecessor, synthetic-only, status-only, author-only, model-only, rate-limited, or infrastructure-only evidence is non-passing.

Refs #478

@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

보호 브랜치의 SHA와 전체 워크플로 레지스트리를 대조하는 감사 CLI와, 검토된 활성 고아 워크플로만 비활성화하는 dry-run 우선 정리 CLI를 추가했습니다. SHA·경로·상태를 재검증하고 사후 감사 결과를 확인합니다.

Changes

워크플로 레지스트리 운영

Layer / File(s) Summary
감사 API 증거 수집
scripts/ci/workflow_registry_audit.mjs, tests/unit/workflow-registry-audit.test.mjs, tests/unit/workflow-registry-coverage.test.mjs
인증된 GitHub API 요청, 제한된 5xx 재시도, 페이지네이션, 중복 ID, 보호 브랜치 SHA 및 immutable Git tree 경로를 검증합니다.
감사 분류 및 CLI 통합
scripts/ci/workflow_registry_audit.mjs, tests/unit/workflow-registry-audit.test.mjs, docs/doctoring/workflow-registry-audit.md
워크플로를 상태·보호 경로·동적 경로·보존 경로 기준으로 분류합니다. 감사 전후 SHA가 다르면 관찰을 실패 처리합니다. CLI 인자와 운영 절차를 문서화합니다.
정리 계획 및 적용
scripts/ci/workflow_registry_cleanup.mjs, tests/unit/workflow-registry-cleanup*.mjs, tests/unit/workflow-registry-coverage.test.mjs
기본 dry-run으로 감사 증거를 출력합니다. --apply, 정확한 SHA, 인증 토큰, 명시적 workflow ID가 있으면 선택된 활성 고아만 비활성화합니다. 대상별 재검증, 제한된 재시도, disabled_manually 확인 및 사후 조건 감사를 수행합니다.
테스트 연결 및 변경 기록
package.json, tests/unit/coverage-script-contract.test.mjs, docs/doctoring/workflow-registry-audit.md, CHANGELOG.md
정리 실행 스크립트와 테스트·커버리지 대상을 등록합니다. 감사·정리 운영 절차와 변경 기록을 갱신합니다. OpenCode 후보군과 프로덕션 계획 분석 요청 설정도 변경 기록에 반영합니다.

Estimated code review effort: 4 (Complex) | ~60 minutes

Merge Risk: 🟡 Moderate · up to 1e42e

This PR adds workflow-identity auditing and explicitly authorized cleanup, but the current head is not merge-ready because audit results may be incomplete or incorrectly handled in several edge cases, cleanup requests may wait indefinitely, and required exact-head checks and approval are still pending.

Sequence Diagram(s)

sequenceDiagram
  participant Operator
  participant workflow_registry_cleanup
  participant workflow_registry_audit
  participant GitHub_Actions_API
  Operator->>workflow_registry_cleanup: --apply와 검토된 workflow ID 전달
  workflow_registry_cleanup->>workflow_registry_audit: 보호 브랜치 감사 실행
  workflow_registry_audit->>GitHub_Actions_API: SHA·워크플로·트리 증거 조회
  GitHub_Actions_API-->>workflow_registry_audit: 감사 증거 반환
  workflow_registry_cleanup->>GitHub_Actions_API: 대상 SHA·identity 재검증
  workflow_registry_cleanup->>GitHub_Actions_API: workflow disable API 호출
  GitHub_Actions_API-->>workflow_registry_cleanup: disabled_manually 상태 반환
  workflow_registry_cleanup->>workflow_registry_audit: 사후 감사 실행
Loading

Possibly related issues

  • ContextualWisdomLab/pg-llm-batch#158 — 읽기 전용 감사와 별도 검토 기반 workflow 비활성화 절차를 구현합니다.
  • ContextualWisdomLab/scopeweave#478 — 보호 SHA 기반 감사와 명시적 검토 ID 정리 CLI를 구현합니다.
  • ContextualWisdomLab/naruon#1324 — SHA 고정, 재검증, 선택적 비활성화 및 사후 조건 검사를 구현합니다.
  • ContextualWisdomLab/bandscope#847 — 고아 workflow identity의 승인된 비활성화 구현을 추가합니다.
  • ContextualWisdomLab/inkspan#278 — 정확한 SHA 기반 fail-closed workflow 정리를 구현합니다.
  • ContextualWisdomLab/EgressWeave#202 — dry-run, SHA 고정, 검토 ID 및 사후 조건 검사를 구현합니다.
  • ContextualWisdomLab/disksage#191 — 보호 SHA 감사와 dry-run 우선 정리 CLI를 구현합니다.
  • ContextualWisdomLab/xtrmLLMBatchPython#231 — 보호 SHA 감사와 명시적 workflow ID 비활성화를 구현합니다.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 74.29% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
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 제목은 GitHub Actions의 고아 워크플로 식별자를 감사하고 안전하게 비활성화하는 PR의 주요 변경 사항을 정확히 요약합니다.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/workflow-registry-audit-478

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 marked this pull request as ready for review August 14, 2026 19:03

Copy link
Copy Markdown
Contributor Author

@opencode-agent
@cwl-noema-review

Review exact current head de7a014d7d64f43c171049ac26a96e40b1ccba05 against live develop@b88e66e81e9701404d29a0f5de4f58573ceee14f. All six repository-native workflows are terminal-success. Verify the detector is strictly read-only, pagination-complete, exact-ID/path preserving, branch-movement fail-closed, off-origin pagination resistant, bounded on 5xx, non-leaking on failed responses, and cannot disable or mutate workflows. Also verify explicit preserved-path exceptions cannot silently convert GitHub dynamic or present protected workflows into orphan candidates. Publish current-head review evidence only; do not mutate or merge.

coderabbitai[bot]

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor Author

@opencode-agent review
@cwl-noema-review

Please submit an independent formal review for exact current head f4fa695eedc97a39f2612d7d1316ff01b2931063 against live develop@b88e66e81e9701404d29a0f5de4f58573ceee14f. This head independently addresses the still-valid prior review findings: cross-page duplicate workflow IDs fail closed; Contents 404 is accepted as an empty workflow directory only after immutable Git commit/tree evidence proves absence; unknown workflow states are retained as unresolved and cannot authorize disable. Verify the detector remains strictly GET-only, same-origin/pagination-complete, exact-ID/path preserving, branch-movement fail-closed, response-body non-leaking, and has no workflow mutation/disable path. Current exact-head Server Tests, Fuzz, OSV, Dependency Review and SAST Semgrep are terminal success; Security Scan is still queued and must not be treated as passing. Do not mutate or merge.

@seonghobae
seonghobae enabled auto-merge (squash) August 14, 2026 21:51

Copy link
Copy Markdown
Contributor Author

@opencode-agent @cwl-noema-review

Please perform a fresh independent formal review of exact current head 841d1c4da6c237b407187d75b3639882930bd89e against live protected develop@b88e66e81e9701404d29a0f5de4f58573ceee14f. All six repository-native workflows are terminal-success on this exact head, and the current CodeRabbit delta review reports no actionable comments. Re-verify the detector remains strictly GET-only, pagination-complete with duplicate-ID rejection, immutable-tree proof for genuinely absent workflow directories, unknown-state unresolved handling, exact branch-movement binding, off-origin pagination rejection, bounded 5xx retries, non-leaking failures, and no workflow mutation/disable path. Publish current-head formal evidence only; do not mutate the branch, merge, or bypass repository policy.

Copy link
Copy Markdown
Contributor Author

@opencode-agent
@cwl-noema-review

Request independent review for exact current head 841d1c4da6c237b407187d75b3639882930bd89e against live develop@b88e66e81e9701404d29a0f5de4f58573ceee14f. All six repository-native workflows plus exact-head coverage-evidence/opencode-review checks are terminal-success, and all previously actionable CodeRabbit threads are resolved on this head. Verify the detector remains GET-only, pagination-complete, duplicate-ID and unknown-state fail-closed, exact-protected-tree bound, retry-bounded, and incapable of disabling workflows. Publish current-head review evidence only; do not mutate or merge.

@seonghobae
seonghobae marked this pull request as draft August 15, 2026 11:48
auto-merge was automatically disabled August 15, 2026 11:48

Pull request was converted to draft

@seonghobae
seonghobae marked this pull request as ready for review August 15, 2026 11:48
@seonghobae
seonghobae enabled auto-merge (squash) August 15, 2026 11:49

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Please review exact current head 094739e8bd9d8e778854c447bb84ef3c957aa07d. Treat predecessor findings as historical. Focus on fail-closed registry pagination/tree proof, workflow-state classification, dry-run/apply authorization separation, race-safe disable semantics, post-mutation full-audit postconditions, causal-error preservation, and whether any control can disable a currently owned branch/workflow identity without explicit reviewed selection. Review only; do not infer approval.

@coderabbitai

coderabbitai Bot commented Aug 18, 2026

Copy link
Copy Markdown

@seonghobae I will review the exact current head only. I will not infer approval or mutate the branch.

⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head 094739e8bd9d8e778854c447bb84ef3c957aa07d.

  • Head SHA: 094739e8bd9d8e778854c447bb84ef3c957aa07d

  • Workflow run: 32123435753

  • Workflow attempt: 1

Coverage evidence

Coverage Decision

  • Result: FAIL
  • Test evidence: not proven passing
  • Docstring evidence: not proven passing when configured
  • Failure count: 1

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (2 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (2 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Docs: workflow-registry-audit.md"]
  S2 --> I2["operator or user guidance"]
  I2 --> R2["Review risk: Docs: workflow-registry-audit.md"]
  R2 --> V2["docs review"]
  Evidence --> S3["CI script (2 files)"]
  S3 --> I3["review and security gate shell path"]
  I3 --> R3["Review risk: CI script (2 files)"]
  R3 --> V3["bash -n plus Strix self-test"]
  Evidence --> S4["Test (4 files)"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test (4 files)"]
  R4 --> V4["targeted test run"]
Loading

@opencode-agent

opencode-agent Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: 60e675e2ca9605de047cc0511f7c1a85ac25d567
  • Workflow run: 32165987915
  • Workflow attempt: 1
  • Gate result: REQUEST_CHANGES (approval step)

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head 60e675e2ca9605de047cc0511f7c1a85ac25d567.

  • Head SHA: 60e675e2ca9605de047cc0511f7c1a85ac25d567

  • Workflow run: 32165987915

  • Workflow attempt: 1

Coverage evidence

Coverage Decision

  • Result: FAIL
  • Test evidence: not proven passing
  • Docstring evidence: not proven passing when configured
  • Failure count: 2

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (2 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (2 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Docs: workflow-registry-audit.md"]
  S2 --> I2["operator or user guidance"]
  I2 --> R2["Review risk: Docs: workflow-registry-audit.md"]
  R2 --> V2["docs review"]
  Evidence --> S3["CI script (2 files)"]
  S3 --> I3["review and security gate shell path"]
  I3 --> R3["Review risk: CI script (2 files)"]
  R3 --> V3["bash -n plus Strix self-test"]
  Evidence --> S4["Test (5 files)"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test (5 files)"]
  R4 --> V4["targeted test run"]
Loading

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head 60e675e2ca9605de047cc0511f7c1a85ac25d567.

  • Head SHA: 60e675e2ca9605de047cc0511f7c1a85ac25d567

  • Workflow run: 32165987915

  • Workflow attempt: 1

Coverage evidence

Coverage Decision

  • Result: FAIL
  • Test evidence: not proven passing
  • Docstring evidence: not proven passing when configured
  • Failure count: 2

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (2 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (2 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Docs: workflow-registry-audit.md"]
  S2 --> I2["operator or user guidance"]
  I2 --> R2["Review risk: Docs: workflow-registry-audit.md"]
  R2 --> V2["docs review"]
  Evidence --> S3["CI script (2 files)"]
  S3 --> I3["review and security gate shell path"]
  I3 --> R3["Review risk: CI script (2 files)"]
  R3 --> V3["bash -n plus Strix self-test"]
  Evidence --> S4["Test (5 files)"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test (5 files)"]
  R4 --> V4["targeted test run"]
Loading

coderabbitai[bot]

This comment was marked as resolved.

@devin-ai-integration devin-ai-integration 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.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 1 additional finding.

Open in Devin Review

@devin-ai-integration devin-ai-integration 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.

Devin Review found 5 new potential issues.

Open in Devin Review

Comment thread scripts/ci/workflow_registry_cleanup.mjs
Comment thread scripts/ci/workflow_registry_cleanup.mjs
Comment thread scripts/ci/workflow_registry_audit.mjs
Comment thread scripts/ci/workflow_registry_audit.mjs
Comment thread scripts/ci/workflow_registry_audit.mjs
@opencode-agent opencode-agent Bot added priority: medium Normal-priority or P2 work status: needs-review Open pull request requiring current-head review or checks type: feature New or expanded product capability labels Aug 22, 2026
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.


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 dismissed stale reviews from opencode-agent[bot] and opencode-agent[bot] August 25, 2026 19:28

Dismissed as predecessor-head-only coverage-control evidence for 094739e. The current PR head is 9d23bbf, so this review cannot govern the current tree. This dismissal is not an approval and does not satisfy any current-head review gate.

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

Labels

priority: medium Normal-priority or P2 work status: needs-review Open pull request requiring current-head review or checks type: feature New or expanded product capability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant