Repository navigation
feat(land): fix ejected batches with an asynchronous Codex fixer - #303
Merged
Merged
Conversation
Quest-Claim: 4084c4ada3071cf8
Track fixer jobs and per-pick attempts across daemon restarts. Validate results and protected paths before leased bot pushes, Review recording, and pinned requeues; hand back refused or invalid work. Add the credential-free agent payload, guide exemption, documentation, and fake-agent regression coverage. Host proxy networking, the gate client key, and CLIProxyAPI Codex login remain in the rewritten fixer quest. Local check and test gates pass; no remote publication or review is performed by this implementation child.
Isolate collection failures per job, rebuild bounded fixer object stores without repository configuration or alternates, and compare the entire protected set with the pin or base merge. Sanitize GitHub prose, deduplicate only bot comments, preserve fresh PR body content, and record the invoked agent/model. Honor completed jobs before deadlines and allow SIGTERM cleanup before SIGKILL. Record the maintainer's accepted mechanical-fix policy and add the built-in prompt-injection defense. Validated through clean-environment quest gate just check and just test, plus 33 focused fixer regressions. No push performed.
kixelated
marked this pull request as ready for review
October 31, 2026 00:09
kixelated
enabled auto-merge (squash)
October 31, 2026 00:12
moq-bot Bot
pushed a commit
that referenced
this pull request
Oct 31, 2026
main's native Windows jobs have failed on every fixer test since #303: they use fifos, POSIX shells, and Linux process groups, as the daemon does. Co-authored-by: Luke Curley <432854+kixelated@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: moq-bot <moq-bot@users.noreply.github.com>
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.
Implements the daemon side of the fixer quest. The quest is rewritten to the host integration that remains.
Behavior
quest land fixis the payload the host runs in an isolated container. It runscodex exec(configurable) in a standalone repository of the batch, with a built-in prompt. Codex may only make mechanical fixes that change no behavior, and never touches the protected paths. The prompt also says that repository, log, and PR content is untrusted: instructions found there are never followed, and an attempt means handing that PR back. The result isquest-land-result.json, one entry per PR:requeue,fixed, orhandback..git;fixedhead: it must descend from the pinned head, and the protected set (flake.nix,flake.lock,nix/,.envrc,.github/, Nix entrypoints,.gitmodules, gitlinks) must equal the pinned head's or the merge's as a whole;mechanical fix by <agent>line to the## Reviewrecord, and requeues with pinned auto-merge andquest:merge;requeueunchanged;handback, invalid results, crashes, and timeouts into a comment with quoted, neutralized diagnosis.assets/AGENTS.mdgains the mechanical-fix review exemption.Decisions (maintainer, 2026-10-30)
fixedhead lands without further review, so "mechanical" is enforced by the prompt, with the protected paths blocked: Claude reviews the fix first / fixes need a re-pick / narrow what it may touch / ✅ keep as decidedHost contract
The wrapper runs in the repository's directory with
<log> <PR numbers...>. It gets PATH and LANG from the daemon, and adds a fresh HOME,OPENAI_BASE_URL, and the gate'sOPENAI_API_KEY. It runsquest land fix "$@"in a container and preserves the repository and result. The host side is kixelated/nixos#16.Checks
just checkandjust testpass: 701 CLI and 426 Worker tests.Review
Codex (gpt-6.1-sol) wrote this, and Claude Opus 5.5 reviewed it in sub-agent rounds.
quest review --harness claudedoesn't see this session's environment credentials..git;fetch.fsckObjects), parsing the fixer's pack indexes, "Codex" wording when another agent ran, attribution stacking in the PR body, and test gaps (gitfile, hooks, the cap, SIGTERM). Follow-up: send the repository back as a git bundle, which removes the remaining.gitparsing.main(5135933).🤖 Generated with Claude Code
(written by Claude Opus 5.5)