Skip to content

ci: schedule NVIDIA OpenCode maintenance agent - #121

Open
seonghobae wants to merge 146 commits into
developfrom
ci/hourly-opencode-nvidia-nim
Open

ci: schedule NVIDIA OpenCode maintenance agent#121
seonghobae wants to merge 146 commits into
developfrom
ci/hourly-opencode-nvidia-nim

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a separate hourly OpenCode development workflow using only NVIDIA_NIM_API_KEY through OpenCode's NVIDIA_API_KEY provider variable;
  • keep the model-executing job repository-read-only and isolate remote feature-branch, pull-request publication, and workflow-run authorization in deterministic non-model jobs;
  • preserve the independent review agent and expected-head merge disposition as separate authorities;
  • bind source-executing CI and CycloneDX SBOM to the literal current pull-request head;
  • require current-head security/review evidence and a non-author exact-head approval before merge;
  • pin OpenCode 1.18.13, its release archive/checksum, workflow actions, and container build base images immutably;
  • require root-cause analysis, realistic remediation-feasibility classification, execution, and exact post-action verification before the scheduler changes course;
  • keep external-only blockers fail-closed while continuing one safe independent mightyETL slice when no pull request is source-actionable; and
  • preserve configured 100% production statement/branch coverage, beginner-readable public documentation, APA 7th doctoring, invalid-stack isolation, and repository-writer leases.

Authority boundaries

maintain-repository is the only job that checks out source or runs OpenCode and has read-only GitHub authority: actions: read, checks: read, contents: read, issues: read, pull-requests: read, security-events: read, and statuses: read. OpenCode may inspect, test, and create local commits but has no remote branch, pull-request, workflow-run, review, or merge write authority.

publish-agent-branch receives no model credential and does not check out repository source through actions/checkout. It is the sole contents: write holder. It validates checksum-bound bundle metadata, exact predecessor state, protected-base stability, non-destructive ancestry, commit/file bounds, policy-path exclusion, git diff --check, and the post-push exact SHA before one non-forced feature-branch publication.

publish-agent-pull-request receives no model credential and executes no repository source. It is the sole pull-requests: write holder and may only create one validated draft pull request or identify the updated validated pull request after re-verifying its exact head and bounded paths.

authorize-exact-head-checks receives no model credential and executes no repository source. It is the sole actions: write holder and may authorize only action_required or waiting pull_request workflow runs associated with both the expected PR number and unchanged head SHA. It cannot approve or merge a pull request.

The root AGENTS.md policy cannot expand these workflow permissions. The existing independent review-agent credential contract is unchanged. COPILOT_GITHUB_TOKEN is not used.

Exact current identity

  • base branch: develop;
  • exact live base tip: 622e5e6c3d534f230c390f10e3832efadfc01825;
  • exact current head: 75265fae9fcf5faac6f8b9cab63247ac86f23dd4;
  • current synthetic merge revision: be3fe2072a0a165c895c307881a2b740a08f4f0c;
  • GitHub mergeability: true;
  • labels: automerge-workflow, manual-merge.

Every check, status, review, approval, thread conclusion, or synthetic merge from a predecessor head is stale and does not transfer.

Root cause and scheduler feasibility loop

The scheduler's earlier nonblocking-progress repair changed root AGENTS.md, while the actual PROMPT passed directly to opencode run retained older work-selection conditions. Open pull-request existence could therefore keep scheduled runs focused on an externally blocked PR even when no repository-local source defect was executable by this writer. The root cause was instruction-path drift, not the queued check, missing approval, provider wait, or central dependency itself.

The runtime prompt and repository policy now require: exact-state observation → RCA → bounded remediation options → feasibility classification against live permissions, protection, tooling, runtime/compute limits, dependencies, path ownership, and writer leases → execute the highest-impact safe execute_now option → rerun the exact failing test or gate → verify state changed → otherwise keep the unresolved gate fail-closed and continue with the next safe non-overlapping action. A proposal, retry, aggregate-green result, or predecessor-head result is never resolution evidence.

Current TDD acquisition-evidence slice

