End a pull request's release note at its first paragraph #155

Merged
cruelacid merged 1 commit from worktree-release-note-footer into main 2026-09-24 17:52:22 +01:00
Owner

Task: NEC-87 (found while fixing that card's changelog entry)

scripts/lib/release-note.mjs read the ## Changelog block up to the next heading or ---. Agent-opened PRs end with an attribution footer one blank line under the note, so the footer was joined onto the entry:

  • #122, #123 and #151 would have published "… 🤖 Generated with Claude Code https://claude.ai/code/session_…" as part of their changelog lines.
  • 22 PRs that meant NONE parsed as an entry reading "NONE 🤖 Generated with…", so they would not have been skipped.
  • The release-note check passed all of them.

Change: the note ends at its first paragraph, after comments are stripped, so the template's own blank-lined comment doesn't count. A loose list (blank lines between bullets) keeps every bullet. The template comment now says the note ends at its first blank line.

Verified:

  • 4 new tests, 16 in total.
  • Mutation-checked: removing the paragraph rule, the loose-list exception or the uncomment-first step each fails the test that names it.
  • Re-parsed every PR merged since 18 Sep with the new parser: each gives NONE or its intended sentence.
  • pnpm lint, which runs these tests, passes.

Changelog

NONE


🤖 Generated with Claude Code

https://claude.ai/code/session_01Q6gkmHZ3pYvsZCCpiA9qe9

Task: NEC-87 (found while fixing that card's changelog entry) `scripts/lib/release-note.mjs` read the `## Changelog` block up to the next heading or `---`. Agent-opened PRs end with an attribution footer one blank line under the note, so the footer was joined onto the entry: - #122, #123 and #151 would have published "… 🤖 Generated with [Claude Code](…) https://claude.ai/code/session_…" as part of their changelog lines. - 22 PRs that meant `NONE` parsed as an entry reading "NONE 🤖 Generated with…", so they would not have been skipped. - The `release-note` check passed all of them. **Change:** the note ends at its first paragraph, after comments are stripped, so the template's own blank-lined comment doesn't count. A loose list (blank lines between bullets) keeps every bullet. The template comment now says the note ends at its first blank line. **Verified:** - 4 new tests, 16 in total. - Mutation-checked: removing the paragraph rule, the loose-list exception or the uncomment-first step each fails the test that names it. - Re-parsed every PR merged since 18 Sep with the new parser: each gives `NONE` or its intended sentence. - `pnpm lint`, which runs these tests, passes. ## Changelog NONE --- 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01Q6gkmHZ3pYvsZCCpiA9qe9
End a pull request's release note at its first paragraph
All checks were successful
Release note / release-note (pull_request) Successful in 14s
CI / build (pull_request) Successful in 4m26s
CI / e2e (pull_request) Successful in 4m47s
CI / promote (pull_request) Has been skipped
CI / build (push) Successful in 4m38s
CI / e2e (push) Successful in 4m48s
CI / promote (push) Successful in 29s
5cba6127c7
An agent-opened pull request ends with an attribution footer one blank
line under its `## Changelog` note, and the parser read up to the next
heading or rule, so the footer was joined onto the entry. A sentence
carried a session link into the changelog, and NONE became an entry
reading "NONE 🤖 Generated with…". The release-note check passed both.
Of the pull requests merged since 18 September, 25 were affected: 22
meant NONE, and #122, #123 and #151 would have published the footer.

The note now ends at its first paragraph, after comments are removed so
the template's instructions never count as one. A loose list keeps
every bullet. Re-parsing every merged pull request since 18 September
gives NONE or the intended sentence for each. The four new tests were
mutation-checked: dropping the paragraph rule, the loose-list exception
or the uncomment-first step each fails the test that names it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q6gkmHZ3pYvsZCCpiA9qe9
Sign in to join this conversation.
No reviewers
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
Nectenda/nectenda!155
No description provided.