Skip to content

Commit d1416fa

Browse files
ci: prefer CHANGELOG.md section for release notes when present
Adds CHANGELOG.md (Keep a Changelog format) with entries for v1.3.35–37. The release-binaries workflow now extracts the section matching the pushed tag and uses it as the GitHub release body. Falls back to GitHub auto-generated notes when the file or section is missing — so patch tags without changelog entries still get readable notes for free. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 691b401 commit d1416fa

2 files changed

Lines changed: 70 additions & 5 deletions

File tree

.github/workflows/release-binaries.yml

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,44 @@ jobs:
5555
tar -czf codeep-linux-x86_64.tar.gz codeep-linux-x86_64
5656
tar -czf codeep-linux-aarch64.tar.gz codeep-linux-aarch64
5757
58+
- name: Extract CHANGELOG section
59+
id: notes
60+
run: |
61+
# If CHANGELOG.md has an entry for this version, use it as the
62+
# release body. Otherwise fall back to GitHub auto-generation in the
63+
# next step. Lets you ship rich curated notes for major releases
64+
# without ceremony for patches.
65+
VERSION="${GITHUB_REF#refs/tags/v}"
66+
if [ -f CHANGELOG.md ]; then
67+
awk -v v="$VERSION" '
68+
$0 ~ "^## \\[" v "\\]" { found=1; next }
69+
found && /^## \[/ { exit }
70+
found { print }
71+
' CHANGELOG.md > release-notes.md
72+
if [ -s release-notes.md ]; then
73+
echo "found=true" >> "$GITHUB_OUTPUT"
74+
echo "Using CHANGELOG.md section for v$VERSION"
75+
cat release-notes.md
76+
else
77+
echo "found=false" >> "$GITHUB_OUTPUT"
78+
echo "No CHANGELOG entry for v$VERSION; will auto-generate"
79+
fi
80+
else
81+
echo "found=false" >> "$GITHUB_OUTPUT"
82+
fi
83+
5884
- name: Upload to GitHub Release
5985
uses: softprops/action-gh-release@v2
6086
with:
6187
# Explicit GITHUB_TOKEN — without this, action-gh-release@v2 sometimes
6288
# falls back to an unauthenticated request and the upload step fails
6389
# with HTTP 401. Has happened intermittently in our runs (v1.3.35–37).
6490
token: ${{ secrets.GITHUB_TOKEN }}
65-
# Auto-generate release notes from commits + PRs since the previous
66-
# tag. Patch releases get readable notes for free; major releases can
67-
# still be hand-edited afterwards (the action won't overwrite a body
68-
# set after creation when files-only updates run later).
69-
generate_release_notes: true
91+
# Use the CHANGELOG section when present; otherwise fall back to the
92+
# GitHub auto-generated commit/PR list. The two flags are mutually
93+
# exclusive — only one is non-empty per run.
94+
body_path: ${{ steps.notes.outputs.found == 'true' && 'release-notes.md' || '' }}
95+
generate_release_notes: ${{ steps.notes.outputs.found != 'true' }}
7096
files: |
7197
dist/bin/codeep-darwin-aarch64.tar.gz
7298
dist/bin/codeep-darwin-x86_64.tar.gz

CHANGELOG.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Changelog
2+
3+
All notable changes to **Codeep CLI** are documented here.
4+
Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) ·
5+
Versioning: [Semantic Versioning](https://semver.org/).
6+
7+
For releases before v1.3.35, see [GitHub Releases](https://github.com/VladoIvankovic/Codeep/releases).
8+
9+
## [1.3.37] — 2026-04-29
10+
11+
### Changed
12+
- Maintenance release. Republished with the same code as v1.3.36 to align the
13+
npm version, GitHub binaries, and Homebrew formula across all distribution
14+
channels. If you're on v1.3.36, no need to upgrade.
15+
16+
## [1.3.36] — 2026-04-28
17+
18+
### Added
19+
- **`session/list_providers` ACP method** — returns the canonical provider
20+
catalog (`id`, `name`, `groupLabel`, `hint`, `requiresKey`, `subscribeUrl`)
21+
so ACP clients no longer need to hard-code provider lists. Prerequisite for
22+
Codeep VS Code extension v0.1.23+, which fetches the catalog dynamically.
23+
- **`groupLabel` and `hint` fields** in `ProviderConfig` (`src/config/providers.ts`)
24+
for richer client-side rendering of the provider picker.
25+
26+
## [1.3.35] — 2026-04-28
27+
28+
### Added
29+
- **Diff previews on permission prompts** — manual-mode `session/request_permission`
30+
payloads now include the actual change (`old_string` / `new_string` for
31+
`edit_file`, full content for `write_file`, command + cwd for `execute_command`).
32+
Truncated at ~4 KB per field, 200 lines per file. Other ACP clients see the
33+
extra fields as harmless additional keys.
34+
- **Reasoning stream support**`agent_thought_chunk` notifications flow
35+
through to clients that subscribe to them, so models with extended thinking
36+
(Claude, GPT-5 reasoning, DeepSeek R1, etc.) can surface their reasoning UI.
37+
38+
### Changed
39+
- Input formatting tweaks for clearer user-side verification.

0 commit comments

Comments
 (0)