Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 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. Comment |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_06959dbb-f1ad-4dea-902b-d18ec875c915) |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Reviewed. This is a well-scoped fix:
No bugs or scope issues found. |
ReviewWent through the diff focused on correctness, security, and scope. Scope: Matches the stated goal precisely — fail-closed validation of Duplication check: Correctness spot checks:
No bugs, security issues, or out-of-scope additions found. Test additions are proportionate to the five call sites touched. |
…ust-role-shapes * origin/main: Follow-up: calibration GitHub reader needs UTF-8 and surrogate gates (#700) Make maintainer decision requests understandable (#849) Align coordination backend preset vocabulary (#843) Complete replicate-ci run-history recipe (#842) Standardize human-attention labels and agent attribution (#732) # Conflicts: # skills/pr-batch/bin/stale-assignment-sweep
|
Reviewed the diff. This is a well-scoped, security-positive change: No correctness or security bugs found. Left one inline nit on The large diff in |
|
🤖 Codex Review follow-up completeAll current review feedback has a recorded outcome. No code change was required. Next scan: Start after this comment. Say Agent detailsPosting runtime: Codex · Astra Scan scope: Full history; no prior address-review summary existed. Findings that matteredNone. The current-head Claude review reported no correctness or security bugs. Optional suggestions
Skipped items
Deferred-work tracking: No issue created; repository policy does not track unreproduced style-only suggestions. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bdbc26db16
ℹ️ 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".
Allow duplicate keys through the JSON parser so the guard's own scanner preserves its fail-closed diagnostic, and translate parser-level surrogate failures to the existing invalid-scalar contract. Refresh the temporary closeout byte ceiling after current main exceeded it.
Anchor surrogate classification to parser-owned error prefixes so ordinary malformed ASCII input containing the word surrogate keeps the generic JSON recovery action.
|
Reviewed the diff ( Core logic is sound. Error boundaries check out. Test coverage matches the stated "behavior shift." The blank-bot-entry test in One scope note (not a blocker): the No correctness, security, or performance issues found. No inline comments to add. |
Review summaryReviewed the diff focused on correctness, security, and scope. This is a well-targeted fail-closed fix: No correctness or security bugs found. One scope note posted inline: the Test coverage (malformed hash/int/mixed-array/blank-string cases, legacy scalar compatibility, per-repo fleet continuation) looks proportionate to the change. |
|
🤖 Codex Review follow-up completeThe current-head review found no correctness or security defects. The one integration finding was fixed and both review threads now have recorded outcomes, so the next routine check can start after this comment. Agent detailsPosting runtime: Codex · UNKNOWN Scan scope: Review activity after the previous summary at 2026-09-14T03:43:15Z. Findings that mattered
Skipped items
Next scan: Start after this comment. Say |
Why
Refs #202. This PR retains contract 2 only: malformed bot trust-role values must fail closed before normalization. Contracts 3-6 remain open.
PR #799 moved the security-preflight trust parser into
GithubActorTrust, so the original draft no longer applied cleanly. This revision reconciles the old branch with currentmainand keeps only the required malformed-role behavior.What changed
trusted_botsandtrusted_metadata_botsas a legacy nonblank scalar string or an array of nonblank strings before normalization.How to review and verify
GithubActorTrust.strict_string_listand the standalone seam-doctor equivalent.trusted_usersortrusted_teams.Test plan
trusted_bots: 42(red evidence).ruby skills/pr-batch/bin/github-actor-trust-test.rb— 35 runs, 83 assertions.ruby skills/pr-batch/bin/pr-security-preflight-test.rb— 346 runs, 4,107 assertions.ruby bin/agent-workflow-seam-doctor-test.rb— 343 runs, 2,780 assertions.ruby skills/pr-batch/bin/stale-assignment-sweep-test.rb— 51 runs, 346 assertions.ruby skills/pr-batch/bin/target-membership-guard-test.rb— 38 runs, 722 assertions under JSON 2.6.3, 2.21.2, and 3.0.2.ruby skills/pr-batch/bin/integration-closeout-contract-test.rb— 19 runs, 749 assertions, one unchanged skip.ruby bin/push-downstream-test.rb— 163 runs, 1,045 assertions, including the workflow dependency-path contract.git diff --check origin/main...HEAD— clean.bin/validate— full clean-checkout validation passed, including revision-sensitive installer and stack suites.Agent details
Exact-head and replay evidence
b58669affc2da35c728fae80e659ea0db278abf23f31e19023ffef7003b8ae357155dab88660bfbe71566df0b1776a096d931ab7157a136ae89cecdcfebda825ea6f2bf5f3f2ca4bfb20cdf544a57a00629e35d83745af14f385a7006ab818dab6c2a266deferred_to_update_changelogCoordination and reviewer telemetry
Decision log
Merge confidence
The scoped implementation, maintainer-authorized current-main baseline repairs, independent review, and full local validation are clean at the exact candidate head. Merge authority is
auto_merge_when_gates_pass; hosted current-head gates remain authoritative.Note
Medium Risk
Touches trust allowlist parsing at several security-sensitive seams; changes are defensive fail-closed validation with broad test coverage, but misconfigured repos will start failing earlier.
Overview
Malformed
trusted_bots/trusted_metadata_botsvalues now fail closed before login normalization, so hashes, numbers, mixed-type arrays, empty strings, and whitespace-only entries cannot slip into allowlists or vanish during coercion.GithubActorTrust.strict_string_listis the shared rule (legacy scalar strings still work). The same check is wired through push-downstream contract resolution, pr-security-preflight, stale-assignment-sweep, and agent-workflow-seam-doctor (localstrict_trust_role_listso the doctor stays usable without the skill pack). Downstream fleet/registry behavior stays per-repo: one bad consumer still fails that repo with a clear message. The push-downstream CLI rescuesRuntimeErrorso bad--trusted-*flags printFAIL: …without a backtrace. Preflight trust errors keep a consistentInvalid trust config <path>:prefix.Behavior shift: blank/null bot list entries that used to be ignored during preflight now abort at config load with the same shape error.
Reviewed by Cursor Bugbot for commit febda82. Bugbot is set up for automated code reviews on this repo. Configure here.