From f66e5afa70e7d5e039b79cee758bf8e03510ad3e Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 9 Nov 2026 09:56:57 +0000 Subject: [PATCH] :books: Correct link-issue closing behavior in workflow memories The memories claimed link-issue does not close an issue retroactively when its PR is already merged. Adding 'Closes #12896' to merged PR #12067 and running link-issue closed the issue immediately instead (observed 2026-11-09). Update the mem:workflow/creating-issues, mem:workflow/creating-prs and mem:scripts/gh entries to describe the observed behavior. AI-assisted-by: inkling-2-small-free --- .serena/memories/scripts/gh.md | 2 +- .serena/memories/workflow/creating-issues.md | 2 +- .serena/memories/workflow/creating-prs.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.serena/memories/scripts/gh.md b/.serena/memories/scripts/gh.md index 93fd4e37b8..0acbe3635c 100644 --- a/.serena/memories/scripts/gh.md +++ b/.serena/memories/scripts/gh.md @@ -102,7 +102,7 @@ python3 scripts/gh.py link-issue # Short alias: python3 scripts/gh.py link ``` -The command resolves both node IDs and calls `addCloseIssueReferences`. It trusts the successful mutation instead of re-querying, because GitHub does not reliably report mutation-created links through `closedByPullRequestsReferences(userLinkedOnly: true)`. It is safe to rerun, works for merged PRs, and does not close an issue retroactively. JSON goes to stdout; progress and errors go to stderr; a missing issue/PR or a failed mutation exits non-zero. +The command resolves both node IDs and calls `addCloseIssueReferences`. It trusts the successful mutation instead of re-querying, because GitHub does not reliably report mutation-created links through `closedByPullRequestsReferences(userLinkedOnly: true)`. It is safe to rerun and works for merged PRs. It does not guarantee the issue stays open: adding `Closes #N` to the body of an already-merged PR closed the issue immediately when tried (#12896 / PR #12067, 2026-11-09). JSON goes to stdout; progress and errors go to stderr; a missing issue/PR or a failed mutation exits non-zero. ### `advisories` diff --git a/.serena/memories/workflow/creating-issues.md b/.serena/memories/workflow/creating-issues.md index 537e3e73ea..4c8374aa31 100644 --- a/.serena/memories/workflow/creating-issues.md +++ b/.serena/memories/workflow/creating-issues.md @@ -314,7 +314,7 @@ Add `Closes #` to the PR body for readable context, then run the e python3 scripts/gh.py link-issue ``` -The command creates the GitHub Development link by calling `addCloseIssueReferences` and trusts the successful mutation (GitHub does not reliably report mutation-created links back through the API). It is safe to rerun and does not close an issue retroactively when the PR is already merged. Do not rely on the body keyword as the assignment operation. +The command creates the GitHub Development link by calling `addCloseIssueReferences` and trusts the successful mutation (GitHub does not reliably report mutation-created links back through the API). It is safe to rerun. Do not rely on it to keep the issue open: adding `Closes #N` to the body of an already-merged PR closed the issue immediately when tried (#12896 / PR #12067, 2026-11-09; the timeline shows a cross-reference plus a ClosedEvent with no closer). For changelog units that outcome is fine — a merged fix means a closed issue — but be aware when linking old merged PRs. Do not rely on the body keyword as the assignment operation. ### Clean up diff --git a/.serena/memories/workflow/creating-prs.md b/.serena/memories/workflow/creating-prs.md index 4f2d2bcfa7..87f10f2121 100644 --- a/.serena/memories/workflow/creating-prs.md +++ b/.serena/memories/workflow/creating-prs.md @@ -80,7 +80,7 @@ The "Note:" line is required at the top. Adjust if this is a manual (non-AI) PR. ## Explicit Issue Assignment - For each GitHub issue that a PR resolves, run `python3 scripts/gh.py link-issue ` after creating or editing the PR. Do not rely on `Closes #NNNN` in the body; it is only human-readable context. -- The command calls `addCloseIssueReferences` and trusts the successful mutation: GitHub does not reliably report mutation-created links back through `closedByPullRequestsReferences(userLinkedOnly: true)`, so the command exits non-zero only when a link target is missing or the mutation fails. It is safe to rerun and also works for an already merged PR; it does not close an issue retroactively. +- The command calls `addCloseIssueReferences` and trusts the successful mutation: GitHub does not reliably report mutation-created links back through `closedByPullRequestsReferences(userLinkedOnly: true)`, so the command exits non-zero only when a link target is missing or the mutation fails. It is safe to rerun and also works for an already merged PR. Do not rely on it to keep the issue open: adding `Closes #N` to the body of an already-merged PR closed the issue immediately when tried (#12896 / PR #12067, 2026-11-09). - Skip this process for `Relates to #NNNN` and Taiga references, which do not represent a closing relationship. ## Before Opening