A subsequent acquisition/security audit found a second concrete drift: docs/doctoring/github-token-exact-head-check-authorization-evidence.md still described an older topology in which the model job held repository write authority and published branches itself, while the executable workflow had already separated those capabilities into deterministic jobs. Stale authority documentation is an audit and acquisition-diligence defect because it overstates the untrusted model's privilege and can misdirect remediation of the current Scorecard finding.

RED

Commit b1afefd9a8264c4cf7f5c409f853abebfe70dc17 added HourlyOpenCodeAuthorityDocumentationTest before changing the doctoring. Literal-head CI run 31266495903, macOS job 93125370929, checked out that exact SHA and ran 317 etl-service tests. Exactly the two new authority-documentation tests failed:

  • documentsModelJobAsReadOnlyGitHubAuthority;
  • documentsSeparatedBranchPullRequestAndActionsWriters.

The failure reached the intended documentation/executable-authority boundary rather than a setup, import, or fixture error. Predecessor checks do not transfer.

GREEN

Exact current head 75265fae9fcf5faac6f8b9cab63247ac86f23dd4 rewrites the authoritative GitHub-token doctoring to match the deployed model-read-only / deterministic-writer topology, documents exact time-of-check/time-of-use controls, and records materially distinct remediation options for the sensitive contents: write capability without pretending the capability was removed.

Fresh literal-current-head CI run 31266626369 succeeded on Ubuntu, macOS, and Windows. macOS ran all 317 etl-service tests with zero failures and the two new authority-documentation tests green; JaCoCo reported all configured coverage checks met. The cdc-service suite ran 106 tests successfully and the gateway suite ran 3 tests successfully.

Exact-current-head gate state

Accepted on literal head 75265fae9fcf5faac6f8b9cab63247ac86f23dd4:

  • CI 31266626369: success; Ubuntu, macOS, and Windows each completed exact-source checkout and exact-SHA verification;
  • Dependency Review 31266626334: success;
  • CycloneDX SBOM 31266626333: success;
  • SAST Semgrep 31266626347: success;
  • CodeRabbit exact-head commit status: success;
  • GitHub mergeability: true.

The conditional test_self_hosted CI job is skipped and is not counted as positive evidence. If repository policy ever makes that skipped context required, it remains blocking.

Not accepted / still blocking:

  • Security Scan 31266626345 is aggregate-green, but its hard Trivy job 93125705118 checked out and scanned synthetic merge be3fe2072a0a165c895c307881a2b740a08f4f0c rather than literal head 75265fa...; the soft Scorecard job 93125705100 used the same synthetic source identity. OSV did perform explicit base/head checkout and dependency review ran, but the aggregate required Security Scan is not accepted because its hard filesystem scanner is synthetic-merge-only;
  • GHAS Token-Permissions thread PRRT_kwDOM_CJBs6XYldq is resolved after exact-head RCA as a necessary-capability disposition. The underlying finding remains factually true: the isolated deterministic publish-agent-branch job requires job-scoped contents: write to persist one same-repository feature ref. Thread resolution is not evidence that the Scorecard condition disappeared and does not make Security Scan acceptable;
  • the model job itself has no write authority. Removing the isolated publisher's contents: write destroys autonomous branch persistence; moving it into the model expands untrusted authority; inventing a PAT/App is rejected without a real independently proven narrower credential. The currently executable narrow design is the isolated deterministic branch publisher with bundle-digest, exact-ancestry, live-ref, path, commit-count, and post-write-SHA validation; and
  • formal reviews remain COMMENTED only. There is no qualifying independent non-author APPROVED review on the exact current head.

Queued, pending, skipped-required, neutral-required, absent, cancelled, failed, stale-head, predecessor-head, and synthetic-merge-only evidence remain not passing.

Approval-path RCA

The missing formal approval is not treated as an unexplained external wait. Live review state has no qualifying APPROVED submission on this exact head, no requested individual or team reviewer, and no standard repository CODEOWNERS route. Historical COMMENTED reviews, status contexts, reactions, textual approval language, author reviews, and predecessor-head evidence do not qualify.

