Skip to content

fix(ci): canonical standards owner in fleet callers and propagation sender - #638

Merged
hyperpolymath merged 2 commits into
mainfrom
fix/canonical-standards-propagation-20261101
Nov 1, 2026
Merged

hyperpolymath merged 2 commits into
mainfrom
fix/canonical-standards-propagation-20261101

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Nov 1, 2026 •

Copy link
Copy Markdown
Owner

Root incident

On 2026-11-01 a GitHub notification audit found 200 unread Scorecard zero-job failures concentrated at 04:00 UTC, across the user's estates. Representative consumer workflows still call hyperpolymath/standards/.github/workflows/...@SHA after the standards repository was transferred to metadatastician/standards. GitHub REST follows the old repository redirect; Actions reusable-workflow startup does not. This is the precursor to a controlled estate-wide migration, not a batch rollout.

Changes

  • Update gitbot-fleet's four job-level reusable callers (scorecard, governance, hypatia-scan, mirror) to the canonical metadatastician/standards owner while preserving the already audited commit 75bd5994470661a099df562d6d5ad2fe744dbd66 and the same job permission grants.
  • Rewrite their lockfile rows, dependency coordinate and repository owner metadata, preserving the immutable SHA and transitive dependencies.
  • Fix scripts/propagate-sha-bump.sh to accept canonical metadatastician/standards as a source, explicitly refuse a misleading legacy hyperpolymath/standards SHA bump, and include catachresis-colloquium plus stuff-of-awe when discovering estate consumers.
  • Add a planted negative-control for the transferred alias; update hermetic test mocks for canonical owner.

Verification

  • Rust/Elixir repo behavior not altered by this patch.
  • 15/15 hermetic propagation tests passed in a scratch directory on The-Titanic Debian WSL, including legacy-alias refusal, out-of-estate refusal, disallowed-title refusal, non-mainline target rejection, and dry-run payload construction. The isolated scratch directory avoids executing untrusted mise config; no secrets or live dispatch used.
  • GitHub-verified signed commit 29ecda7.

Event-chain gate

DRAFT — DO NOT MERGE OR FAN OUT YET. Check actual GitHub Actions jobs and allowed-actions setting on this branch; add small negative controls and verify lock closure. The source-policy correction alone does not migrate any other consumer, update their Actions permissions, or resolve unrelated CodeQL/Scorecard issues.

Recovery audit

The separate notification audit checked 642 PR/issue notifications and found 19 open PRs (3 drafts) plus 21 open issues; full report was written to The-Titanic Downloads. No notification states were mutated.

Summary by CodeRabbit

  • Chores
    • Updated automated checks to use the current standards workflow source while keeping existing pinned versions and permissions.
    • Expanded repository coverage for SHA update checks and clarified that the transferred standards alias is not accepted.
  • Tests
    • Updated checks to verify the current canonical source and confirm the transferred alias is refused.

@coderabbitai

coderabbitai Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Caution

Review failed

The pull request is closed.

Walkthrough

Four reusable workflow callers and related SHA propagation checks now use metadatastician/standards. The workflow paths and pinned commits remain unchanged. SHA propagation also accepts additional organization scopes and rejects the transferred hyperpolymath/standards alias.

Changes: Standards source migration

Layer / File(s) Summary
Update reusable workflow callers
.github/workflows/governance.yml, .github/workflows/hypatia-scan.yml, .github/workflows/mirror.yml, .github/workflows/scorecard.yml, tests/workflow-lock-map-test.py
Four workflow callers now reference metadatastician/standards, with their paths and pinned commits unchanged. The lock-map test expects the new owner.
Update SHA propagation repository handling
scripts/propagate-sha-bump.sh, tests/propagate-sha-bump-smoke.sh
The script allows metadatastician/standards and two additional organization scopes, rejects hyperpolymath/standards, and searches the added scopes. Smoke tests use the updated source and cover rejection of the transferred alias.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Possibly related PRs

Merge Risk: Minimal · up to b6a07

Existing Governance checks still fail on unexempt Python files; propagation remains quarantined.

