This outranks all feature work in this repo. Do it before anything else.
Owner instruction, sneak 2026-08-10:
why are there so many PRs in one repo? there should be one and only one PR open at a time for the next milestone, as we squash commits on main and i'm tired of merge conflicts after merging one bc i don't know the order.
He squashes on merge, so a second open PR conflicts the moment the first lands, and the ordering burden falls on him.
What to do
Fold both open PRs onto a single next branch, resolving the conflicts between them yourself:
They overlap on Dockerfile, Makefile and TODO.md. #59 first, since #88 is the cheaper rebase of the two.
Definition of done
One next branch containing both as separate issue-closing commits, each message ending (closes #N).
Exactly ONE open PR in this repo: next -> main, titled for the milestone.
make check green on the combined result — verified after conflict resolution, because a clean textual merge can still break the build.
Both superseded PRs closed with a comment saying where their work went, and their branches deleted.
Nothing lost: confirm each original PR's commits are represented in next before closing it.
Model going forward
next is the branch for the NEXT MILESTONE, not the next release; main changes between releases as milestones land. Every worker works in its own clone, pulls next before starting, and pulls and resolves conflicts itself immediately before pushing. Exactly one open PR in this repo at all times from now on.
**This outranks all feature work in this repo. Do it before anything else.**
Owner instruction, sneak 2026-08-10:
> why are there so many PRs in one repo? there should be one and only one PR open at a time for the next milestone, as we squash commits on main and i'm tired of merge conflicts after merging one bc i don't know the order.
He squashes on merge, so a second open PR conflicts the moment the first lands, and the ordering burden falls on him.
## What to do
Fold both open PRs onto a single `next` branch, resolving the conflicts between them yourself:
- https://git.eeqj.de/sneak/mfer/pulls/59
- https://git.eeqj.de/sneak/mfer/pulls/88
They overlap on `Dockerfile`, `Makefile` and `TODO.md`. #59 first, since #88 is the cheaper rebase of the two.
## Definition of done
- One `next` branch containing both as separate issue-closing commits, each message ending ` (closes #N)`.
- Exactly ONE open PR in this repo: `next` -> `main`, titled for the milestone.
- `make check` green on the combined result — verified after conflict resolution, because a clean textual merge can still break the build.
- Both superseded PRs closed with a comment saying where their work went, and their branches deleted.
- Nothing lost: confirm each original PR's commits are represented in `next` before closing it.
## Model going forward
`next` is the branch for the NEXT MILESTONE, not the next release; `main` changes between releases as milestones land. Every worker works in its own clone, pulls `next` before starting, and pulls and resolves conflicts itself immediately before pushing. Exactly one open PR in this repo at all times from now on.
Correction to the rule as I originally stated it. sneak, 2026-08-10:
> you can have multiple open PRs per repo if the milestone on next is completed and hasn't been merged to main yet. you can work on the next milestone off of next on a new PR (mark wip). i just don't want one PR per small feature branch
So the target is not "exactly one open PR, always" — it is one PR per milestone, never one per feature branch. A second open PR is legitimate when a finished milestone PR is waiting on sneak and the following milestone has started off next (not off main) under a WIP: title prefix.
The consolidation work here is unchanged: these are per-issue PRs, which is exactly the shape he does not want.
Also done, so nobody has to remember not to merge mid-consolidation: every open PR in this repo is now titled WIP: …, labelled needs-rebase, and assigned to clawbot. Strip the prefix and reassign only when the milestone PR is genuinely ready. His instruction: "don't tell me not to merge things, rename the PRs with WIP: prefix so they aren't mergeable."
Correction to the rule as I originally stated it. sneak, 2026-08-10:
> you can have multiple open PRs per repo if the milestone on `next` is completed and hasn't been merged to `main` yet. you can work on the next milestone off of `next` on a new PR (mark wip). i just don't want one PR per small feature branch
So the target is not "exactly one open PR, always" — it is **one PR per milestone, never one per feature branch**. A second open PR is legitimate when a finished milestone PR is waiting on sneak and the following milestone has started off `next` (not off `main`) under a `WIP: ` title prefix.
The consolidation work here is unchanged: these are per-issue PRs, which is exactly the shape he does not want.
Also done, so nobody has to remember not to merge mid-consolidation: every open PR in this repo is now titled `WIP: …`, labelled `needs-rebase`, and assigned to `clawbot`. Strip the prefix and reassign only when the milestone PR is genuinely ready. His instruction: "don't tell me not to merge things, rename the PRs with WIP: prefix so they aren't mergeable."
Superseded. sneak, 2026-08-10: "branch and pr per issue, landing on next, squash merged by manager on successful review. manager owns dispatching workers to resolve merge conflicts. next is always ready for me to merge to main without notice." And: "manager merges the pr to next i mean, not directly with git."
So do NOT consolidate or close these PRs. Retarget each to base next, squash-merge it there through Gitea on a passed review, and dispatch a worker for any that will not merge cleanly. main is only ever touched by the milestone PR from next, which sneak merges.
Feature branches may be red; next and main must stay green. Create next from main if it does not exist here yet. Drop the WIP: prefixes once retargeted.
Superseded. sneak, 2026-08-10: "branch and pr per issue, landing on next, squash merged by manager on successful review. manager owns dispatching workers to resolve merge conflicts. next is always ready for me to merge to main without notice." And: "manager merges the pr to next i mean, not directly with git."
So do NOT consolidate or close these PRs. Retarget each to base `next`, squash-merge it there through Gitea on a passed review, and dispatch a worker for any that will not merge cleanly. `main` is only ever touched by the milestone PR from `next`, which sneak merges.
Feature branches may be red; `next` and `main` must stay green. Create `next` from `main` if it does not exist here yet. Drop the `WIP: ` prefixes once retargeted.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This outranks all feature work in this repo. Do it before anything else.
Owner instruction, sneak 2026-08-10:
He squashes on merge, so a second open PR conflicts the moment the first lands, and the ordering burden falls on him.
What to do
Fold both open PRs onto a single
nextbranch, resolving the conflicts between them yourself:They overlap on
Dockerfile,MakefileandTODO.md. #59 first, since #88 is the cheaper rebase of the two.Definition of done
nextbranch containing both as separate issue-closing commits, each message ending(closes #N).next->main, titled for the milestone.make checkgreen on the combined result — verified after conflict resolution, because a clean textual merge can still break the build.nextbefore closing it.Model going forward
nextis the branch for the NEXT MILESTONE, not the next release;mainchanges between releases as milestones land. Every worker works in its own clone, pullsnextbefore starting, and pulls and resolves conflicts itself immediately before pushing. Exactly one open PR in this repo at all times from now on.Correction to the rule as I originally stated it. sneak, 2026-08-10:
> you can have multiple open PRs per repo if the milestone on
nextis completed and hasn't been merged tomainyet. you can work on the next milestone off ofnexton a new PR (mark wip). i just don't want one PR per small feature branchSo the target is not "exactly one open PR, always" — it is one PR per milestone, never one per feature branch. A second open PR is legitimate when a finished milestone PR is waiting on sneak and the following milestone has started off
next(not offmain) under aWIP:title prefix.The consolidation work here is unchanged: these are per-issue PRs, which is exactly the shape he does not want.
Also done, so nobody has to remember not to merge mid-consolidation: every open PR in this repo is now titled
WIP: …, labelledneeds-rebase, and assigned toclawbot. Strip the prefix and reassign only when the milestone PR is genuinely ready. His instruction: "don't tell me not to merge things, rename the PRs with WIP: prefix so they aren't mergeable."Superseded. sneak, 2026-08-10: "branch and pr per issue, landing on next, squash merged by manager on successful review. manager owns dispatching workers to resolve merge conflicts. next is always ready for me to merge to main without notice." And: "manager merges the pr to next i mean, not directly with git."
So do NOT consolidate or close these PRs. Retarget each to base
next, squash-merge it there through Gitea on a passed review, and dispatch a worker for any that will not merge cleanly.mainis only ever touched by the milestone PR fromnext, which sneak merges.Feature branches may be red;
nextandmainmust stay green. Createnextfrommainif it does not exist here yet. Drop theWIP:prefixes once retargeted.