The current central review architecture provides two legitimate autonomous reviewer stages, but the first stage is not operational for this repository in the current organization configuration:

  • the required Required OpenCode Review workflow is a non-privileged placeholder; the actual formal-review path is the default-branch OpenCode Review Dispatch workflow;
  • that privileged dispatcher accepts a repository only when it is present in the exact OPENCODE_REPOSITORY_DISPATCH_TARGETS allowlist and binds supplied base/head metadata to the live pull request;
  • current automated mention receipts on this exact head explicitly reject @opencode-agent because ContextualWisdomLab/mightyETL is absent from OPENCODE_REPOSITORY_DISPATCH_TARGETS;
  • @cwl-noema-review is queued, but the current Noema gate requires a qualifying current-head primary OpenCode APPROVED review before it can perform and submit its independent verdict.

Accordingly, the primary autonomous approval path is classified read_only_dependency: its correction owner is the separately leased central .github control plane. No self-approval, synthetic approval, random reviewer spam, invented PAT/App, credential reuse, or review-gate weakening is an acceptable workaround. Noema remains defer_until_trigger until the primary exact-head approval exists. This is not yet classified as the sole external-human gate because literal-head scanner evidence is independently still unavailable.

Read-only organization dependencies

The literal-head scanner and autonomous-review control planes are outside this repository writer lease. Fresh comparison against protected .github main@6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba shows:

  • ContextualWisdomLab/.github#813, head 1779da411ef2f4c2f20e05a3035f0ff1c43600e8, is diverged from live main: 8 commits ahead, 31 behind, merge base e71fdab2ab088001f218765ecb5e3b7fabfee11a;
  • ContextualWisdomLab/.github#799, head a6cd746e86c07452d03e0f5cef8e8d13c22f28c6, is diverged from live main: 26 commits ahead, 31 behind, with the same merge base.

Current protected central security-scan.yml still leaves the hard Trivy filesystem scanner and soft Scorecard posture scanner on the pull-request event's default synthetic-merge checkout rather than explicitly binding them to the literal pull-request head. Its dependency-review support probe separately treats HTTP 403/404 as supported=false and exits successfully instead of failing closed. Therefore the central main advance does not supply the literal-head/fail-closed scanner evidence required here; the dedicated .github loop must reconcile its diverged repair branches with current protected main.

This mightyETL loop must not mutate the central branches, variables, review dispatch configuration, or PRs. Once the central review allowlist and scanner control-plane changes integrate, re-run the unchanged mightyETL exact head through the formal OpenCode→Noema approval chain and literal-head scanner path. No old review or scanner evidence transfers across a mightyETL head change.

Stack integrity

PR #121 remains the only dependency-eligible mightyETL stack item. Draft replacement #138 is still invalid against this exact predecessor: comparison of 75265fae9fcf5faac6f8b9cab63247ac86f23dd4 to #138 head 778956039f6e41d9d8f264097c6ebf14cd3306f3 is diverged, with merge base b24bed946d3da2e62d89ded828d877dac2f3c65c, #138 eight commits ahead of that merge base and 33 commits behind the exact current predecessor. Do not deepen or repair the downstream stack until #121 is eligible. Old downstream checks, reviews, approvals, and base snapshots do not transfer across a future repair.

Merge policy