- [ ] Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@hyperpolymath
hyperpolymath marked this pull request as ready for review November 1, 2026 09:33
@hyperpolymath
hyperpolymath enabled auto-merge (squash) November 1, 2026 09:33
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 1, 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-11-01T09:36:01.717501Z 29ecda7 Draft marked ready
ℹ️ 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.

@sonarqubecloud

sonarqubecloud Bot commented Nov 1, 2026

Copy link
Copy Markdown

@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: 29ecda705b

ℹ️ 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".

owner_id: 6759885
repo_id: 1352485172
'hyperpolymath/standards@75bd5994470661a099df562d6d5ad2fe744dbd66':
'metadatastician/standards@75bd5994470661a099df562d6d5ad2fe744dbd66':

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 Update the closure receipt for the canonical owner

Renaming this lock record without changing scripts/lib/lock-closure-receipts.tsv leaves all receipt rows keyed to hyperpolymath/standards. Consequently, ./scripts/audit-lock-closure.sh reports the old receipt as RECEIPT-UNUSED, reports this new record as CLOSURE-NO-RECEIPT, and exits 3 in the E2E workflow's "Audit this repository's lock closure" step. Move the existing SHA-bound receipt rows to metadatastician/standards as part of this owner migration so the recorded nested dependency closure remains verifiable.

Useful? React with 👍 / 👎.

owner_id: 6759885
repo_id: 1352485172
'hyperpolymath/standards@75bd5994470661a099df562d6d5ad2fe744dbd66':
'metadatastician/standards@75bd5994470661a099df562d6d5ad2fe744dbd66':

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 Update the lock-map regression test for the new owner

This coordinate change leaves ScannerCallerTests.test_scanner_pin_and_lock_closure hard-coded to hyperpolymath/standards@75bd599… in tests/workflow-lock-map-test.py: it asserts that the old dependency key still exists and that a workflow edge still names it. With this lockfile, both assertions are false, so the first E2E step (python3 tests/workflow-lock-map-test.py) fails on every run. Update that expected coordinate to metadatastician/standards alongside the lock migration.

Useful? React with 👍 / 👎.

@hyperpolymath
hyperpolymath merged commit 5379c6e into main Nov 1, 2026
55 of 61 checks passed
@hyperpolymath
hyperpolymath deleted the fix/canonical-standards-propagation-20261101 branch November 1, 2026 09:38
hyperpolymath added a commit that referenced this pull request Nov 1, 2026
…er migration (#639)

## Immediate cause
PR #638 changed the canonical standards workflow owner and
`actions.lock` to `metadatastician/standards`, but was merged while its
latest-head E2E lock-closure gate was red. The pre-existing review
receipts in `scripts/lib/lock-closure-receipts.tsv` still said
`hyperpolymath/standards`. The E2E failure also reported a distinct
`NOT-RUN CLOSURE-NO-RECEIPT` for `hyperpolymath/cicd-suite@4404c3c...`.

## Fix
- Repoint the eleven existing reviewed standards closure receipts to the
canonical owner while preserving the exact SHA and each audited
transitive `uses:` edge.
- Emit and add a separate receipt for
`hyperpolymath/cicd-suite@4404c3c0474e17753fe7689f3485c02890aac113` from
the **actual pinned** `.github/workflows/secret-scanner-reusable.yml`
source, which names only
`actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1` (twice;
receipt deduplicates it). This is not fabricated evidence.
- Leave the reviewed baseline exceptions intact, clearly marked as
accepted debt; do not disable the closure check or relax SHA pinning.

## Local evidence
After applying this single receipt file to the canary tree, `bash
scripts/tests/lock-closure-test.sh` in a trusted scratch directory: **47
passed, 0 failed**. The prior state was **45 passed, 2 failed**. This
fixes the exact observed Gate failure on #638.

Signed GitHub-verified commit
`72111863642438f3eb3d94e2e47f967d0cbe8bb7`.

**Draft until final hosted CI succeeds.** No estate-wide rollout,
notification archive operations, or merges are done by this PR.
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