docs(release): canonicalize stable notes for v2026.1106.0 (#19770)

## 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 website changelog and the next release notes use
> - Stable `v2026.1106.0` was published on 2026-11-06 from beta
`2026.1023.0-beta.0`. The `canonicalize_stable_notes` job in run
42295041150 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.1106.0.md` exists on `master`
and is byte-identical to the published GitHub Release body

## Linked Issues or Issue Description

Refs #17400
Refs #19607

**Issue type**

Missing content

**Where is the issue?**

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

**What's wrong?**

The GitHub Release
https://github.com/paperclipai/paperclip/releases/tag/v2026.1106.0 is
published, but the `canonicalize_stable_notes` job of the release run
was skipped. The website changelog sync reads `releases/v2026.1106.0.md`
on `master`, so the changelog page for this release cannot appear 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.1023.0-beta.0.md` is renamed to
`releases/v2026.1106.0.md`. Git reports a 100% rename
- No line of the file changes. The blob is
`16f05f22d4d71de3a568b493de2ddcb8eadb7859`, the same blob the release
run pinned at `master` commit `da9a4cb9` when it created the GitHub
Release
- The branch has two commits (add the stable path, then remove the beta
path) because it was written through the GitHub API. Squashed, it is one
pure rename
- This pull request does not change the release workflow

## Verification

- `git diff --stat -M100%
master...release-notes/v2026.1106.0-canonicalize` shows one renamed file
with 0 insertions and 0 deletions
- `git rev-parse
release-notes/v2026.1106.0-canonicalize:releases/v2026.1106.0.md` prints
`16f05f22d4d71de3a568b493de2ddcb8eadb7859`
- `git rev-parse
da9a4cb96c46945d693f0ddffdcb0e0743649a01:releases/beta/v2026.1023.0-beta.0.md`
prints the same blob
- `gh api repos/paperclipai/paperclip/releases/tags/v2026.1106.0 --jq
.body` piped through `cmp` against the file (without the trailing
newline that `--jq` adds) reports no difference. The release body and
the file have the same bytes
- After merge,
https://github.com/paperclipai/paperclip/blob/master/releases/v2026.1106.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
again, as on the `v2026.1023.0` release (#17400). `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 check
is false when an upstream job in the chain was skipped (jobs inside
`release_runner_binaries` were skipped in this run). A `!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-opus-5-5` (Claude Opus 5.5), 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)
This commit is contained in:
Devin Foley authored and GitHub committed 2026-11-07 10:42:47 -08:00
1 parent dcaada5f59
commit fbe689938c
1 file changed
File renamed without changes.