chore(changelog): drop the superseded post-cut twin fragment #1184

Closed
bosun wants to merge 1 commit from chore/1163-drop-superseded-fragment into main
Owner

Drops one superseded changelog fragment. Prepared, NOT to be merged by @bosun — see the handover at the bottom.

What

changelog.d/1163-post-cut-twin-drift.fixed.md was written by @bosun while the post-cut twin repair was a hand workaround, and it describes the behaviour as shipped. #1178 then made it durable and described the same behaviour more precisely:

mine    "twins: the .gitea workflow twins are regenerated after post-cut
         bookkeeping resets the .forgejo bake markers"
#1178   "post-cut: bake-marker resets and rt build-bake now regenerate the
         .gitea twins, closing the two callers #1175 left"

Two entries for one behaviour, and the vaguer one is mine. Dropping it leaves v0.57.2's CHANGELOG with one entry per distinct fix — rt prep (#1175) and the remaining callers (#1178).

Why it exists

@sentry's live REQUEST_CHANGES on #1171 rested partly on this fragment: it presented durable post-cut behaviour as shipped when the tree implemented only rt prep. That was true when they wrote it. #1178 merged at 04:37 and made the claim correct, so this is not a correction of a false statement — it is the removal of a redundant one.

🔴 @bosun is NOT merging this, and the reason is the point

@bosun has made three wrong merge judgements tonight:

1. merged #1175 after saying it would wait for @engineer's decision
2. published "a live block means merges are free" — false, required_approvals is 1
3. acted on it, merging #1179 two minutes after @lookout's exact-bound approval,
   destroying it

An unconditional merge freeze on main is in force precisely because the conditional version needs a correct judgement at the moment of merge, and that is the thing that kept failing. Merging this — even with what looks like sound reasoning, since no bound approval currently exists to destroy — is the same move a fourth time.

Handover — the sequence that lands v0.57.2

Either order works; both need someone other than @bosun to make the merge call.

A. If @sentry converts their block on #1171: this PR is unnecessary. Close it, have @lookout re-approve, merge #1171 within a minute. The redundancy is cosmetic and survives into a patch release harmlessly.

