Skip to content

feat: stage security merge protection and audit effective policy - #87

Merged
zoeyrose merged 24 commits into
mainfrom
feat/security-merge-protection
Oct 12, 2026
Merged

zoeyrose merged 24 commits into
mainfrom
feat/security-merge-protection

Conversation

@zoeyrose

@zoeyrose zoeyrose commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

Summary

Close active-repository security governance gaps while keeping required human approvals at zero and normal Dependabot updates working. Archived nawerhals is excluded. The policy stays compatible with GitHub Team and existing public-repository security entitlements.

Implementation / behavior

  • Restore service-updater's existing pull-request, aggregate CI and release-tag protections through the governed inventory.
  • Add read-only Dependency review workflows here and in the component PRs below. Newly introduced high/critical vulnerabilities in runtime, development and unknown scopes fail; moderate/low findings and license scores do not block. PR retargeting and merge groups are covered without checkout or contributor-code execution.
  • Record per-gate pending/enforced source intent for repository-owned Dependency review and CodeQL high/critical gates. Pending only probes landed successful producer evidence; reviewed promotion precedes first installation. Enforced intent makes absence drift and permits restoration after deletion or later producer failure. Preserve aggregate checks, zero approvals and owner pull-request-only bypass. Existing gates must be effective on the default branch with the intended tool/context before initial-readiness grandfathering applies.
  • Use ordinary required CI with repository writers explicitly trusted. The Actions app/context does not attest immutable workflow bytes; a writer can modify the producer in the same PR. The high/critical gate remains for ordinary dependency changes, with zero required human approvals. This security finding is an explicitly accepted policy limitation, not a claim of tamper resistance.
  • Require Rust coverage in content-toolkit while preserving its other configured languages. Require Classic’s five semantic scope/language partitions independently of the producer’s current declarations; every declared additional partition also needs its own successful job and matching analysis. Producer or run subsets cannot qualify. Readiness structurally binds executable classifier outputs, dynamic matrix, scoped generated configuration, official full-SHA CodeQL actions and the unconditional aggregate. Qualification also requires ordinary PR activities targeting the live default branch without path filters. Trusted producer helpers retain path semantics; no action-version or source-path catalog is added.
  • Allow publishing action families with @* while retaining full SHAs in workflows. Persist SHA rollout as pending; promotion requires reviewed source state and a proven ordinary action-update PR. Canaries require active selected-actions policy, an enabled repository, and configured plus effective status contexts including Dependency review. Legacy requirements come from full protection state; ambiguous absence responses fail closed, while an exact disabled response requires the identity-bound read-only GraphQL null proof. Stored merged canaries remain verifiable after GitHub clears association arrays; open canaries require current-base proof. Reusable-workflow updates cannot qualify as action-pin canaries. Unchanged reusable references and normal action subpaths remain supported. No parallel version catalog or exact-SHA allowlist assertions are introduced.
  • Stage conservative Actions mode, then selected patterns, then revalidated proof before restoring SHA enforcement; re-read live SHA state after staging. Converge repository workflow-permission overrides and retire only exact owned security gates removed from inventory. Repository-scope aggregate CI retirement requires exact reviewed prior repository/ruleset identities and contexts; missing provenance retains the rule. Existing security-gate PUTs re-read and validate the rule immediately before updating, retaining concurrent modifications. Pending existing-gate proof also binds its checked default branch to final repository metadata, preventing a branch change from activating unqualified protection. The final detail must also retain the proven enforcement and ref applicability; concurrent disabling or retargeting invalidates pending proof while enforced restoration remains supported. Security-gate retirement re-reads the exact rule after the repository metadata fence immediately before DELETE and stops on unreadable evidence. Complete validated paginated ruleset inventories precede identity, absence, update and retirement decisions in both scopes; failed or malformed pages and duplicate IDs/names stop publication. Preserve archived repositories, foreign rules, modified same-name policy and existing security attachments.
  • Audit complete effective default and declared maintenance branch rule types and parameters, rejecting undeclared integrity or restriction rules while preserving the intended combined CI/security checks. Audit repository/inherited policy, complete organization scopes, security-gate ownership, scanning coverage, readable configured language arrays, security features, permissions and rollout state. Reject stale, contradictory or ambiguous producer evidence; a newer queued/failing check cannot hide behind an older success. Audit also reads full legacy protection on every active default and declared maintenance branch; any presence is manual drift under the canonical ruleset contract, and unreadable responses fail closed. The exact repository-disabled REST response uses a fixed read-only GraphQL query to prove a matching active repository and exact branch with an explicitly null legacy association; historical rules on other refs remain untouched. Retained named security gates on non-target repositories are drift even when disabled, modified or scoped to another branch.

