finish: remove no_close; an issue branch always closes or holds its issue #827

Open
opened 2026-10-20 02:00:15 +00:00 by hexajon · 2 comments
Owner

no_close=true lets finish merge an issue branch and leave the issue open with only a reference. Nothing tracks that issue afterwards. When the flag goes on the branch that actually completes the work, the issue stays open for good with its work merged.

Decision: remove no_close from the CLI and MCP. A finish on an issue-N-... branch always does one of two things:

  • It closes #N when #N has no open dependency.
  • It holds #N with the madtea/held label when #N has an open dependency (#825).

Partial work goes into child issues. When an issue needs more than one branch, it becomes an epic, and each child gets its own branch. Each child branch closes its child, and #823 closes the epic when its last child closes.

A finish into a repo outside the session's scope keeps its current default: it never closes a branch-detected issue unless closes= names it. That rule comes from the repo itself, not from a flag.

This is a breaking change. The release notes must say so.

Acceptance, against throwaway Forgejo and Gitea servers:

  • no_close is absent from the tool schema and the CLI flags. Passing it is an unknown-argument error.
  • A finish on an issue branch with no open dependency closes the issue.
  • A finish on an issue branch with an open dependency holds the issue with madtea/held.
  • A finish into a repo outside the session's scope does not close a branch-detected issue without closes=.
`no_close=true` lets finish merge an issue branch and leave the issue open with only a reference. Nothing tracks that issue afterwards. When the flag goes on the branch that actually completes the work, the issue stays open for good with its work merged. Decision: remove `no_close` from the CLI and MCP. A finish on an `issue-N-...` branch always does one of two things: - It closes #N when #N has no open dependency. - It holds #N with the `madtea/held` label when #N has an open dependency (#825). Partial work goes into child issues. When an issue needs more than one branch, it becomes an epic, and each child gets its own branch. Each child branch closes its child, and #823 closes the epic when its last child closes. A finish into a repo outside the session's scope keeps its current default: it never closes a branch-detected issue unless `closes=` names it. That rule comes from the repo itself, not from a flag. This is a breaking change. The release notes must say so. Acceptance, against throwaway Forgejo and Gitea servers: - `no_close` is absent from the tool schema and the CLI flags. Passing it is an unknown-argument error. - A finish on an issue branch with no open dependency closes the issue. - A finish on an issue branch with an open dependency holds the issue with `madtea/held`. - A finish into a repo outside the session's scope does not close a branch-detected issue without `closes=`.
Author
Owner

This changes the wording of docs/decisions/0007: its foreign-repo rule says no_close defaults to true. The behaviour stays (a foreign finish closes a branch-detected issue only when closes= names it), but the record must describe it without the removed flag.

This changes the wording of docs/decisions/0007: its foreign-repo rule says no_close defaults to true. The behaviour stays (a foreign finish closes a branch-detected issue only when closes= names it), but the record must describe it without the removed flag.
Author
Owner

The design in this issue is replaced by #879: finish takes no close inputs, and refuses before the forge when the work cannot close. This issue stays open as context until #879 lands.

The design in this issue is replaced by #879: `finish` takes no close inputs, and refuses before the forge when the work cannot close. This issue stays open as context until #879 lands.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sixfold-space/madtea#827
No description provided.