Skip to content

ci(release): rewrite fork handles to "upstream" across the whole release page - #317

Closed
navyas321 wants to merge 1 commit into
vibemis-mainfrom
chore/scrub-fork-handles-whole-release-page
Closed

ci(release): rewrite fork handles to "upstream" across the whole release page#317
navyas321 wants to merge 1 commit into
vibemis-mainfrom
chore/scrub-fork-handles-whole-release-page

Conversation

@navyas321

Copy link
Copy Markdown
Owner

Problem

The hero gate kept fork/maintainer handles (nonary, wjbeckett, cgutman, moonlight-qt) out of the stable hero, but the technical sections and the collapsed plumbing block still published them — so a fork maintainer's name reached the release page regardless.

Change

Handles are rewritten, not deleted, everywhere on the page. The changelog entry survives; only the name goes.

scrub_attribution() substitutes upstream only when the subject doesn't already carry the word — so Eliminate all divergences with Nonary VRR10 upstream doesn't come out as ...with upstream VRR10 upstream, while Guard Nonary VRR features behind version checks gains the word rather than reading as if we guard our own. It runs before sentence_case, so a handle at the start of a subject still yields a capitalized bullet.

The hero gate still tests the raw note: a note that needed scrubbing is provenance-flavoured writing, and that's the signal being read. Host types and protocols (Artemis, Apollo, Sunshine, Moonlight) are a real user-facing choice and remain untouched.

Verification

scripts/check-changelog-invariants.sh passes in full:

  • 29 rewritten — asserts no handle survives anywhere and that the entry was not deleted
  • 31 new — covers the collapsed plumbing block across all four real 0.5.0 subject spellings

🤖 Generated with Claude Code

https://claude.ai/code/session_011ssiryy9pATyJo32UUNxjX

…ase page

The hero gate already kept fork/maintainer handles out of the stable hero,
but the technical sections and the collapsed plumbing block still published
them -- so a maintainer's name was on the release page either way.

Handles are now REWRITTEN rather than dropped: the changelog entry survives
minus the name. scrub_attribution() substitutes "upstream" only when the
subject does not already carry the word, so "Eliminate all divergences with
Nonary VRR10 upstream" does not come out doubled, and a subject that needs
the word to still make sense gains it. Runs before sentence_case so a handle
at the start of a subject still yields a capitalized bullet.

The hero gate keeps testing the RAW note, since a note that needed scrubbing
is provenance-flavoured writing and that is the signal being read.

Invariant 29 now asserts no handle survives anywhere while the entry itself
remains; new invariant 31 covers the collapsed plumbing block and all four
real 0.5.0 subject spellings. Full suite passes locally.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011ssiryy9pATyJo32UUNxjX
@navyas321 navyas321 closed this Jul 31, 2026
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.

1 participant