Component workflow PRs

Repository Dependency
agent-integrations #2
atrinik #648
classic #591
client #67
content #267
content-toolkit #32
deploy-control #11
devcontainer #57
editor #33
metaserver-worker #178
observatory #51
playtester #31
protocol #50
renderer #38
resources #22
server #99
service-updater #13
sound #38
tools #29
website #70

Validation

  • Independent security review approved the integrated policy, subsequent exact repairs and normal integration of the latest merged governance base, including the protected development-environment inventory and value-free credential metadata. All 173 readiness tests pass, including current/historical base binding, merged association fallback, queued checks, contradictory references and freshness failures. Default and advanced CodeQL readiness reselect newest analysis coverage before returning; failure, deletion, zero-rule scans and changing successful records cannot qualify.
  • All 26 integrated policy shell suites pass on the final review repairs, including concurrent retirement changes and disabled, retargeted or modified non-target rules. Independent audit, publisher and schema suites pass. Exact optional GitHub API defaults normalize in audit and publisher without hiding nondefault, malformed, unknown-field or real scope drift. Pending gates never install; enforced missing gates remain drift even with failing producers. Restoration fences repository ID, full name and archive state, retaining foreign and unexpectedly modified rules. Portable shell assertions also pass with ripgrep absent; credential-leak assertions remain active.
  • JSON validation, ShellCheck, actionlint and whitespace checks pass. Fresh required CI and Codex code/security reviews must pass at the published final head before merge.
  • The actual pinned official dependency-review action passed clean, moderate, high, critical, unknown-scope, unreadable API and merge-group fixtures. License metadata does not introduce an extra blocking gate. A fresh independently reviewed Node 24 reproduction confirms the pinned production bundle natively infers merge-group SHA refs without explicit inputs; vulnerability/API/malformed-event failures remain enforced.
  • Read-only live planning preserves existing security attachments, accepts landed merged producers and defers missing or unhealthy producer proof. A live Atrinik dependency preflight confirms the merged-PR association fallback. Fresh read-only audit results distinguish unapplied desired-state drift from pending rollout; no successful live activation is claimed.

Limitations / follow-up

This changes desired source only; no live settings apply or workflow dispatch is included. Merge available component workflows and this reviewed policy, then inspect a fresh plan from merged source before separately authorized activation.

Content #267 and resources #22 are explicitly held until compatible upstream release-tool vulnerability fixes exist. No advisory exceptions or weakened thresholds are added. Devcontainer #57 is merged after required CI and both Codex reviews passed. Its unchanged-input branch-push benchmark remains separate and is not claimed passed. The held content/resources dependency gates remain deferred until their producers land and pass.

Content-toolkit needs its first successful Rust scan after configuration rollout. Classic's latest read-only readiness probe now qualifies; its gate remains pending until reviewed source promotion and fresh live proof. Every activation rechecks live proof rather than relying on this description. Existing CodeQL default setup exempts Dependabot PRs from its scan merge requirement; dependency review remains independent. Merge-queue limitations and alert semantics are documented in README.

