claude-code - ✅(Solved) Fix [FEATURE] Include full changelog content in GitHub release notes and Atom feeds [1 pull requests, 2 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#48271Fetched 2026-04-16 07:04:33
View on GitHub
Comments
2
Participants
2
Timeline
6
Reactions
0
Timeline (top)
commented ×2labeled ×2cross-referenced ×1referenced ×1

Error Message

Improved: /model mid-conversation warnings, /resume picker, error messages

Root Cause

This would make the CHANGELOG.md.atom feed entries meaningful because the <content> tag in that feed mirrors the commit message.

Fix Action

PR fix notes

PR #48272: [Release Notes] Enrich release titles with changelog summary

Description (problem / solution / changelog)

Why 🤔

  • Teams consuming Claude Code releases via RSS/Slack integrations currently get minimal information: the CHANGELOG.md.atom commit feed shows only chore: Update CHANGELOG.md, and the releases.atom titles are bare version numbers like v2.1.108
  • Slack's RSS integration renders the existing release feed poorly for large releases, truncating or collapsing the HTML content
  • AI enablement teams rolling out Claude Code need the full changelog visible directly in Slack without clicking through to GitHub

Slack thread discussing the problem

Changes Made 🔧

Atom feed generator (scripts/generate-feed.py)

Parses CHANGELOG.md and generates feed.xml as a proper Atom feed where each entry contains the full list of changes as content. Each feed entry includes:

  • Title: Claude Code v2.1.108
  • Content: the complete bullet list with all Added/Improved/Fixed/etc. entries
  • Link: back to the GitHub release page

The HTML output uses <p> tags with Unicode bullet characters () instead of <ul>/<li>, which Slack's RSS bot renders cleanly with proper spacing and line breaks.

Workflow (update-changelog-feed.yml)

Triggers on release: published, runs generate-feed.py, and commits the updated feed.xml to main. Zero config, no external hosting, no middleware.

How to Subscribe in Slack 🔔

Once merged, any Slack channel can subscribe to the changelog feed:

  1. Open the channel where you want release notifications
  2. Run:
    /feed subscribe https://raw.githubusercontent.com/anthropics/claude-code/main/feed.xml
  3. New releases will automatically post to the channel with full changelog content

To manage subscriptions:

  • /feed list to see active subscriptions
  • /feed remove <URL> to unsubscribe

Before/After Demos 📸

Before (current CHANGELOG.md.atom feed in Slack)

Every notification is identical: chore: Update CHANGELOG.md with no version number, no summary, no changelog content.

<img width="1048" height="207" alt="Screenshot 2026-04-14 at 9 36 36 PM" src="https://github.com/user-attachments/assets/2b2746f1-8f1b-4c14-b497-7ce865195c00" />

After (proposed feed.xml in Slack)

Full changelog content visible inline: version number, bulleted list of all changes.

<img width="641" height="212" alt="Screenshot 2026-04-14 at 10 03 30 PM" src="https://github.com/user-attachments/assets/dd23f100-807c-4dc7-9ce7-11edf47087cd" />

Testing 🧪

  • Feed generator produces valid XML (verified with xml.etree.ElementTree)
  • Tested against versions 2.1.105, 2.1.107, 2.1.108, 2.1.109
  • Verified Slack RSS rendering in a live test channel with proper bullets and spacing
  • Feed contains 20 most recent versions (configurable via MAX_ENTRIES)
  • Single-entry releases (v2.1.107) and large releases (v2.1.105, 37 items) both handled correctly

How to Test Locally 🧑‍💻

# Clone and checkout the branch
gh pr checkout 48272

# Generate the feed
python3 scripts/generate-feed.py
# Should print: "Generated feed.xml with 20 entries"

# Validate the output
python3 -c "
import xml.etree.ElementTree as ET;
tree = ET.parse('feed.xml');
ns = {'atom': 'http://www.w3.org/2005/Atom'};
entries = tree.getroot().findall('atom:entry', ns);
print(f'Valid XML: {len(entries)} entries');
for e in entries[:3]:
    print(f'  {e.find("atom:title", ns).text}: {e.find("atom:updated", ns).text}')
"

# Test in a Slack channel (uses the raw feed from your fork)
# /feed subscribe https://raw.githubusercontent.com/<your-fork>/claude-code/<branch>/feed.xml

Risks ⚠️

  • Race condition: If the release is created before CHANGELOG.md is updated, the workflow may not find entries. Mitigated by graceful exit 0 when no entries are found
  • feed.xml staleness: Feed is only regenerated on new releases. Existing versions won't retroactively get updated timestamps. This matches user expectations since the feed is for notifications, not history browsing

Revert Plan 🔄

  • Delete the workflow file and feed.xml to stop generating the feed
  • No other state to clean up

Relevant Links 🔗

Fixes #48271

Notes for Reviewers ✏️

  • This adds 3 files: a workflow, a Python script, and the generated feed.xml
  • The feed URL (raw.githubusercontent.com/anthropics/claude-code/main/feed.xml) works immediately once merged, no Pages or hosting setup needed
  • Slack's native /feed command is available in every workspace, no bot or app install required
  • Happy to adjust the feed format, entry count, or output style based on team preferences

Changed files

  • .github/workflows/update-changelog-feed.yml (added, +39/-0)
  • feed.xml (added, +689/-0)
  • scripts/generate-feed.py (added, +166/-0)

Code Example

chore: Update CHANGELOG.md - v2.1.108 (24 changes)

Added: ENABLE_PROMPT_CACHING_1H env var, recap feature, slash command discovery via Skill tool
Improved: /model mid-conversation warnings, /resume picker, error messages
Fixed: paste in /login, diacritical marks, policy plugins, and 11 more
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing requests and this feature hasn't been requested yet
  • This is a single feature request (not multiple features)

Problem Statement 🤔

Teams that manage Claude Code rollouts rely on Slack RSS integrations to stay on top of releases. Right now there are two Atom feed options, and neither gives a great experience in Slack:

1. CHANGELOG.md commit feed (github.com/anthropics/claude-code/commits/main/CHANGELOG.md.atom)

Every entry title is just chore: Update CHANGELOG.md and the <content> tag repeats that same commit message. There's no actual changelog content, so you get a Slack notification that says "chore: Update CHANGELOG.md" with zero detail about what changed.

2. Releases Atom feed (github.com/anthropics/claude-code/releases.atom)

This one does include the full "What's changed" bullet list in the <content> tag as HTML. It's better, but:

  • Slack's RSS integration renders it as a single dense block or truncates it
  • The release titles are just version numbers like v2.1.108 with no summary

The result is that AI enablement teams either manually check the docs changelog page or get near-useless "chore: Update CHANGELOG.md" pings in Slack.

(cc Slack thread with Will Steuk where he shared the CHANGELOG.md.atom workaround)

Proposed Solution 💡

A few options that would improve the feed experience:

Option A: Richer commit messages on CHANGELOG.md updates

Instead of the automated commit message chore: Update CHANGELOG.md, include the version number and a summary in the commit message. For example:

chore: Update CHANGELOG.md - v2.1.108 (24 changes)

Added: ENABLE_PROMPT_CACHING_1H env var, recap feature, slash command discovery via Skill tool
Improved: /model mid-conversation warnings, /resume picker, error messages
Fixed: paste in /login, diacritical marks, policy plugins, and 11 more

This would make the CHANGELOG.md.atom feed entries meaningful because the <content> tag in that feed mirrors the commit message.

Option B: Include a short summary in release titles

Instead of just v2.1.108, use something like v2.1.108 - 24 changes: prompt caching, recap, slash command discovery. The releases.atom feed uses the title directly, so Slack notifications would be much more informative at a glance.

Option C: Publish a dedicated RSS/Atom feed

Add a /feed.xml or /rss.xml endpoint to code.claude.com/docs/en/changelog that mirrors the page content. This is the gold standard for changelog discoverability and would also cover the blog at claude.com/blog (which has no feed either).

Any combination of these would be a big improvement. Option A is probably the lowest effort since it's just a CI workflow change.

Alternative Solutions 🔧

  • What we're doing today: subscribed to the CHANGELOG.md.atom feed in a Slack channel, but every entry just says "chore: Update CHANGELOG.md" with a link. You have to click through to see what changed
  • The releases.atom feed is slightly better but still not great in Slack's RSS rendering
  • Manually checking the docs changelog page works but doesn't scale for teams tracking multiple tools

Priority

Medium - Would be very helpful

Feature Category

Documentation

Use Case Example 📋

  1. Our AI enablement team at Slack manages Claude Code rollout for hundreds of engineers
  2. We set up a Slack channel with an RSS feed for Claude Code changes so the team stays informed
  3. A new release drops, Slack posts: chore: Update CHANGELOG.md
  4. Nobody knows what changed without clicking through to GitHub
  5. With this feature, the same Slack notification would show: v2.1.108 - Added prompt caching, recap feature, slash command discovery (or the full bullet list)
  6. Engineers can quickly scan the channel and know whether an update is relevant to them

Additional Context 📸

What it looks like today in Slack:

Every notification is just "chore: Update CHANGELOG.md" with a commit link. No version number, no summary, no changelog content. The information exists in the CHANGELOG.md file and in the GitHub release body, it just doesn't make it into the feed entry that Slack displays.

The releases.atom feed is close but the <title> is just the version number (e.g., v2.1.109) and while the <content> has the full HTML changelog, Slack's RSS bot doesn't render it well for large releases.

For reference, the docs changelog at code.claude.com/docs/en/changelog has beautifully structured entries with version numbers, dates, and categorized bullet points (Added, Improved, Fixed, etc.). If even a fraction of that context made it into the Atom feeds, it would be a huge quality-of-life improvement for teams consuming these updates programmatically.

I'm sure other AI enablement teams at companies rolling out Claude Code would love a richer feed experience too 💡

extent analysis

TL;DR

Implementing richer commit messages for CHANGELOG.md updates or including a short summary in release titles can improve the feed experience in Slack.

Guidance

  • Consider modifying the CI workflow to include the version number and a summary in the commit message for CHANGELOG.md updates, as proposed in Option A.
  • Alternatively, update the release titles to include a short summary, as suggested in Option B, to make the releases.atom feed more informative.
  • Evaluate the feasibility of publishing a dedicated RSS/Atom feed, as outlined in Option C, to provide a more comprehensive solution.
  • Assess the trade-offs between these options, considering factors such as implementation effort and potential impact on the feed experience.

Example

A sample commit message with a version number and summary could look like this:

chore: Update CHANGELOG.md - v2.1.108 (24 changes)

Added: ENABLE_PROMPT_CACHING_1H env var, recap feature, slash command discovery via Skill tool
Improved: /model mid-conversation warnings, /resume picker, error messages
Fixed: paste in /login, diacritical marks, policy plugins, and 11 more

This would make the CHANGELOG.md.atom feed entries more meaningful and informative.

Notes

The proposed solutions aim to address the limitations of the current feed experience, but may require adjustments to the CI workflow or release management processes. It is essential to evaluate the potential impact on existing workflows and tools before implementing any changes.

Recommendation

Apply workaround by implementing richer commit messages for CHANGELOG.md updates (Option A), as it is likely the lowest effort solution and can provide a significant improvement to the feed experience.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING