diff --git a/quest/m0/README.md b/quest/m0/README.md index 6e0a6311..dfd43c62 100644 --- a/quest/m0/README.md +++ b/quest/m0/README.md @@ -91,8 +91,8 @@ ownership-manifest design: - [Spawn keeps finding work](/quest/m0/spawn-refill.md) - recompute ready quests per report, resume leftover local branches, and check open PRs before claiming - [Kix decision UI](/quest/m0/kix/README.md) - planning and implementation through prompts and summaries, run on the maintainer's own runners - [Codex cloud off](/quest/m0/codex-cloud-off.md) - automatic Codex cloud reviews stop once no open PR relies on them -- [Bun EFAULT report](/quest/m0/bun-efault.md) - condition: Bun fixes concurrent `rmSync` on Windows; report it, then drop the workaround -- [Codex project-config skip](/quest/m0/codex-project-config.md) - condition: Codex keeps a supported way to skip a project's `.codex/` layer; then reviews keep the user's config +- [Bun EFAULT report](/quest/m0/bun-efault.md) - report concurrent `rmSync` `EFAULT` on Windows, and drop the workaround once Bun fixes it +- [Codex project-config skip](/quest/m0/codex-project-config.md) - once Codex keeps a supported way to skip a project's `.codex/` layer, reviews keep the user's config - [Gate bench](/quest/m0/gate-bench.md) - measure headroom admission on an idle host - [Agent workflow helpers](/quest/m0/helpers/README.md) - CLI commands for CI waits, PR status, claims, quest moves, and serialized merges - [Review the branch's own change](/quest/m0/review-merge-base.md) - `quest review` diffs against the merge base and accepts a detached `HEAD` @@ -102,4 +102,3 @@ ownership-manifest design: - [Spotlight off in macOS CI](/quest/m0/ci-spotlight.md) - this repository's macOS jobs turn off Spotlight indexing first - [Review through a gateway](/quest/m0/review-gateway.md) - `quest review` keeps gateway, cloud-provider, and Codex connection variables - [opencode 2.x](/quest/m0/opencode-sdk.md) - the runner drives the opencode 2.x binary through `@opencode/client`, removing the interim 1.19.0 pin -- [Waiting sections](/quest/m0/waiting-sections.md) - this repository's waiting quests move from prose to `## Waiting` diff --git a/quest/m0/bun-efault.md b/quest/m0/bun-efault.md index 807c6208..144ee58a 100644 --- a/quest/m0/bun-efault.md +++ b/quest/m0/bun-efault.md @@ -16,6 +16,17 @@ Decided 2026-10-28 (user, /quest-plan of the follow-ups from a 25-PR /quest-comp race and worked around it. Its diagnostic runs have the minimal repro: two processes `rmSync` the same file on `windows-11-arm` and `windows-2022`. - Search existing Bun issues first, and comment on a match instead of opening - a duplicate. -- This quest waits on Bun. Check the report's state each time ready work is - triaged. + a duplicate. As of 2026-11-02 nobody from moq-dev has commented or opened + one. The closest reports are + [oven-sh/bun#39708](https://github.com/oven-sh/bun/issues/39708), the + recursive case, with its fix + [oven-sh/bun#39710](https://github.com/oven-sh/bun/pull/39710), and the + single-file fix + [oven-sh/bun#38550](https://github.com/oven-sh/bun/pull/38550); all three + are open. + +## Waiting + +- oven-sh/bun: a release fixes `rmSync` throwing `EFAULT` when two processes + remove one file on Windows, and Quest's pin includes it. Check the report + and the fix PRs above each time ready work is triaged. diff --git a/quest/m0/codex-cloud-off.md b/quest/m0/codex-cloud-off.md index 91a57179..5eed62cc 100644 --- a/quest/m0/codex-cloud-off.md +++ b/quest/m0/codex-cloud-off.md @@ -3,11 +3,21 @@ ## Goal Codex cloud stops reviewing PRs automatically in every repository that uses -quest, once none still relies on it. The condition is that local review -(`quest review` and `/quest-review`) has landed, each adopting -repository's review policy no longer names Codex, and no open PR in those -repositories was opened before its repository adopted local review without -having merged main since. To check, list each repository's open PRs and -compare them with the adoption merge. To advance it, update the stragglers to -main. Then the maintainer turns off automatic reviews in Codex's settings, and -this quest is deleted. +quest, once none still relies on it. Then the maintainer turns off automatic +reviews in Codex's settings, and this quest is deleted. + +## Plan + +Local review (`quest review` and `/quest-review`) has landed. As of +2026-11-02, moq, rind and rust2's `CONTRIBUTING.md` no longer name Codex's +cloud review; moq.pro's still does. + +## Waiting + +- moq.pro: its review policy stops naming Codex's cloud review, as moq's, + rind's and rust2's did. Check its `CONTRIBUTING.md` for + `chatgpt-codex-connector`. +- moq, moq.pro, rind, rust2, quest: no open PR was opened before its + repository adopted local review without having merged main since. To + check, list each repository's open PRs and compare them with the adoption + merge. To advance it, update the stragglers to main. diff --git a/quest/m0/codex-project-config.md b/quest/m0/codex-project-config.md index 3cbe2a31..f375d344 100644 --- a/quest/m0/codex-project-config.md +++ b/quest/m0/codex-project-config.md @@ -18,6 +18,10 @@ Decided 2026-10-28 (user, /quest-plan of the follow-ups from [moq-dev/quest#271] hooks from running. A fix that matches the help text would reopen that hole. - Do not post upstream, on #49333 or a new issue; the maintainer declined. Only watch for the change. -- This quest waits on Codex. Check #49333 and Codex release notes each time - ready work is triaged; the live sandbox test, `just review-sandbox`, - catches a release that changes the behavior first. + +## Waiting + +- openai/codex: a release offers a supported way to skip a project's + `.codex/` layer. Check #49333 (open on 2026-11-02) and Codex release notes + each time ready work is triaged; the live sandbox test, + `just review-sandbox`, catches a release that changes the behavior first. diff --git a/quest/m0/gate-bench.md b/quest/m0/gate-bench.md index 91b3df71..f23d88d2 100644 --- a/quest/m0/gate-bench.md +++ b/quest/m0/gate-bench.md @@ -17,9 +17,15 @@ The earlier baseline, from [moq-dev/quest#177](https://github.com/moq-dev/quest/pull/177), was 104 s gated against 19 s ungated for a burst of 8. -- Run on a host with no other agents or builds; record the 1-minute load - before each run alongside the results. +- Record the 1-minute load before each run alongside the results. - Delete this quest in the PR that records the results. - Dropped (user): asking Bun upstream to make `os.userInfo().homedir` ignore `$HOME` (the child-process lookup costs about 10 ms), and handling a macOS hostname that changes with the network, until it is seen in practice. + +## Waiting + +- Maintainer: leave the host idle, with no other agents, builds or land + daemons running, for a few minutes of runs; an agent can't pause the + others' work. Check that `uptime`'s 1-minute load is near zero before each + run. diff --git a/quest/m0/land-fixer/workflows-permission.md b/quest/m0/land-fixer/workflows-permission.md index 53081ae6..99188c0d 100644 --- a/quest/m0/land-fixer/workflows-permission.md +++ b/quest/m0/land-fixer/workflows-permission.md @@ -7,9 +7,7 @@ permission, and every installation the land fixer pushes to, through the queue watcher or the host gate, has accepted it: moq-dev/moq, moq.pro, rust2, rind and quest. GitHub then accepts a fixer push that touches `.github/workflows`, including a base merge pushed -to a fork's branch. This quest waits on the maintainer. To check, open the -App's settings under Permissions; GitHub lists pending permission requests on -each installation. +to a fork's branch. ## Plan @@ -28,3 +26,10 @@ each by hand. Once this permission is granted, the refusal that `quest land apply` handback handles should stop happening. Delete this quest once the permission is granted and accepted. + +## Waiting + +- Maintainer: grant moq-bot `workflows: write` and accept it on each + installation above; only an App owner can change its permissions. To + check, open the App's settings under Permissions; GitHub lists pending + permission requests on each installation. diff --git a/quest/m0/queue-watcher/README.md b/quest/m0/queue-watcher/README.md index 5657097c..4a1e8a57 100644 --- a/quest/m0/queue-watcher/README.md +++ b/quest/m0/queue-watcher/README.md @@ -130,7 +130,7 @@ Shared shape, for the children to follow: ## Required - [Watcher on the host](/quest/m0/queue-watcher/host.md) - kixelated/nixos runs the watcher for moq-dev/moq beside its fixer container -- [The other repositories follow](/quest/m0/queue-watcher/follow.md) - condition: quest, rind and rust2 are cut over; rind and rust2 each land a PR, and a fork PR lands +- [The other repositories follow](/quest/m0/queue-watcher/follow.md) - quest, rind and rust2 are cut over and landing; waits for a fork PR to land through one of their queues - [Harden the queue runners](/quest/m0/queue-watcher/runners.md) - each queue runner runs only its repository's queue workflow, and every outside fork PR needs approval - [Retire the batching gate](/quest/m0/queue-watcher/retire.md) - once no repository lands through `quest land serve`, its batching code and host units go diff --git a/quest/m0/queue-watcher/follow.md b/quest/m0/queue-watcher/follow.md index 44ea969d..ed8966d5 100644 --- a/quest/m0/queue-watcher/follow.md +++ b/quest/m0/queue-watcher/follow.md @@ -2,11 +2,9 @@ ## Goal -Condition: moq-dev/rind and moq-dev/rust2 have each landed a PR through -their merge queue, and a fork PR has landed through any of the three. Check -each with `gh pr list -R moq-dev/ --state merged` and the -`merge_group` runs on its `-queue` runner. Fix whatever a first merge -group exposes, as moq-dev/quest's did. Then delete this quest. +moq-dev/quest's, moq-dev/rind's and moq-dev/rust2's merge queues are shown +to land every kind of PR, including one from a fork. Fix whatever a first +merge group exposes, as moq-dev/quest's did. Then delete this quest. ## Plan @@ -45,3 +43,15 @@ The cutover was done on 2026-11-03 (user, /quest-complete): rind's and rust2's first merge groups may hit similar runner gaps, since GitHub's Ubuntu runners preinstall tools their dev shells may not declare. +By 2026-11-03 both had landed PRs through their queues +([moq-dev/rind#276](https://github.com/moq-dev/rind/pull/276) and later, +[moq-dev/rust2#467](https://github.com/moq-dev/rust2/pull/467) and later), so +only the fork case remains. + +## Waiting + +- Fork contributor: a PR from a fork lands through any of the three merge + queues. Check with + `gh pr list -R moq-dev/ --state merged --json number,isCrossRepository` + and the `merge_group` runs on its `-queue` runner. A maintainer can + advance it by landing a PR of their own from a fork. diff --git a/quest/m0/queue-watcher/retire.md b/quest/m0/queue-watcher/retire.md index 9664692c..f80d2508 100644 --- a/quest/m0/queue-watcher/retire.md +++ b/quest/m0/queue-watcher/retire.md @@ -2,10 +2,8 @@ ## Goal -Condition: no repository lands through `quest land serve` any more (moq, -moq-dev/quest, moq.pro, rust2 and rind have all switched to the merge queue). - -Then the batching gate is gone: `quest land serve`'s batching, parking, +Once no repository lands through `quest land serve` any more, the batching +gate is gone: `quest land serve`'s batching, parking, halting, and squash-push code, its tests, and its README and `CONTRIBUTING.md` sections are deleted, keeping only what the watcher and `quest land apply` use. The host's `quest-land` daemon instances and check containers are @@ -21,6 +19,23 @@ batched gate, and gate work is frozen until then. Once nothing uses it, the code goes rather than staying as an unmaintained option. Check each repository's ruleset for a `quest land` requirement before deleting. +moq, moq-dev/quest, rind and rust2 land through the merge queue (2026-11-03). +moq.pro is the last: on 2026-11-02 the maintainer kept it on its host gate, +and its `main` ruleset still requires `quest land`. moq.pro is private and +moq-dev is on GitHub Team, where GitHub has offered merge queues on private +repositories only under Enterprise Cloud. + +## Waiting + +- Maintainer: decide how moq.pro leaves the host gate, since only the + maintainer can change moq-dev's plan or repository settings. Options: + enable a merge queue in moq.pro's `main` ruleset if GitHub now offers one + there (recommended; check the ruleset editor first); move moq-dev to + Enterprise Cloud for it; or keep moq.pro on the gate and delete this + quest. Check with + `gh api repos/moq-dev/moq.pro/rulesets/16788924 --jq '[.rules[].type]'`, + which lists `merge_queue` once it is enabled. + ## Required - [The other repositories follow](/quest/m0/queue-watcher/follow.md) - the last repositories leave the gate diff --git a/quest/m0/waiting-sections.md b/quest/m0/waiting-sections.md deleted file mode 100644 index 69c78cc0..00000000 --- a/quest/m0/waiting-sections.md +++ /dev/null @@ -1,23 +0,0 @@ -# [XS] Waiting quests use the ## Waiting section - -## Goal - -Every quest in this repository that waits on something outside the tree -lists it in a `## Waiting` section, one item per condition, so -`quest waiting` and `/quest-unblock` find it. That covers bun-efault, -codex-project-config, land-fixer/workflows-permission, queue-watcher/follow, -queue-watcher/retire, m2/chatgpt-waitlist and m2/legacy-labels, plus any -quest that gains a prose wait before this lands. - -## Plan - -Decided 2026-11-02 (maintainer, /quest-plan of the follow-ups from the -2026-11-02 `/quest-complete` session, raised by -[moq-dev/quest#390](https://github.com/moq-dev/quest/pull/390)): ✅ plan it, -m0. - -- #390 landed on 2026-11-02 without these migrations, because CI checks a - PR's quests with main's `quest`, which rejected `## Waiting` until then. -- #390's original commit `4e6fd679` holds the edits for the seven quests; - reapply them, then search the tree for other prose waits ("Waiting on", - "Waits on", "Condition:"). diff --git a/quest/m1/decisions-needed.md b/quest/m1/decisions-needed.md index 49046bde..9956772c 100644 --- a/quest/m1/decisions-needed.md +++ b/quest/m1/decisions-needed.md @@ -12,8 +12,14 @@ Decided 2026-11-02 (maintainer, /quest-plan of the follow-ups from the [moq-dev/quest#390](https://github.com/moq-dev/quest/pull/390)): ✅ plan it, m1. -- Waits until no open draft in a repository that uses quest carries - `## Decisions needed`: search open draft PRs' bodies for the heading before - starting, and rewrite any to `## Waiting` first. - Remove the old heading from `src/core/claim.ts`'s regex, `handedBack`, and every doc and skill that names both. + +## Waiting + +- moq, moq.pro, rind, rust2, quest: no open draft carries + `## Decisions needed` (on 2026-11-02, 11 in moq, 16 in moq.pro, 1 each in + rind and rust2). Check with + `gh pr list -R moq-dev/ --state open --draft --json number,body` and + search the bodies for the heading. To advance it, rewrite each to + `## Waiting`. diff --git a/quest/m2/README.md b/quest/m2/README.md index 31772554..849e470f 100644 --- a/quest/m2/README.md +++ b/quest/m2/README.md @@ -17,4 +17,4 @@ additional login providers. This milestone does not gate the public release. - [ChatGPT approval](/quest/m2/chatgpt-waitlist.md) - resolve hosted-use approval before implementation - [Worker dev setup](/quest/m2/worker-dev.md) - per-server cookies, seeded raw output, static assets, one fake GitHub, each test run alone - [Gate ownership everywhere](/quest/m2/gate-ownership.md) - delegated sub-cgroups for nested gates and Windows Job Objects -- [Delete the legacy hold labels](/quest/m2/legacy-labels.md) - condition: every gated repository pins quest past #326; then only `quest:active` and `quest:kix` are holds +- [Delete the legacy hold labels](/quest/m2/legacy-labels.md) - once every gated repository pins quest past #326, only `quest:active` and `quest:kix` are holds diff --git a/quest/m2/chatgpt-waitlist.md b/quest/m2/chatgpt-waitlist.md index 3c63b06e..94efe66f 100644 --- a/quest/m2/chatgpt-waitlist.md +++ b/quest/m2/chatgpt-waitlist.md @@ -8,11 +8,17 @@ plan. Self-serve token sharing covers only open-source, locally run apps. Hosted apps need the interest form or waitlist ([docs](https://developers.openai.com/siwc/token-sharing-open-source)). -Waits on a human action and OpenAI. Apply, then check for a reply. Delete -this quest once approved, or abandon it if denied. +Delete this quest once approved, or abandon it if denied. ## Plan Deprioritized on 2026-10-05 behind the other m1 entries while hosted approval remains outstanding. Keep the quest ready so future triage checks for a reply; ChatGPT login and hosted runs still require its completion. + +## Waiting + +- Maintainer: apply through OpenAI's interest form or waitlist, if not done; + the application is made for the operator's account. +- OpenAI: approve the Kix app for hosted Sign in with ChatGPT. Check for a + reply. diff --git a/quest/m2/legacy-labels.md b/quest/m2/legacy-labels.md index 9ee87aef..cdd8b876 100644 --- a/quest/m2/legacy-labels.md +++ b/quest/m2/legacy-labels.md @@ -2,9 +2,9 @@ ## Goal -Condition: quest, moq, moq.pro, rind and rust2 all pin a quest release that -includes [moq-dev/quest#326](https://github.com/moq-dev/quest/pull/326). -Then `LEGACY_IGNORED` in `src/core/hold.ts` and its notes in the README and +Once every gated repository pins a quest release that includes +[moq-dev/quest#326](https://github.com/moq-dev/quest/pull/326), +`LEGACY_IGNORED` in `src/core/hold.ts` and its notes in the README and `quest iterate --help` are gone, and only `quest:active` and `quest:kix` count as holds. @@ -12,7 +12,12 @@ count as holds. Decided 2026-10-31 (user, /quest-plan of the follow-ups from moq.pro's and rust2's cutover to the host gate and the fixer repairs [moq-dev/quest#320](https://github.com/moq-dev/quest/pull/320), [#325](https://github.com/moq-dev/quest/pull/325), [#327](https://github.com/moq-dev/quest/pull/327) and [#328](https://github.com/moq-dev/quest/pull/328)). -- Check the condition with each repository's quest pin (`flake.nix` or - `mise.toml`). - Decide then whether any other `quest:*` label should still count as a hold; recommend only the two. + +## Waiting + +- moq.pro, rind, rust2: each pins a quest release that includes + [moq-dev/quest#326](https://github.com/moq-dev/quest/pull/326); quest and + moq already do (2026-11-02). Check each repository's quest pin + (`flake.nix` or `mise.toml`).