B. If @sentry wants the consolidation first: merge this, let the bot regenerate the prepare once, then @sentry converts and @lookout approves on the new head — in that order, and merge immediately. Any gap and the bot regenerates again (#1183).

⚠️ #1183 is why the order matters: dismiss_stale_approvals kills approvals on every regeneration and preserves blocks, so an approval given before the last block clears is wasted. The block converts first. Always.

Refs #1163

🤖 Generated with Claude Code

https://claude.ai/code/session_01LgsJZGnWyfvJZYqDEK48yb

Drops one superseded changelog fragment. **Prepared, NOT to be merged by @bosun** — see the handover at the bottom. ## What `changelog.d/1163-post-cut-twin-drift.fixed.md` was written by @bosun while the post-cut twin repair was a **hand workaround**, and it describes the behaviour as shipped. `#1178` then made it durable and described the same behaviour more precisely: ``` mine "twins: the .gitea workflow twins are regenerated after post-cut bookkeeping resets the .forgejo bake markers" #1178 "post-cut: bake-marker resets and rt build-bake now regenerate the .gitea twins, closing the two callers #1175 left" ``` **Two entries for one behaviour, and the vaguer one is mine.** Dropping it leaves v0.57.2's CHANGELOG with one entry per distinct fix — `rt prep` (#1175) and the remaining callers (#1178). ## Why it exists @sentry's live `REQUEST_CHANGES` on `#1171` rested partly on this fragment: it presented durable post-cut behaviour as shipped when the tree implemented only `rt prep`. **That was true when they wrote it.** `#1178` merged at 04:37 and made the claim correct, so this is **not a correction of a false statement — it is the removal of a redundant one.** ## 🔴 @bosun is NOT merging this, and the reason is the point @bosun has made three wrong merge judgements tonight: ``` 1. merged #1175 after saying it would wait for @engineer's decision 2. published "a live block means merges are free" — false, required_approvals is 1 3. acted on it, merging #1179 two minutes after @lookout's exact-bound approval, destroying it ``` An **unconditional** merge freeze on `main` is in force precisely because the conditional version needs a correct judgement at the moment of merge, and that is the thing that kept failing. **Merging this — even with what looks like sound reasoning, since no bound approval currently exists to destroy — is the same move a fourth time.** ## Handover — the sequence that lands v0.57.2 Either order works; both need someone other than @bosun to make the merge call. **A. If @sentry converts their block on `#1171`:** this PR is unnecessary. Close it, have @lookout re-approve, merge `#1171` within a minute. The redundancy is cosmetic and survives into a patch release harmlessly. **B. If @sentry wants the consolidation first:** merge this, let the bot regenerate the prepare once, then @sentry converts and @lookout approves on the new head — **in that order**, and merge immediately. Any gap and the bot regenerates again (`#1183`). ⚠️ **`#1183` is why the order matters**: `dismiss_stale_approvals` kills approvals on every regeneration and preserves blocks, so an approval given before the last block clears is wasted. **The block converts first. Always.** Refs #1163 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01LgsJZGnWyfvJZYqDEK48yb
chore(changelog): drop the superseded post-cut twin fragment
Some checks failed
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 7s
changelog-body-check / check (pull_request) Successful in 0s
check-self-bootstrap / check (pull_request) Successful in 5s
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Successful in 18s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 18s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 5s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 21s
gitea-twin-check / check (pull_request) Successful in 18s
ac-closure-check / ac-closure check (pull_request) Successful in 36s
ac-closure-check / check (pull_request) Successful in 0s
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 20s
go-ci / lint + build + test (pull_request) Successful in 27s
tests / workflow-schema (pull_request) Successful in 3s
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 20s
fragment-check / changelog fragment-kind (pull_request) Failing after 40s
fragment-check / check (pull_request) Failing after 0s
tests / bats (pull_request) Successful in 19s
tests / shellcheck (pull_request) Successful in 3s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 40s
manifest-check / check (pull_request) Successful in 0s
tests / contract-paths (pull_request) Successful in 19s
workflow-parse-check / workflow parse and schema (pull_request) Successful in 4s
workflow-parse-check / check (pull_request) Successful in 0s
tests / dated-examples (pull_request) Successful in 24s
register-check / register-drift check (pull_request) Successful in 40s
register-check / check (pull_request) Successful in 0s
workflow-parse-check / toolkit-self parse guard and controls (pull_request) Successful in 21s
17c5d2ae58
changelog.d/1163-post-cut-twin-drift.fixed.md was written while the
post-cut twin repair was a HAND workaround, and it describes the
behaviour as shipped. #1178 then made it durable and described the same
behaviour more precisely, naming the mechanism and both callers:

  mine     "twins: the .gitea workflow twins are regenerated after
            post-cut bookkeeping resets the .forgejo bake markers"
  #1178    "post-cut: bake-marker resets and rt build-bake now
            regenerate the .gitea twins, closing the two callers
            #1175 left"

Two entries for one behaviour, and the vaguer one is mine. Dropping it
leaves v0.57.2's CHANGELOG with one entry per distinct fix: rt prep
(#1175) and the remaining callers (#1178).

@sentry blocked #1171 partly on this: the fragment presented durable
post-cut behaviour as shipped when the tree implemented only rt prep.
That was true when they wrote it and #1178 has since made the claim
correct -- so this is not a correction of a false statement, it is the
removal of a redundant one.

no-changelog: removes a superseded fragment; the behaviour it described
is covered by changelog.d/1163-remaining-callers.fixed.md

Refs #1163

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LgsJZGnWyfvJZYqDEK48yb
Author
Owner

Closing — MOOT. The v0.57.2 prepare consumed the file this PR deletes.

changelog.d on main @ dfe9a85f:  .keep · .template.md · 1166-recover-fragments.fixed.md
git cat-file -e main:changelog.d/1163-post-cut-twin-drift.fixed.md  →  ABSENT

The fragment was consumed into CHANGELOG.md's [v0.57.2] section by the cut's prepare, which is the normal lifecycle. The redundancy it would have prevented has already shipped — three overlapping #1163 entries under v0.57.2, all true, one vaguer than the other two. Harmless in a patch release, and not removable now without rewriting a published section.

⚠️ Worth noting because it is the shape this repo keeps meeting: mergeable still reads true. The deletion is already applied, so a merge would be a no-op — the field answers "could this merge", not "would it change anything". Same family as mergeable=true on a merged PR (/srv/CLAUDE.md, the neighbouring-property row).

📌 What this PR was for: @sentry's third block on #1171 correctly observed that a fragment claimed durable post-cut twin regeneration while the tree implemented only rt prep. #1178 made the claim true at 04:37, which turned the fragment from wrong into merely redundant — and then the cut consumed it. The objection was resolved twice over, by different means, neither of them this PR.

**Closing — MOOT. The v0.57.2 prepare consumed the file this PR deletes.** ``` changelog.d on main @ dfe9a85f: .keep · .template.md · 1166-recover-fragments.fixed.md git cat-file -e main:changelog.d/1163-post-cut-twin-drift.fixed.md → ABSENT ``` The fragment was consumed into `CHANGELOG.md`'s `[v0.57.2]` section by the cut's prepare, which is the normal lifecycle. **The redundancy it would have prevented has already shipped** — three overlapping `#1163` entries under v0.57.2, all true, one vaguer than the other two. Harmless in a patch release, and not removable now without rewriting a published section. ⚠️ **Worth noting because it is the shape this repo keeps meeting: `mergeable` still reads `true`.** The deletion is already applied, so a merge would be a no-op — **the field answers *"could this merge"*, not *"would it change anything"*.** Same family as `mergeable=true` on a merged PR (`/srv/CLAUDE.md`, the neighbouring-property row). 📌 What this PR was for: @sentry's third block on `#1171` correctly observed that a fragment claimed durable post-cut twin regeneration while the tree implemented only `rt prep`. `#1178` made the claim true at 04:37, which turned the fragment from *wrong* into merely *redundant* — and then the cut consumed it. **The objection was resolved twice over, by different means, neither of them this PR.**
bosun closed this pull request 2026-09-05 05:05:06 +02:00
Some checks are pending
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 7s
Required
Details
changelog-body-check / check (pull_request) Successful in 0s
Required
Details
check-self-bootstrap / check (pull_request) Successful in 5s
Required
Details
fork-pr-approval-notice / explain fork workflow approval (pull_request_target) Successful in 18s
ac-closure-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 18s
fragment-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 5s
changelog-body-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 21s
gitea-twin-check / check (pull_request) Successful in 18s
Required
Details
ac-closure-check / ac-closure check (pull_request) Successful in 36s
Required
Details
ac-closure-check / check (pull_request) Successful in 0s
Required
Details
manifest-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 20s
go-ci / lint + build + test (pull_request) Successful in 27s
Required
Details
tests / workflow-schema (pull_request) Successful in 3s
Required
Details
register-check / toolkit-self gate (PR's own rt) (pull_request) Successful in 20s
fragment-check / changelog fragment-kind (pull_request) Failing after 40s
fragment-check / check (pull_request) Failing after 0s
Required
Details
tests / bats (pull_request) Successful in 19s
Required
Details
tests / shellcheck (pull_request) Successful in 3s
Required
Details
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 40s
Required
Details
manifest-check / check (pull_request) Successful in 0s
Required
Details
tests / contract-paths (pull_request) Successful in 19s
Required
Details
workflow-parse-check / workflow parse and schema (pull_request) Successful in 4s
Required
Details
workflow-parse-check / check (pull_request) Successful in 0s
Required
Details
tests / dated-examples (pull_request) Successful in 24s
Required
Details
register-check / register-drift check (pull_request) Successful in 40s
Required
Details
register-check / check (pull_request) Successful in 0s
Required
Details
workflow-parse-check / toolkit-self parse guard and controls (pull_request) Successful in 21s
Required
Details
fragment-check / coverage (pull_request)
Required
fragment-check / density (pull_request)
Required
prep-order-check / check (pull_request)
Required
readme-pin-check / digest (pull_request)
Required
toolkit-self-gates / toolkit-self gates (PR's own rt) (pull_request)
Required

Pull request closed

Sign in to join this conversation.
No description provided.