diff --git a/quest/m0/README.md b/quest/m0/README.md index a62a2e17..834ed3a4 100644 --- a/quest/m0/README.md +++ b/quest/m0/README.md @@ -35,6 +35,7 @@ ownership-manifest design: ## Required +- [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.