MR description uses non-closing 'Implements' so merges never auto-close the issue #300

Closed
opened 2026-09-02 23:39:09 +00:00 by yousuf · 0 comments
Collaborator

The deterministic MR-description builder opens every MR/PR body with:

Implements [<key>](<url>).

Implements is not a closing keyword on GitLab, GitHub, or Forgejo, so merging a pi-loop MR leaves the source issue open. Operators have to close issues by hand after every manual merge.

closeIssueAfterAutoMerge in src/orchestrator/services/runPipeline.ts only fires on the --auto-merge path, so the default Draft-MR flow (the documented human checkpoint) has no issue-closing mechanism at all.

Fix: emit Closes #<number> for git-platform issues (with the cross-repo Closes owner/repo#<number> form when the issue lives elsewhere), keeping the descriptive Implements wording for Jira, which has no MR-body closing mechanism.

The deterministic MR-description builder opens every MR/PR body with: ``` Implements [<key>](<url>). ``` `Implements` is **not a closing keyword** on GitLab, GitHub, or Forgejo, so merging a pi-loop MR leaves the source issue open. Operators have to close issues by hand after every manual merge. `closeIssueAfterAutoMerge` in `src/orchestrator/services/runPipeline.ts` only fires on the `--auto-merge` path, so the default Draft-MR flow (the documented human checkpoint) has no issue-closing mechanism at all. Fix: emit `Closes #<number>` for git-platform issues (with the cross-repo `Closes owner/repo#<number>` form when the issue lives elsewhere), keeping the descriptive `Implements` wording for Jira, which has no MR-body closing mechanism.
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
david/pi-loop#300
No description provided.