SHA enforcement remains pending. Promote the phase and accepted canary through normal source review only after the actual allowlist and an ordinary action-update PR prove compatibility. Pending command-line canaries only probe readiness. The APIs establish current conservative policy and PR-run proof, not a historical policy-settings attestation. Enforced drift is reported and restored only with revalidated proof.

Rollback preserves enforced gate intent on later PR failures. Initial gate intent remains pending until reviewed producer qualification and source promotion; no new gate installs in this change. An intentional rollback removes targets and their activation entries through reviewed inventory changes and separately authorized publication, deleting only exact repository-owned managed rulesets. Existing repository-level aggregate CI also requires a retained explicit prior-rule retirement record. Existing security baseline attachments and aggregate CI remain required.

@zoeyrose
zoeyrose marked this pull request as ready for review October 11, 2026 16:35

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 11, 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-10-12T00:17:32.751740Z bd9ae64 Manual request
🔒 Security Review ✅ Completed 2026-10-12T00:31:26.784328Z bd9ae64 Manual request

Security findings

Advisory findings (3)

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

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Another round soon, please!

Reviewed commit: 76d56bae75

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

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 76d56bae75

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

Copy link
Copy Markdown
Member Author

@codex review

@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: 235e05c66e

ℹ️ 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 bin/publish Outdated
Comment thread bin/publish
Comment thread lib/security_readiness.py Outdated
Comment thread bin/audit Outdated
Comment thread bin/audit Outdated
Comment thread bin/audit
@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 235e05c66e

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

Copy link
Copy Markdown
Member Author

@codex review

Copy link
Copy Markdown
Member Author

@codex review

@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: 295e6ec2dc

ℹ️ 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 lib/security_readiness.py Outdated
Comment thread bin/audit
@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 295e6ec2dc

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

Copy link
Copy Markdown
Member Author

@codex review

@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: 2a5a1a9409

ℹ️ 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 lib/security_readiness.py Outdated
Comment thread bin/audit
Comment thread bin/publish Outdated
Comment thread lib/security_readiness.py Outdated

@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 Security Review · Automatically triggered

Here are some automated security review suggestions for this pull request.

Reviewed commit: 2a5a1a9409

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

Comment thread config/rulesets/dependency-review.json

Copy link
Copy Markdown
Member Author

@codex review

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

ℹ️ 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 bin/publish Outdated
Comment thread bin/publish

@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 Security Review · Automatically triggered

Here are some automated security review suggestions for this pull request.

Reviewed commit: 7d4f137a97

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

Comment thread lib/security_readiness.py Outdated

Copy link
Copy Markdown
Member Author

@codex review

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 6115755d45

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

Copy link
Copy Markdown
Member Author

@codex review

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

ℹ️ 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 lib/security_readiness.py
Comment thread config/security-merge-protection.json
Comment thread bin/publish
Comment thread bin/audit Outdated
@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: e794287a74

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 0c17b40a56

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@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: 0c17b40a56

ℹ️ 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 bin/publish Outdated
Comment thread bin/audit

Copy link
Copy Markdown
Member Author

@codex review

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

ℹ️ 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 bin/publish
@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: f8179b5ecc

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

Copy link
Copy Markdown
Member Author

@codex review

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 5bf0ce9221

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@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: 5bf0ce9221

ℹ️ 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 lib/security_readiness.py Outdated
Comment thread bin/publish Outdated

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 1e6423c7fc

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@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: 1e6423c7fc

ℹ️ 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 bin/audit

Copy link
Copy Markdown
Member Author

@codex review

Copy link
Copy Markdown
Member Author

@codex security review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep them coming!

Reviewed commit: bd9ae640a3

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

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review

Security review completed. No security issues were found in this pull request.

Reviewed commit: bd9ae640a3

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@zoeyrose
zoeyrose merged commit 35cab68 into main Oct 12, 2026
9 checks passed
@zoeyrose
zoeyrose deleted the feat/security-merge-protection branch October 12, 2026 01:25
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