Files
PaperClipAI/releases
72a5fecb58 docs(release): canonicalize stable notes for v2026.1023.0 (#17400)
## Thinking Path

> - Paperclip is the open source app people use to manage AI agents for
work
> - The release process promotes a soaked beta to stable. The stable run
publishes the curated notes from `releases/beta/v<beta-version>.md` on
`master` as the GitHub Release body
> - After the publish, the notes must move to
`releases/v<stable-version>.md` on `master`. That path is the canonical
location that the release announcements and the next release notes link
to
> - Stable `v2026.1023.0` was published on 2026-10-23 from beta
`2026.1012.1-beta.0`. The `canonicalize_stable_notes` job in run
40030701194 was skipped, so the workflow did not push this branch
> - This pull request does by hand what that job does: it renames the
beta notes file to the stable path. It changes no content
> - The benefit is that `releases/v2026.1023.0.md` exists on `master`
and is byte-identical to the published GitHub Release body

## Linked Issues or Issue Description

Refs #17373
Refs #16053

**Issue type**

Missing content

**Where is the issue?**

`releases/` on `master`. The stable notes for `v2026.1023.0` are only at
the beta path `releases/beta/v2026.1012.1-beta.0.md`. The canonical path
`releases/v2026.1023.0.md` does not exist.

**What's wrong?**

The GitHub Release
https://github.com/paperclipai/paperclip/releases/tag/v2026.1023.0 is
published, but the `canonicalize_stable_notes` job of the release run
was skipped. The release announcements link to
`releases/v2026.1023.0.md` on `master`, and that link returns 404 until
this rename is merged.

**Suggested fix**

Rename the beta notes file to the stable path with no content change.
This is the same step the workflow job performs.

## What Changed

- `releases/beta/v2026.1012.1-beta.0.md` is renamed to
`releases/v2026.1023.0.md`. Git reports a 100% rename
- No line of the file changes. The blob is
`170e36dc971bc8f3a59fb574fc8cd19d366fc2d4`, the same blob the release
run pinned at `master` commit `e0d90339` when it created the GitHub
Release
- This pull request is a pure rename. It does not change the release
workflow

## Verification

- `git diff --stat -M100%
master...release-notes/v2026.1023.0-canonicalize` shows one renamed file
and no insertions or deletions
- `git rev-parse
release-notes/v2026.1023.0-canonicalize:releases/v2026.1023.0.md` prints
`170e36dc971bc8f3a59fb574fc8cd19d366fc2d4`
- `git rev-parse
e0d90339bfbde08ba804c1e527b781ac139075c7:releases/beta/v2026.1012.1-beta.0.md`
prints the same blob
- `gh api repos/paperclipai/paperclip/releases/tags/v2026.1023.0 --jq
.body | diff - releases/v2026.1023.0.md` reports only the one trailing
newline that `jq` adds to its output. The release body and the file have
the same bytes
- After merge,
https://github.com/paperclipai/paperclip/blob/master/releases/v2026.1023.0.md
returns 200 and the old beta path returns 404

## Risks

- Low risk: one markdown file moves and no content changes
- The release workflow's `canonicalize_stable_notes` job was skipped in
run 40030701194 although `publish_stable` succeeded and the notes mode
was `master_beta`. The job's `if` has no status function, so GitHub
applies an implicit `success()` that evaluates to false when an upstream
job in the chain was skipped (`release_runner_binaries` was skipped in
this run). A one-line `!cancelled() &&` guard, as `publish_stable`
already uses, fixes it. That fix is not in this pull request so this
stays a pure rename

## Model Used

- Claude (Anthropic), model ID `claude-fable-5-1` (Claude Fable 5.1),
extended thinking enabled, tool use via Claude Code

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have searched GitHub for duplicate or related PRs and linked
them above
- [x] I have either (a) linked existing issues with `Fixes: #` / `Closes
#` / `Refs #` OR (b) described the issue in-PR following the relevant
issue template
- [x] I have not referenced internal/instance-local Paperclip issues or
links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip`
URLs)
- [x] My branch name describes the change (e.g. `docs/...`, `fix/...`)
and contains no internal Paperclip ticket id or instance-derived details
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [ ] All Paperclip CI gates are green
- [ ] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: devinfoley <139239+devinfoley@users.noreply.github.com>
Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-10-23 17:33:39 -07:00
..
2026-03-09 13:55:30 -05:00
2026-03-12 11:05:31 -05:00
2026-04-04 07:44:23 -05:00