Skip to content

Conversation

@jdx
Copy link
Owner

@jdx jdx commented Jan 19, 2026

Summary

  • Updated prompt to ask Claude for a # Title on the first line
  • Parse title and combine with version: v1.2.3: Pithy Description
  • Body becomes release notes without duplicate heading

Example release title: v2.13.2: PowerShell Casing Fix

Test plan

  • Script parses # Title from first line
  • Falls back to version if parsing fails

🤖 Generated with Claude Code


Note

Improves GitHub release creation to use an LLM-generated pithy title and clean body, with safe fallbacks.

  • Workflow now runs scripts/gen-release-notes.sh to produce a first-line title and body; sets RELEASE_TITLE to <tag>: <pithy title> when available, else falls back to the tag
  • Passes --title "$RELEASE_TITLE" to gh release create; release notes body is everything after the first line from the script
  • gen-release-notes.sh prompt updated to require markdown starting with a # title, then parses the first line as the title and the rest as the body; falls back to the version if parsing fails

Written by Cursor Bugbot for commit 777f843. This will update automatically on new commits. Configure here.

Copilot AI review requested due to automatic review settings January 19, 2026 11:54
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR enhances GitHub release titles by having the LLM generate a pithy, descriptive title in addition to the release notes. Instead of using just the version tag (e.g., v2.13.2), releases will now have meaningful titles like v2.13.2: PowerShell Casing Fix.

Changes:

  • Updated the LLM prompt to request a title as the first line in markdown format
  • Modified the shell script to parse the title from the LLM output and output it separately
  • Updated the GitHub workflow to combine the version tag with the parsed title

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
scripts/gen-release-notes.sh Added title parsing logic and updated prompt to request a markdown title on the first line
.github/workflows/publish-cli.yml Modified to capture the parsed title and combine it with the version tag for the release title

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +86 to +87
if [[ $first_line == "# "* ]]; then
title="${first_line#\# }"
Copy link

Copilot AI Jan 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pattern \\# will only match # with exactly one space. If the LLM output contains multiple spaces after #, or no space, the title extraction will fail. Use a more flexible pattern like ${first_line#\\#[[:space:]]*} to handle variable whitespace.

Suggested change
if [[ $first_line == "# "* ]]; then
title="${first_line#\# }"
if [[ $first_line == \#* ]]; then
title="${first_line#\#[[:space:]]*}"

Copilot uses AI. Check for mistakes.
first_line=$(echo "$output" | head -n1)
if [[ $first_line == "# "* ]]; then
title="${first_line#\# }"
body=$(echo "$output" | tail -n +2)
Copy link

Copilot AI Jan 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using tail -n +2 will skip the second line (first line after title) if it's blank, which is likely given the format. This could result in losing the blank line separator. Consider preserving it, or if intentional, add a comment explaining the blank line is intentionally removed.

Suggested change
body=$(echo "$output" | tail -n +2)
# Drop only the first line (title) while preserving any blank separator line
body=$(printf '%s\n' "$output" | sed '1d')

Copilot uses AI. Check for mistakes.
@codecov
Copy link

codecov bot commented Jan 19, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 47.36%. Comparing base (2cd5def) to head (777f843).
⚠️ Report is 7 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #441      +/-   ##
==========================================
+ Coverage   46.63%   47.36%   +0.72%     
==========================================
  Files          46       47       +1     
  Lines        6546     6653     +107     
  Branches     6546     6653     +107     
==========================================
+ Hits         3053     3151      +98     
- Misses       1732     1739       +7     
- Partials     1761     1763       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

- Prompt Claude to start with `# Title` line
- Parse title and use for release title: "v1.2.3: Pithy Description"
- Body becomes the release notes without duplicate heading
@jdx jdx force-pushed the fix/release-notes-title branch from 2b4e2c0 to 777f843 Compare January 19, 2026 12:29
@jdx jdx enabled auto-merge (squash) January 19, 2026 12:29
@jdx jdx merged commit 18639f3 into main Jan 19, 2026
9 checks passed
@jdx jdx deleted the fix/release-notes-title branch January 19, 2026 12:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants