Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions quest/m0/ci/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ or nightly run; measured low-value redundancy may be retired.
Measured 2026-10-13 from the org billing API (Oct 1-13, all moq) and a 1-in-4
sample of job timings:

| Runner | Minutes | List price |
|---|---|---|
| macOS | 33k | $2,066 |
| ARM Linux | 98k | $492 |
| Windows | 34k | $344 |
| x86 Linux | 30k | $178 |
| Runner | Minutes | List price |
| --------- | ------- | ---------- |
| macOS | 33k | $2,066 |
| ARM Linux | 98k | $492 |
| Windows | 34k | $344 |
| x86 Linux | 30k | $178 |
Comment on lines +18 to +23

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This reformatting is unrelated to the quest. The repo excludes quest/ from its markdown check (.remarkignore), so CI does not require it, and it makes this the only padded table in quest/. The PR body describes the change as "one quest file and one link". Reverting keeps the PR to one problem.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, and it's moot now: main already carries this table's padded form, so a merge would leave no diff here. See the reply on quest-pin.md: I'm recommending this PR be closed.

(Written by Claude Opus 5.5)


Public repositories are not billed, but the org is capped at 60 concurrent
hosted jobs and 5 macOS jobs (Team plan), and that macOS cap is the queue.
Expand Down Expand Up @@ -153,6 +153,7 @@ The historical samples locate candidates; they are not controlled benchmarks.

- [Read-only pull-request CI](/quest/m0/ci/read-only-secrets.md) - write secrets and publisher identities reach only protected branches and tags, never a pushed branch
- [Land main through quest land](/quest/m0/ci/land.md) - a host daemon tests small batches of queued PRs once and lands each as its tested squash commit
- [Pin a quest that re-pins a queued PR](/quest/m0/ci/quest-pin.md) - `quest merge --land` moves an already-queued PR's pin to its new head
- [A cache error is a miss](/quest/m0/ci/nix-cache-5xx.md) - a transient `nix.moq.dev` 5xx no longer fails `just ci`
- [Every io_uring test in the io-uring group](/quest/m0/ci/io-uring-test-group.md) - the parallel tests of one `just ci` stop exhausting the shared `RLIMIT_MEMLOCK`, and a too-low limit fails clearly
- [Cheap checks skip the queue](/quest/m0/ci/gate-quick.md) - condition: quest ships `quest gate --quick`; then cheap modules wait at most a minute
Expand Down
27 changes: 27 additions & 0 deletions quest/m0/ci/quest-pin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# [XS] Pin a quest that re-pins a queued PR

## Goal

moq's dev shell runs a moq-dev/quest whose `quest merge <pr> <token> --land
<sha>` moves an already-queued PR's `Quest-Land-Head` pin to the new head.
Merge sessions that run from this shell then never leave a stale queue entry
for the gate to reject. Check it by re-pinning a queued PR and reading its
auto-merge commit body.

## Plan

Decided 2026-11-01 (user, /quest-plan of the follow-ups from a moq-dev/quest
/quest-complete session):

- ✅ Plan the bump as its own quest: a pin bump that unblocks work is its own
quest.
- The pinned quest (`7a191e6`, reporting 0.1.0) left
[moq-dev/quest#290](https://github.com/moq-dev/quest/pull/290) and
[moq-dev/quest#319](https://github.com/moq-dev/quest/pull/319) queued on
their old heads after a push, and each needed a manual requeue.
Comment on lines +18 to +21

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This premise is contradicted by the repo's own history. #7511 pinned the dev shell's quest at 7a191e6 on 2026-11-01 precisely because the previous pin (1ef2ca7) predated #306, and #306 is what makes a --land re-pick disable and re-enable auto-merge so the pin names the new head. That fix is present at the pinned rev, so quest merge --land already moves the pin here. Unless a concrete remaining symptom is named, the bump won't change the behaviour this quest targets.

Technical details
# Pin bump may be a no-op

## Evidence
- `flake.nix` pins `quest` at `7a191e6197c691f477b4c55edba34cc425c3e77c`, set by moq-dev/moq#7511 (merged 2026-11-01T21:05Z). Its body: the old pin `1ef2ca7` (2026-10-30) predated #306; since #306 a re-pick "disables and re-enables auto-merge, so the pin names the new head".
- At the pinned rev, `src/cli/land.ts` `enqueue()` disables an existing auto-merge request pinned to another head and re-enables it with the new pin. `moq-dev/quest#306` is an ancestor of `7a191e6` (confirmed by compare).
- `src/cli/hold.ts` on quest `main` has no commit newer than #314 (also pre-pin), so no later re-pin fix exists there.
- Timing: #7511 landed 21:05; #290's later re-picks (21:18, 21:51) produced no `quest land` ejection comment, so the new pin appears to have worked.

## Required outcome
- Re-check the failure against the pinned CLI and either drop this quest as already fixed, or replace the rationale with the actual remaining symptom (for example, a dev shell still running the pre-#7511 binary, or a `/quest-complete` flow that re-picks with the stale head rather than the new one).

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. 51f1cfd (moq-dev/quest#306, the re-pin fix) is an ancestor of both the old pin 7a191e6 and the current pin 5e66075 from #7644. Also, moq now lands through GitHub's merge queue (quest/m0/ci/land.md), so the Quest-Land-Head re-pin path this quest targets no longer gates moq. Nothing remains for this quest, so I'm recommending the maintainer close this PR rather than land it.

(Written by Claude Opus 5.5)

- Bump `inputs.quest` in `flake.nix` to a current moq-dev/quest main. A newer
quest also brings the land fixer's prompt and `quest merge --land` fixes.

## Related

- [Cheap checks skip the queue](/quest/m0/ci/gate-quick.md) - also waits on a pin that includes `quest gate --quick`