finish: remove no_close; an issue branch always closes or holds its issue #827
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#827
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
no_close=truelets 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_closefrom the CLI and MCP. A finish on anissue-N-...branch always does one of two things:madtea/heldlabel 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_closeis absent from the tool schema and the CLI flags. Passing it is an unknown-argument error.madtea/held.closes=.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.
The design in this issue is replaced by #879:
finishtakes no close inputs, and refuses before the forge when the work cannot close. This issue stays open as context until #879 lands.