Skip to content

fix(agent-mention): enforce repository_dispatch property cap on current main - #911

Draft
seonghobae wants to merge 4 commits into
mainfrom
fix/agent-mention-opencode-payload-cap-current-main
Draft

fix(agent-mention): enforce repository_dispatch property cap on current main#911
seonghobae wants to merge 4 commits into
mainfrom
fix/agent-mention-opencode-payload-cap-current-main

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Purpose

Replace stale/diverged #910 with the same root-cause repair on current protected-main source. GitHub repository dispatch accepts at most 10 top-level client_payload properties. The protected-main OpenCode mention route carried 14 on the router→wrapper hop, so an authorized mention could be rejected before the trusted wrapper ran.

Exact current identity

  • base branch: main;
  • base at branch creation: 6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba;
  • exact current head: 4e6ecf5c7e0dc88db8f75b8b1faaf9beeb6e1d9b;
  • Draft while exact-head security/supply-chain review and independent approval remain incomplete;
  • fix(agent-mention): keep OpenCode dispatch payload under 10-property limit #910 remains the stale historical implementation line and is not a merge candidate.

Root-cause contract

The durable invocation claim still binds repository, PR, exact head/base, base branch, source comment, requesting actor, requested agent, and the five immutable review-only controls:

  • trigger_reviews=true;
  • review_dispatch_limit="1";
  • enable_auto_merge=false;
  • update_branches=false;
  • merge_mode="disabled".

Transport is narrower than authority binding:

  1. router→trusted OpenCode wrapper carries exactly nine identity/claim fields, staying under GitHub's ten-property boundary;
  2. the trusted wrapper reconstructs the five fixed controls and recomputes the complete invocation digest before durable-ledger access;
  3. wrapper→authoritative merge-scheduler carries exactly ten scheduler fields and omits wrapper-only identities;
  4. the durable exact-name Actions artifact ledger continues to bind the complete canonical claim, so payload shrinking does not weaken idempotency or review-only policy.

No mutable caller-selected review/merge controls, secret, reviewer authority, or branch-write capability is added.

TDD evidence

Initial RED head 02a86f342ff779145ae7d023c7f096ede4148b04 added the permanent property-cap contract. Agent Mention Router Quality CI reproduced the defect against protected-main behavior: OpenCode initial payload had five extra behavior properties beyond the allowed identity set.

After the current-main router/wrapper repair, exact head f0bb2b75283fe56f3d5cce1e82885fca7b0a4996 exposed one stale pre-existing test that still expected the old 14-property transport. That was a test-contract mismatch, not a production rollback requirement. The current head updates that expectation while separately asserting the full canonical claim still contains all five fixed review-only controls.

At exact current head 4e6ecf5c7e0dc88db8f75b8b1faaf9beeb6e1d9b, Agent Mention Router Quality CI completed successfully. Scorecard PR also completed successfully at the latest refresh; CodeQL, Python Security, Security Scan, SAST Semgrep, Secret Scan, OSV-Scanner PR, and SBOM Generation were queued or pending at that observation and therefore are not counted as passing until complete.

Supersession / acceptance

Do not close #910 until this current-main successor has complete exact-head machine/security evidence and the stale lineage can be preserved without ambiguity. Do not mark Ready or merge until current automated source review, zero valid unresolved findings, a qualifying independent non-author formal approval, independently resolved live-base compatibility, and branch protection are satisfied.

After protected integration, exercise an authorized OpenCode mention through the real router→wrapper→scheduler path and require a durable exact-name invocation artifact plus review-only downstream behavior. Predecessor or local-only evidence does not close that operational scenario.

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@seonghobae, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 26 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 20016dae-42d6-4aee-9d5a-522fea818a1c

📥 Commits

Reviewing files that changed from the base of the PR and between 6eb06cd and 4e6ecf5.

📒 Files selected for processing (4)
  • .github/workflows/agent-mention-opencode-dispatch.yml
  • scripts/ci/agent_mention_router.py
  • tests/test_agent_mention_complete_payload_binding.py
  • tests/test_agent_mention_router.py

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

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

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Please perform a fresh semantic source review of unchanged exact head 4e6ecf5c7e0dc88db8f75b8b1faaf9beeb6e1d9b against live protected base 6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba. All nine exact-head workflows are terminal-success, the branch is zero commits behind, and no formal review or unresolved thread currently exists. Keep Draft; this request is source-review evidence only and is not merge approval or protected-main acceptance.

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

@seonghobae I will perform a fresh semantic source review of exact head 4e6ecf5c7e0dc88db8f75b8b1faaf9beeb6e1d9b against base 6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba. I will keep #911 as Draft. This action does not approve the pull request or indicate protected-main acceptance.

⚠️ Action not completed

Review rate limited.

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.

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