From d85fb595e706ad4ecd948d681e7bb3024735acba Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Thu, 22 Oct 2026 09:28:55 -0700 Subject: [PATCH] docs(quest): plan follow-ups of the upstream claims PR Add [XS] merged claims to the Kix epic, so the board ignores branches whose pull request merged, as the CLI does since #192. Add [S] lifecycle EBUSY to m0, to root-cause the Windows lifecycle check failing while removing its temp directory. Drop a merged-branch sweep and the push-to-another-forge case. Co-Authored-By: Claude Opus 5.5 --- quest/m0/README.md | 1 + quest/m0/kix/README.md | 1 + quest/m0/kix/merged-claims.md | 27 +++++++++++++++++++++++++++ quest/m0/lifecycle-ebusy.md | 21 +++++++++++++++++++++ 4 files changed, 50 insertions(+) create mode 100644 quest/m0/kix/merged-claims.md create mode 100644 quest/m0/lifecycle-ebusy.md diff --git a/quest/m0/README.md b/quest/m0/README.md index de87782d..ac652bf1 100644 --- a/quest/m0/README.md +++ b/quest/m0/README.md @@ -36,6 +36,7 @@ ownership-manifest design: ## Required - [Gate headroom](/quest/m0/gate-headroom.md) - gated commands start at once while the host has room +- [Lifecycle EBUSY](/quest/m0/lifecycle-ebusy.md) - the Windows lifecycle check stops failing at random while removing its temp directory - [Agent lifecycle integration](/quest/m0/worktree-agents.md) - reclaim completed and suspended checkouts through their harness - [Agent workflow helpers](/quest/m0/helpers/README.md) - CLI commands for CI waits, PR status, claims, quest moves, and serialized merges diff --git a/quest/m0/kix/README.md b/quest/m0/kix/README.md index 2cba0716..ff6504cd 100644 --- a/quest/m0/kix/README.md +++ b/quest/m0/kix/README.md @@ -108,3 +108,4 @@ operator-paid-hosting decisions: - [Web planning](/quest/m0/kix/planning.md) - issue-to-quest interviews produce draft planning PRs - [Web execution](/quest/m0/kix/execution.md) - spawn and iterate through the UI, ending in contribution PRs - [Onboarding guide](/quest/m0/kix/guide.md) - a complete maintainer path, from runner setup through a reviewed PR +- [Merged claims](/quest/m0/kix/merged-claims.md) - the board ignores branches whose pull request merged, as the CLI does diff --git a/quest/m0/kix/merged-claims.md b/quest/m0/kix/merged-claims.md new file mode 100644 index 00000000..2ec1668c --- /dev/null +++ b/quest/m0/kix/merged-claims.md @@ -0,0 +1,27 @@ +# [XS] Ignore merged branches on the board + +## Goal + +The kix board and inbox agree with `quest unblocked --unclaimed` about which +quests are claimed: a `quest/*` branch whose tip is the head of a merged pull +request no longer counts as a claim, while a branch whose pull request closed +unmerged still does. + +## Plan + +Decided 2026-10-22 (user) as a follow-up of +[kixelated/quest#192](https://github.com/kixelated/quest/pull/192), which +gave the CLI this rule: + +- `cloudflare/src/github/state.ts` maps every observed `quest/*` ref to a + claim (`associatedQuest`). Apply the same merged-head rule when reading + those refs, and keep the CLI and Worker on one definition of it rather + than a second copy. +- Ranked last in the epic: moq-dev/moq, moq-dev/moq.pro, and kixelated/quest + all delete head branches on merge, so only projects without that setting + see stale claims today. +- Test a merged-head branch, a closed-unmerged branch, and a merged branch + with commits pushed after the merge, with the seeded fake GitHub + (`cloudflare/dev/github.ts`). +- Dropped (user): a CLI sweep that reports or deletes merged quest branches, + since every current repository deletes them on merge. diff --git a/quest/m0/lifecycle-ebusy.md b/quest/m0/lifecycle-ebusy.md new file mode 100644 index 00000000..b905358e --- /dev/null +++ b/quest/m0/lifecycle-ebusy.md @@ -0,0 +1,21 @@ +# [S] Stop the Windows lifecycle check failing with EBUSY + +## Goal + +The lifecycle check (`scripts/lifecycle-check.mjs`) never fails a Windows CI +job with `EBUSY` while removing its temporary directory, because nothing still +holds that directory when the check deletes it. + +## Plan + +Decided 2026-10-22 (user) as a follow-up of +[kixelated/quest#192](https://github.com/kixelated/quest/pull/192): + +- The Windows arm64 Release job failed after its own checks passed, in the + final `rmSync(work, { recursive: true, force: true })`, on #192 and on the + `quest/m0/worktree` branch (run 39679528766). A rerun passed both times. +- Find which process or handle still holds the directory (for example a + child process the check started, or a file it left open) and fix that + cause. No retries, sleeps, or ignored errors. +- Reproduce it on a native Windows runner before fixing, and keep the fix + covered by the existing lifecycle jobs.