fix(automation): adopt current OIDC maintenance schedulers - #237
fix(automation): adopt current OIDC maintenance schedulers#237seonghobae wants to merge 58 commits into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks 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 |
|
Fresh writer-safety addendum — 2026-08-28 Before this pg write I re-read exact Draft #237 head The existing writer boundary in this PR names the two retained PR #88 validation refs, but fresh branch/provenance comparison establishes one additional overlapping source lineage that must be included in every future lease check:
Therefore treat the v1 ref as Updated source-freeze contractBefore any further #237 source mutation, freshly compare all of the following against the then-current intended paths/base:
Keep #237 Draft and source-frozen until #233 integrates first and every overlapping retained writer is non-destructively reconciled or independently proven inert for the exact intended surface. Historical #237 local greens remain development evidence only; final acceptance must be regenerated on the then-final head/base under then-live governance. |
Non-destructively retain the existing #237 scheduler-contract tree while adding current dependency-root #233 (3246971) as a merge parent. The former #233 tip and the current tip have the identical tree e362d62, so this ancestry repair introduces no additional semantic delta and transfers no predecessor checks or reviews.
Test-first control-plane repair for #157 — ACTIVE DRAFT / EXPLICIT #233 CHILD
Protected
pg-llm-batch/mainremains exactb84f0c94154043a3473939c01bb6471de5a129ae. No source or documentation was written directly to protected main.Exact stack boundary
fix/recovery-evidence-weakref-coverage-b84f0c95951b7a4d779903b8924abaef2a387cae50b7f54agent/hourly-maintenance-nim-boundary-v2efe766e11743c56b154d06a2a4a63cc6539923c3.github/workflows/hourly-maintenance.ymltests/test_hourly_maintenance_credential_boundary.pytests/test_workflow_contracts.pyefe766e...is a non-destructive merge commit retaining both histories. It includes #233's focused weak-reference coverage regression as a merge parent so this workflow leaf can reacquire complete repository evidence without copying or owning that test. The #233 file is not part of this PR's relative diff.Protected-main defect and RED → GREEN lineage
Protected main still configures the existing hourly workflow with
cancel-in-progress: true, broadsecrets: inherit, deprecatedcanonical_ref, and the older5983b41...central scheduler identity. That combination can discard a live bounded RCA when the next heartbeat arrives and unnecessarily widens stored-secret authority.63c8bf35b834a5551c8ff65a9983cecea8a60806established the failing contract: preserve hourly cadence without cancelling an in-flight execution; pin both reusable scheduler calls to one immutable reviewed central identity; removecanonical_ref; keep review-fix at{contents: read, id-token: write}; and forward no stored repository secret when central OIDC/App-token authority is sufficient.55e8a3661a06788943081dcf1c180d7565cd4599applied the narrow repair:cancel-in-progress: false; both reusable workflows pinned to exact centralc47afc2dc68488292c1db7c9d6f82dcd5360f181;canonical_refand bothsecrets: inheritdeclarations removed; review-fix permissions reduced; merge-caller permissions remain explicit and bounded.e3e6cc58c6334e5aac23881948e44084fb549db4synchronized the permanent workflow contract test with that immutable scheduler identity and rejects recurrence ofcanonical_refor broad secret inheritance.The central pin is a reviewed historical central authority used by this Draft. Central
.githubis read-only from this pg loop;COPILOT_GITHUB_TOKEN, copied central logic, renamed PATs, and lower-level bypasses remain outside this repair. Before eventual integration, the final candidate must freshly verify that the pinned reusable-workflow contract is still permitted and semantically compatible with then-protected central governance rather than inferring that from historical ancestry.Retained validation lineage adjudication
Fresh branch and commit evidence resolves the two historical validation refs that previously froze this contract-test lane:
validation/exact-head-pr88-20260812@ab78e4744a0709edfe9a45d28ec29b80a05771d5; andvalidation/exact-head-pr88-run-20260812@ab78e4744a0709edfe9a45d28ec29b80a05771d5.Both refs are aliases of the same historical commit
ab78e474..., whose direct change is the structural exact-source workflow-contract test intests/test_workflow_contracts.py. Fresh protected-main inspection shows that the same structural helpers and decoy-resistant field assertions are already implemented, with the later checkout credential-isolation assertion also present. Protected-main file history independently identifies merged PR #88 (fix(ci): bind verification to exact source heads) at merge commit545334acfcc26f6bd93199ee14361fcb5cc1b82c; that merged authority explicitly includestest(ci): parse exact-source workflow fields structurallyandtest(ci): enforce checkout credential isolation.Therefore these two validation refs are
SUPERSEDED_RETAINEDfor the exact-source workflow-contract authority. They preserve historical validation provenance but are not current writer leases ontests/test_workflow_contracts.py; no ref is deleted, renamed, rebased, force-updated, or used to transfer historical checks/reviews.This bounded adjudication removes only that false writer conflict. It does not prove the entire workflow surface globally writer-free. Before any future #237 source mutation, freshly inventory every then-current open/no-PR branch touching the three intended paths and freeze this lane if any other active writer appears. #237 itself remains the incumbent implementation lane and remains source-stable while predecessor #233 is unmerged.
Current workflow-evidence boundary
Historical workflow conclusions for unchanged stacked head
efe766e11743c56b154d06a2a4a63cc6539923c3include CI32208125873, SAST Semgrep32208125944, Release Acceptance32208125956, and Security Scan32208125997as terminal-success, plus historical status/check evidence from the central review path. Those conclusions are retained evidence only.This Draft is not represented as exact-final-head acquisition acceptance merely because the historical run metadata is green. Actual scanner checkout/source identity, then-live reusable-workflow authority, final protected base, review disposition, and all required gates must be reacquired on the eventual integration candidate. Fresh formal-review inventory remains empty; absence of review is not approval. The predecessor gate remains independent.
Dependency and integration boundary — refreshed 2026-08-30
#233 is the exact predecessor and must integrate first. The obsolete statement that #233 is still waiting for central exact-source Security/SAST repair is removed: #233 now has regenerated exact-contributor-head CI, Release Acceptance, Security Scan, SAST Semgrep, and bounded Strix evidence on unchanged
5951b7a4d779903b8924abaef2a387cae50b7f54. It nevertheless remains non-passing because the active same-head OpenCodeCHANGES_REQUESTEDhas not been superseded and no qualifying approval exists under live governance.Do not duplicate mutable central SHAs/runs/retry state here. Issue #244 is the sole pg-owned mutable control-plane ledger and must be freshly read before review/security/scheduler decisions. Keep this PR Draft while #233 is unmerged. The two historical PR #88 validation refs above no longer constitute a current writer blocker.
After #233 integrates, retarget this PR to then-current protected main, freshly inventory all intended-path writers again, reconcile its immutable reusable-workflow pins to a then-current reviewed/permitted central authority, prove the final diff remains bounded to the scheduler-contract surface, and reacquire every exact-final-head/current-base CI, security, coverage, package, provenance, release, review, and thread-resolution gate. Merge only with the qualifying non-author approval required by then-live policy.
Queued, pending, cancelled, skipped-required, absent, neutral, stale, predecessor, status-only, synthetic, author-only, rate-limited, infrastructure-failed, dismissed, or conclusion-null evidence is non-passing.
Refs #88, #157, #233, #244.