Skip to content

feat(competition): engine-lane auto-merge on dethrone, quarantined - #578

Open
plind-junior wants to merge 1 commit into
koth-ladderfrom
feat/engine-lane-automerge
Open

feat(competition): engine-lane auto-merge on dethrone, quarantined#578
plind-junior wants to merge 1 commit into
koth-ladderfrom
feat/engine-lane-automerge

Conversation

@plind-junior

Copy link
Copy Markdown
Member

removes the human from the engine-lane merge loop: a strategy submission that clears the dethrone band against the ladder branch now arms native auto-merge, same as the kit lane. the benchmark decides what enters contrib/.

the write path is deliberately split. the scoring job is unchanged - it executes the untrusted challenger under the sandbox and holds a read-only token plus the comment scope. a new arm job holds the write scopes, checks out nothing, runs no challenger code, and only turns the gate's verdict into gh pr merge --auto --squash, gated on the pr base being KOTH_LADDER_BASE. prs against main/test remain scored-and-commented only.

the containment contract is now stated explicitly in the workflow header and the vouch.strategy docstring, and each leg was verified in code: merged contrib strategies execute exclusively through the sandbox child (score_strategy.py wraps both arms in SandboxProxy, and so does vouch bench run --strategy/--against); the ledger and ratchet scripts are stdlib-only file rewriters that import nothing from the merged tree (promote_champion.py copies bytes); and promotion into src/vouch as trusted importable default code remains a human-reviewed pr - the benchmark is never the sole gate to code users install.

the accepted residual is documented rather than papered over: a sandbox escape during scoring can forge its own verdict and auto-merge its pr. what it lands in is the quarantine it already runs in - no write token, no secrets, no in-process import path. the sealed monthly run still settles payouts, so a gamed daily verdict buys a provisional throne, not money.

docs (koth-strategy-lane.md table + honest-boundary section) and the scorecard comment stop claiming engine code never auto-merges. verification: zizmor offline clean, ruff + mypy clean, strategy/bench tests green.

a winning strategy submission now auto-merges on the ladder branch -
the benchmark decides what enters contrib/, with no human in the loop.
the arm job is deliberately separate from the scoring job: scoring
executes the untrusted challenger and keeps a read-only token; arming
holds the write scopes, checks out nothing, and runs no challenger
code. auto-merge fires only when the pr base is KOTH_LADDER_BASE,
exactly like the kit lane.

what keeps this sane is the quarantine, now stated as the contract in
the workflow header and the strategy module docstring: merged contrib
strategies execute exclusively through the sandbox child (both gates
and the local bench wrap them in SandboxProxy), the ledger and ratchet
scripts treat the winner as text and import nothing, and promotion
into src/vouch as trusted importable default code remains a
human-reviewed pr. accepted residual, documented: a sandbox escape
during scoring can forge its own verdict and land its pr - inside the
quarantine it already runs in, with no write token, secrets, or
import path reachable.

docs and the scorecard comment updated to stop claiming engine code
never auto-merges.
@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (2)
  • test
  • main

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: a0765c8d-608a-488b-be82-49e7bf37dc34

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/engine-lane-automerge

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.

@github-actions github-actions Bot added docs documentation, specs, examples, and repo guidance ci github actions and automation size: S 50-199 changed non-doc lines ci: passing ci is green labels Jul 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci: passing ci is green ci github actions and automation docs documentation, specs, examples, and repo guidance size: S 50-199 changed non-doc lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant