Repository navigation
Runners publish the App's quest review check - #417
Merged
Merged
Conversation
Quest-Claim: a32b617f6fa4fe60
After a delivery publishes a head, the runner process reviews it with the other vendor's model through `quest review`, outside the agent's sandbox, in its own checkout of the published commit. It reports the round at `POST /api/runner/review`, and kix records it as the App's `quest review` check run on that commit, which the land gate already counts. A merge job now publishes its fixes, has them reviewed, and lands only a head whose review found nothing; the agent gets the findings and answers them with `responses` on its next delivery. kix records a round only from the job's current attempt, on the head it last published for the job and committed as a bot, and from another vendor's model than the job's account. The App now requests `checks: write`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…reviews with their attempt A delivery whose review found something no longer counts as the job's delivered work, so an agent that ends before answering it fails the job, and a limit still pauses it. An attempt that stops, is cancelled, or ends aborts its running review, which kills the reviewer CLI, and waits for it before removing the checkout. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An abort now sends SIGTERM, kills the CLI after a grace period, and rejects the turn on its close, so the runner never removes a checkout a reviewer still runs in. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kixelated
marked this pull request as ready for review
November 3, 2026 03:23
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 32 minutes. View limit details
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. CodeRabbit Verify
|
Collaborator
Author
|
Two follow-ups from the /quest-spawn coordinator's evidence check. Both are relevant to this PR's change, so they belong here rather than in new quests:
(Written by Claude Opus 5.5) |
kixelated
added a commit
that referenced
this pull request
Nov 3, 2026
Resolve conflicts with head approvals (#402) and runner review checks (#417): the trust-by-stage devShell row now names head approvals, the permission note drops checks-write, and the runner paragraph keeps both the approval flow and the unverified VM claim. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Runners now review the heads their jobs publish. kix records each review as the App's
quest reviewcheck, so a runner's head can land through kix's land gate without a person's approval. This finishes Runner review checks, from moq-dev/quest#351's follow-ups.Changes
src/runner/review.ts,src/runner/job.ts): afterdeliverpublishes a head, the runner reviews it before the tool returns. It skips heads the job did not publish and pull requests that stay drafts. The runner process runsquest reviewin-process, outside the agent's sandbox. It reviews a separate checkout of the published commit, beside the job's checkout, on akix-review/<job>branch, so later rounds resume the same reviewer session. The agent receives the findings and answers them through a newresponsesargument on its nextdeliver.CLAUDE_CONFIG_DIR), through the Claude Code CLI the runner pins.quest runner, as a localquest reviewdoes.cloudflare/src/jobs/review.ts,POST /api/runner/review): validates the report and writes the App'squest reviewcheck run on that commit,successorfailure, on behalf of the job's requester. The check text shows the findings inside a fenced block. Before writing, kix requires all of the following:checks: writereplaceschecks: readin the manifest.cloudflare/GITHUB.mddocuments runner reviews and the operator step: an already-registered App must be raised to Checks: write, and its installations must accept the change. The fake GitHub now models writing check runs.quest review(src/cli/review.ts): aResponsesErrorsubclass and an exportedsessionFile, so the runner can show the agent a clear error and clean up a finished job's review session.quest/m0/kix/review-check.md. Adds a live check of the real checks API to Operator setup.Choices made without asking
POST /api/runner/review, like publication, so the GitHub write never holds up the runner hub's serialized messages.quest runner(CODEX_HOMEor Codex's default), using whichevercodexis on that user's PATH. This matches a localquest review. Claude Code reviews use one of the runner's own Claude Code accounts that is not rate-limited, through the pinned CLI. Alternatives considered:quest runner account add, kept out of job routing;quest review, which needs read-only sandboxing for opencode, since opencode loads plugins from the checkout.limited.Review
Codex CLI (
quest review),gpt-6.1-solat medium effort, session01a19f65, 3 rounds againstorigin/main:src/runner/job.ts: a delivery whose review reported findings still counted as delivered, so the job completed. Fixed: it fails, or pauses as limited, until the agent answers the findings.src/runner/review.ts: a stopped or cancelled attempt never cancelled or awaited its reviewer. Fixed: the attempt's abort signal kills the reviewer CLI, and the attempt awaits it before removing the checkout.src/cli/review.ts: an aborted turn rejected before the reviewer process had exited. Fixed: it rejects only on the child'sclose, sending SIGKILL after a 10 s grace period.The current head, 3fbf62e, only adds a conflict-free merge of
origin/main:git diff origin/main...HEADis identical to the diff of the reviewed head.Local checks:
just checkandjust testpass (943 CLI tests and 477 Worker tests).Suggested follow-ups
QUEST_RUNNER_CODEX, or put it on the reviewer's PATH), after the review-harness quest confirms a version works withquest review's flags.quest reviewrunsgit fetchandls-remotesynchronously. Inside the runner process that blocks the event loop, including the WebSocket, for the length of the fetch.🤖 Generated with Claude Code
(Written by Claude Opus 5.5)