This PR changes .github/workflows/** and carries automerge-workflow. Keep manual-merge until every exact-current-head branch-protection and security gate succeeds, literal-head scanner evidence exists, the necessary-capability security disposition remains documented, and a qualifying independent non-author formal APPROVED review is anchored to the unchanged exact head. Remove the hold only immediately before an expected-head protected merge. Never bypass protection, approval, tests, security gates, exact-head binding, realistic-feasibility checks, writer leases, or stack integrity.

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Changes

시간별 OpenCode 유지보수

Layer / File(s) Summary
OpenCode 실행 계약
docs/superpowers/..., docs/operations/..., docs/doctoring/...
실행 주기, NVIDIA 모델, 아카이브 검증, 권한, 인증, 에이전트 제한과 실패 절차를 정의했습니다.
유지보수 워크플로 실행
.github/workflows/hourly-opencode-maintenance.yml, etl-service/src/test/java/com/xtrmetl/etl/documentation/*OpenCode*Test.java
시간별·수동 실행, 보호된 체크아웃, SHA-256 검증 설치, 토큰 수명주기, 제한 시간과 정책 검증을 추가했습니다.
운영 및 공급망 증거
docs/operations/hourly-opencode-maintenance.md, docs/doctoring/*opencode*, CHANGELOG.md
모델 선택, 아카이브 추출, 운영 대응과 관련 변경 로그를 기록했습니다.

Exact-head PR 판정

Layer / File(s) Summary
PR 판정 및 승인 게이트
.github/workflows/hourly-pr-disposition.yml, docs/hourly-pr-disposition.md, etl-service/src/test/java/com/xtrmetl/etl/documentation/HourlyPrDispositionWorkflowTest.java, CHANGELOG.md
리뷰어별 최신 판정을 축약하고, 최신 변경 요청을 차단하며, 현재 head SHA의 비작성자 승인을 요구합니다.

ETL 해시 및 커버리지 검증

Layer / File(s) Summary
SHA-256 공통 처리
etl-service/src/main/java/com/xtrmetl/etl/service/Sha256Digest.java, etl-service/src/main/java/com/xtrmetl/etl/job/EtlJobService.java, etl-service/src/test/java/com/xtrmetl/etl/service/Sha256DigestTest.java
SHA-256 계산을 공통 유틸리티로 이동하고 UTF-8, lowercase hexadecimal, null 및 알고리즘 오류를 검증합니다.
ETL 커버리지와 입력 경계
.github/workflows/ci.yml, etl-service/pom.xml, etl-service/src/test/java/com/xtrmetl/etl/job/*Test.java
JaCoCo class 파일 대상과 미커버리지 제한을 검증하고, 잘못된 JSON·레코드 ID 입력 및 데이터베이스 접근 차단을 테스트합니다.

Jackson 보안 버전 고정

Layer / File(s) Summary
Jackson BOM 버전 검증
pom.xml, etl-service/src/test/java/com/xtrmetl/etl/documentation/JacksonSecurityVersionTest.java
Jackson BOM 버전을 2.21.5로 고정하고 보안 XML 파서로 설정값을 검증합니다.

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

Sequence Diagram(s)

sequenceDiagram
  participant GitHubActions
  participant OpenCodeCLI
  participant GitHubAPI
  GitHubActions->>OpenCodeCLI: 검증된 CLI 설치 및 실행
  GitHubActions->>OpenCodeCLI: NVIDIA 모델과 GitHub 토큰 전달
  OpenCodeCLI->>GitHubAPI: 열린 PR·검사·리뷰 상태 조회
  OpenCodeCLI->>GitHubAPI: 제한된 변경 및 PR 생성 또는 갱신
Loading

Possibly related issues

  • ContextualWisdomLab/appguardrail#872: 예약된 NVIDIA OpenCode 유지보수 워크플로를 추가하는 목표와 직접 연결됩니다.
  • ContextualWisdomLab/.github#772: 현재 head에 고정된 비작성자 독립 승인을 요구하는 PR 판정 변경과 연결됩니다.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 52.00% 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 제목은 NVIDIA OpenCode 유지보수 에이전트를 예약 실행하는 주요 변경사항을 정확하고 간결하게 설명합니다.
✨ Finishing Touches 💡 2
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/hourly-opencode-nvidia-nim

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

@seonghobae
seonghobae marked this pull request as ready for review August 4, 2026 12:39

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

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 commented Aug 8, 2026

Copy link
Copy Markdown

Queued @cwl-noema-review ; Rejected @opencode-agent: repository is absent from OPENCODE_REPOSITORY_DISPATCH_TARGETS for PR #121 at head 75265fae9fcf5faac6f8b9cab63247ac86f23dd4. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

opencode-agent Bot commented Aug 8, 2026

Copy link
Copy Markdown

Queued @cwl-noema-review ; Rejected @opencode-agent: repository is absent from OPENCODE_REPOSITORY_DISPATCH_TARGETS for PR #121 at head 75265fae9fcf5faac6f8b9cab63247ac86f23dd4. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

opencode-agent Bot commented Aug 8, 2026

Copy link
Copy Markdown

Queued @cwl-noema-review ; Rejected @opencode-agent: repository is absent from OPENCODE_REPOSITORY_DISPATCH_TARGETS for PR #121 at head 75265fae9fcf5faac6f8b9cab63247ac86f23dd4. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

opencode-agent Bot commented Aug 8, 2026

Copy link
Copy Markdown

Queued @cwl-noema-review ; Rejected @opencode-agent: repository is absent from OPENCODE_REPOSITORY_DISPATCH_TARGETS for PR #121 at head 75265fae9fcf5faac6f8b9cab63247ac86f23dd4. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

opencode-agent Bot commented Aug 8, 2026

Copy link
Copy Markdown

Queued @cwl-noema-review for PR #121 at head 75265fae9fcf5faac6f8b9cab63247ac86f23dd4. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

opencode-agent Bot commented Aug 8, 2026

Copy link
Copy Markdown

Queued @cwl-noema-review ; Rejected @opencode-agent: repository is absent from OPENCODE_REPOSITORY_DISPATCH_TARGETS for PR #121 at head 75265fae9fcf5faac6f8b9cab63247ac86f23dd4. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

opencode-agent Bot commented Aug 8, 2026

Copy link
Copy Markdown

Queued @cwl-noema-review ; Rejected @opencode-agent: repository is absent from OPENCODE_REPOSITORY_DISPATCH_TARGETS for PR #121 at head 75265fae9fcf5faac6f8b9cab63247ac86f23dd4. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

Copy link
Copy Markdown
Collaborator Author

Fresh read-only dependency revalidation for unchanged mightyETL head 75265fae9fcf5faac6f8b9cab63247ac86f23dd4 over develop@622e5e6c3d534f230c390f10e3832efadfc01825 corrects the historical central-control-plane section in this PR body.

The previously cited central repair PRs are no longer active: ContextualWisdomLab/.github#813 is closed unmerged at 1779da411ef2f4c2f20e05a3035f0ff1c43600e8, and .github#799 is closed unmerged at a6cd746e86c07452d03e0f5cef8e8d13c22f28c6. Protected central main@6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba still leaves the hard Trivy filesystem job on the pull-request event's default checkout instead of binding it to the literal PR head, and its dependency-review probe still converts HTTP 403/404 to supported=false plus success. Therefore mightyETL Security Scan 31266626345 remains aggregate-green but not accepted literal-source hard-scanner evidence for this exact head.

The current central replacement is .github#897, head 71947d24828cfb42806f5ef0a8abf83f9279d0af from current protected main. Its bounded scope repairs the dependency-review lane: explicit PR-head checkout and non-200 fail-closed handling. It does not repair Trivy/Scorecard literal-head checkout. In addition, its current shell still wraps the probe as curl ... || true and decides only from the emitted HTTP status. Historical #813 had already isolated why that is insufficient: a transport/partial-transfer failure can return a nonzero curl status after %{http_code} has emitted 200, so swallowing the transport exit can still produce a false support success. That is a central read-only dependency defect, not a mightyETL source defect and not a reason to churn this exact head.

RCA disposition stays read_only_dependency: no rerun, source edit, approval synthesis, scanner suppression, or gate weakening inside mightyETL can change the missing literal-head Trivy boundary or central probe semantics. Keep #121 unchanged until the central protected control plane actually integrates an accepted exact-head scanner/fail-closed dependency-review path; then regenerate Security Scan against this exact mightyETL head if it has not moved. The missing independent non-author approval remains a separate gate and is not yet the sole blocker.

Copy link
Copy Markdown
Collaborator Author

Fresh read-only dependency reconciliation for unchanged mightyETL head 75265fae9fcf5faac6f8b9cab63247ac86f23dd4 over live develop@622e5e6c3d534f230c390f10e3832efadfc01825:

  • Central protected .github/main is now 6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba.
  • Historical scanner repair PRs .github#799 and .github#813 are both closed unmerged. They are no longer executable dependency lanes and should not be treated as the current remediation path.
  • The current replacement for the dependency-review fail-open defect is .github#897, exact head 71947d24828cfb42806f5ef0a8abf83f9279d0af, base main@6eb06cdd..., non-Draft and mergeable. Its exact-head CodeQL, Python Security, SAST, Security Scan, Secret Scan, OSV, Scorecard, SBOM, and Strix workflows are all terminal-success. It currently has zero formal review submissions, so it is not integrated evidence.
  • Protected central security-scan.yml still leaves the hard trivy-fs checkout on the pull-request event's default checkout rather than explicitly checking out ${{ github.event.pull_request.head.repo.full_name }} + ${{ github.event.pull_request.head.sha }}. Therefore even if #897 later fixes dependency-review fail-closed semantics, it does not by itself close ci: schedule NVIDIA OpenCode maintenance agent #121's literal-head Trivy acceptance gap.
  • The protected OpenCode dispatcher still enforces OPENCODE_REPOSITORY_DISPATCH_TARGETS; that organization-variable value is not observable from repository source. No new qualifying formal APPROVED review exists on ci: schedule NVIDIA OpenCode maintenance agent #121, so approval remains non-passing and the previously observed allowlist rejection is not assumed fixed without a new successful dispatch/review receipt.

RCA disposition: central dependency-review fail-open and literal-head Trivy source identity are distinct control-plane defects with distinct remedies. #897 is the active fail-closed dependency-review remedy; a separate protected-main change is still required for literal-head Trivy (and any acceptance-sensitive Scorecard source identity). No mightyETL source change can repair either root cause. Keep manual-merge; do not rerun unchanged #121 security evidence as if #897 or the closed #799/#813 had integrated. Re-evaluate the central dependency only after protected-main movement or a new exact-head formal review/scanner receipt.

Copy link
Copy Markdown
Collaborator Author

2026-08-10 central dependency refresh (read-only)

Revalidated the organization control plane from protected ContextualWisdomLab/.github@6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba. This supersedes the older #799/#813-as-current wording in the PR body; those references remain historical only.

Hard scanner/source-identity boundary remains unresolved on protected central main. The current security-scan.yml still uses default actions/checkout in the hard trivy-fs job, so pull-request executions scan the generated refs/pull/<n>/merge tree rather than the literal PR head. The same protected workflow still treats dependency-review HTTP 403/404 as supported=false and exits success, skipping that hard evidence. Therefore Security Scan aggregate success cannot yet satisfy this PR's literal-source/fail-closed acceptance contract.

Current bounded central repair for the dependency-review fail-open is .github#897, exact head 71947d24828cfb42806f5ef0a8abf83f9279d0af on exact current central main. It is open and mergeable, but unmerged. Its scope must not be over-read as proving the whole Trivy literal-head scanner boundary fixed.

Primary OpenCode formal-review route is also still non-operational from protected central main for a separate, source-proven reason. agent_mention_router.py::opencode_payload() currently emits 14 top-level client_payload properties while GitHub repository dispatch accepts at most 10. The protected router additionally requires OPENCODE_REPOSITORY_DISPATCH_TARGETS; the current runtime variable value is not exposed by repository source, so allowlist eligibility cannot be inferred. Even an allowlisted request would still hit the deployed 14-property envelope defect.

Central .github#840 is the current-main bounded envelope repair family, but its live head is now 04c68a997b658019a1df9958a6bfe88ec72f792c while its body still names predecessor ba93f537...; treat body/check claims as stale until its writer reconciles them. New .github#910 also targets the payload cap from current main (43d7007036cf484fd4b99337c059eba66e3e27d5) but GitHub currently reports it non-mergeable. Neither is integrated authority.

For mightyETL #121 itself, exact source head remains 75265fae9fcf5faac6f8b9cab63247ac86f23dd4 over unchanged develop@622e5e6c3d534f230c390f10e3832efadfc01825; CI 31266626369, Dependency Review 31266626334, SBOM 31266626333, and SAST 31266626347 remain terminal-success. Security Scan 31266626345 remains aggregate-success but unacceptable for literal-source acceptance because its hard Trivy source identity is synthetic merge. Current formal reviews remain COMMENTED only; every inline thread is resolved, including the factually true necessary-capability contents: write disposition.

Classification remains read_only_dependency, not external_only: central protected scanner and review-dispatch changes can still change the cause. Do not move #121 merely to retrigger evidence or wording because #143#148 depend on its exact head. After the central controls actually integrate, rerun this unchanged head and reacquire every affected scanner/review result before any merge decision.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants