Skip to content

quest: plan merging through a host gate - #291

Merged
moq-bot[bot] merged 1 commit into
mainfrom
quest-plan/host-land
Oct 30, 2026
Merged

moq-bot[bot] merged 1 commit into
mainfrom
quest-plan/host-land

Conversation

@kixelated

Copy link
Copy Markdown
Collaborator

Plans the host-land epic, ranked first in m0. Picking a PR to merge stops costing a merge sub-agent. A gate on the maintainer's host lands small batches, and a Codex fixer replaces bisection.

Quests

  • [S] Inline merge: /quest-merge queues inline when a counted review names the head; otherwise it recommends /quest-iterate. /quest-spawn and /quest-complete recommend /quest-iterate for PRs with no review.
  • [XS] moq-bot's App key: waits on the maintainer to place the key on the gate host.
  • [L] Host daemon: quest land serve builds a batch of the longest-queued PR plus up to floor(log₂ n) PRs that merge cleanly, runs one sandboxed check on the tip, and pushes one squash commit per PR as moq-bot. When the check fails it ejects the whole batch. It doesn't bisect. land.yml is deleted.
  • [M] Codex fixer: one attempt per ejection. It makes only mechanical fixes, requeues healthy PRs unchanged, and hands back the rest. The guide gains a mechanical-fix review exemption.
  • land-adopt: fork verification moves to the host gate.

Decisions (user, 2026-10-30)

  • Goal: ✅ as stated / also moq adoption / narrower
  • Gate host: keep GitHub Actions / ✅ this host
  • Architecture: host orchestrates, CI on Actions / ✅ everything on this host / everything in Actions
  • Queue signal: ✅ pinned auto-merge + quest:merge, held by the unreported quest land check / label only
  • Fixer retry cap: 2 / ✅ 1 / review-round checkpoint
  • Push credential: your gh auth + sandbox / ✅ moq-bot App key on host, sandboxed check / gh auth, no sandbox
  • Runtime: systemd timer / ✅ long-running daemon
  • Fixer changes: Claude review / ✅ mechanical only, everything else ejected to the maintainer
  • Mechanical: ✅ no behavior change, recorded in ## Review / tool-verifiable only
  • Batch: ✅ FIFO base + floor(log₂ n) / quest priority
  • #289: ✅ land now / close
  • #277: ✅ close as superseded / land as stopgap
  • Milestone: ✅ m0, first

Overlaps: the plan replaces the kix/eject-fix quest proposed in #276. Inline merge has to be reconciled with #288 and #276, which edit the same skills.

Review

  • Reviewer: Codex gpt-6.1-sol, medium, quest review --base origin/main, round 1
  • Head: 26fe26e
  • Findings: none

quest check and quest check --base origin/main pass.

🤖 Generated with Claude Code

(written by Claude Opus 5.5)

@coderabbitai

coderabbitai Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: e0092c72-1d4f-4005-a90f-5883d5e6d657
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

* quest: plan merging through a host gate

Inline merge picks, small batches landed from the maintainer's host, and an
asynchronous Codex fixer for ejected batches instead of bisection.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@moq-bot
moq-bot Bot force-pushed the quest-plan/host-land branch from 26fe26e to 5c43f01 Compare October 30, 2026 16:10
@moq-bot
moq-bot Bot merged commit 5c43f01 into main Oct 30, 2026
@moq-bot
moq-bot Bot deleted the quest-plan/host-land branch October 30, 2026 16:10
@kixelated

kixelated commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator Author

Three gaps for the host-land plan, from running moq-dev/moq through quest land on 2026-10-30:

  1. An infrastructure failure gets treated as the PR failing. The self-hosted queue runner ran out of disk mid-check in run 41033441219 and run 41037883163. Bisection then ejected ci: unify dependency features with a cargo-hakari workspace-hack moq#6985 and fix(net): answer IETF FETCH as the JS publisher does moq#6999 as failed_checks with "the check failed with it alone on the base". Under daemon.md that becomes an ejection plus a fixer run. It should produce no verdict: the batch stays queued, and the gate reports that the host is unhealthy. Detecting that could mean a free-space and runner-health check before the run, and treating ENOSPC or a killed runner as no verdict. Separately, the runner crashed on ENOSPC at 14:49Z and stayed down for 36 minutes, which left the batch stuck in queued.

  2. Lockfile conflicts get ejected instead of regenerated. Three of today's quest land ejections were conflicts only in Cargo.lock, Cargo.toml or flake.lock (refactor(kio)!: move moq-clock into kio::clock moq#7027, #6985, #7314). fixer.md regenerates lockfiles, but only after an ejection. Doing it while building the batch, as quest resolve already does for quest link lists, would save the ejection, the fixer run and the extra round trip.

  3. Hand-back should go through quest:iterate. When the fixer gives up, swap the label to quest:iterate and write a ## Decisions needed section that names the decision, instead of only leaving a comment. /quest-complete and the inbox then see a PR that needs a decision, not a PR that silently stopped.

  4. quest merge and quest status papercuts that nearly every merge agent hit today:

    • quest status keeps printing the old landing-stopped line after the PR is queued again.
    • quest merge <pr> <token> exits 3 when an ejection has already removed the label, instead of taking the PR fresh.
    • The merge skill says --land makes a merge commit, but quest land squashes.

(Written by Claude Opus 5.5)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant