ceremony/changelog.d
clad2 6986deede7 fix(labels): the bootstrap keys on the BOOTSTRAP input, never the event name
The venue drill caught what no hermetic test had: with the workflow_call
bridge delivering "no" perfectly, drill runs 16/17 still bootstrapped. The
script gated on GITHUB_EVENT_NAME = workflow_dispatch and never read
$BOOTSTRAP at all; the wrapper's only coupling was exporting the event name
for yes. Correct while an operator's manual dispatch was the only dispatch
there was — inert from #209 on, when the trigger job made every machine wake
a workflow_dispatch event. Runs 459/523 bootstrapped for this reason, not
for the input-delivery defect, which is real but was never the operative
cause of the observed re-upserts.

The script now gates on ${BOOTSTRAP:-no} = yes; the wrapper passes the input
through untouched; the hermetic suite pins the exact regression pair (a
dispatch event with no/unset creates and deletes nothing) alongside the
yes path's full create+delete assertions.

Refs #215
2026-08-05 21:32:21 +00:00
..
192.md fix(forgejo): a read failure names its verb too, and the tests assert the whole diagnostic (#192) 2026-08-05 13:11:33 +00:00
195.md fix(labels): panel and triage name identities that exist on this forge (#195) 2026-08-04 19:09:16 +00:00
198.md fix(198): the action fails closed, the caller decides scheduling, the guard decides the forge (#198) 2026-08-05 12:30:28 +00:00
199.md fix(refs-not-closing): gather over REST, so the guard produces verdicts here 2026-08-05 17:11:19 +00:00
200.md fix(upstream-delta): discovery is git's index, not the filesystem (#200) 2026-08-05 14:10:56 +00:00
201.md fix(docs-sync): the mirror is fetched from the forge in play, never a built-in one (#201) 2026-08-05 11:16:23 +00:00
202.md docs(runner-probes): restore !207's release notes; per-run links; honest security lesson 2026-08-05 19:48:04 +00:00
205.md fix(labels): refuse an unset API root, name transport failures, update the docs 2026-08-05 17:16:30 +00:00
209.md fix(forge): forge_commit_at — Forgejo serves a single commit at /git/commits/{sha} (#209) 2026-08-05 15:01:32 +00:00
210.md test(issueflow): each of the three sites is caught by behaviour, not only by the pin (#210) 2026-08-05 14:37:37 +00:00
215.md fix(labels): the bootstrap keys on the BOOTSTRAP input, never the event name 2026-08-05 21:32:21 +00:00
README.md feat: ceremony flips to grouped — changelog.d/shape = grouped, five fragments converted, docs per D6 2026-07-25 13:14:05 +00:00
shape feat: ceremony flips to grouped — changelog.d/shape = grouped, five fragments converted, docs per D6 2026-07-25 13:14:05 +00:00

changelog.d/ — the next release's section, one fragment per issue

Machine-assembled by bin/changelog-assemble (#112): every PR that changes behavior writes one file here — <issue>.md, the exact prose that will be published, nothing else — and the release PR folds them all into the next ## X.Y.Z — DATE section of CHANGELOG.md, consuming them. Distinct filenames never conflict, which is this directory's whole reason to exist. This README is the marker that keeps the directory tracked when it holds no fragments (#112 D1) — changelog-armed refuses a tree without it; do not delete it. The shape sentinel beside it declares the set's shape — grouped here, so every fragment carries ### headings (#182).