From 03cb69debaccc11ba3aa860af7f0f979cd110e4d Mon Sep 17 00:00:00 2001 From: claude-lead-andresmgsl Date: Wed, 26 Aug 2026 13:40:12 +0000 Subject: [PATCH 1/2] release: stamp forge 0.6.3 refs and version --- .github/workflows/labels-sweep.yml | 2 +- .github/workflows/labels.yml | 2 +- .github/workflows/release.yml | 2 +- CHANGELOG.md | 17 +++++++++++++++++ VERSION | 2 +- changelog.d/234.md | 3 --- changelog.d/240.md | 3 --- changelog.d/241.md | 3 --- changelog.d/243.md | 3 --- changelog.d/247.md | 3 --- changelog.d/251.md | 3 --- changelog.d/253.md | 3 --- changelog.d/263.md | 3 --- changelog.d/265.md | 3 --- 14 files changed, 21 insertions(+), 31 deletions(-) delete mode 100644 changelog.d/234.md delete mode 100644 changelog.d/240.md delete mode 100644 changelog.d/241.md delete mode 100644 changelog.d/243.md delete mode 100644 changelog.d/247.md delete mode 100644 changelog.d/251.md delete mode 100644 changelog.d/253.md delete mode 100644 changelog.d/263.md delete mode 100644 changelog.d/265.md diff --git a/.github/workflows/labels-sweep.yml b/.github/workflows/labels-sweep.yml index 0546978..edd4f07 100644 --- a/.github/workflows/labels-sweep.yml +++ b/.github/workflows/labels-sweep.yml @@ -66,7 +66,7 @@ on: env: # A called workflow arrives without its repository. Keep this literal pin # aligned with the ceremony release consumed by callers (issue #9 D3). - CEREMONY_SELF_REF: "0.6.2" + CEREMONY_SELF_REF: "0.6.3" jobs: reconcile: diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 007f1a8..2e37808 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -56,7 +56,7 @@ on: env: # A called workflow arrives without its repository. Keep this literal pin # aligned with the ceremony release consumed by callers (issue #9 D3). - CEREMONY_SELF_REF: "0.6.2" + CEREMONY_SELF_REF: "0.6.3" jobs: scope: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 81fea7a..5e76b24 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -129,7 +129,7 @@ env: # `ref:` accepts ${{ env }}; `uses:` strings do not — which is why the # shared logic arrives as script files via checkout, not as inner `uses:` # references. - CEREMONY_SELF_REF: "0.6.2" + CEREMONY_SELF_REF: "0.6.3" VERSION_SOURCE: ${{ inputs.version-source }} jobs: diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d10241..4346517 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,23 @@ were adopted by port rather than merge. Upstream's separate `0.4.1` section is deliberately not carried — the tag published here is the one this section is the body of. Each sync updates this line (docs/UPSTREAM-SYNC.md, #200). +## 0.6.3 — 2026-08-26 + +### Changed + +- The shipped 0.6.2 changelog section now carries #238's entry, which its release PR's merge base could not see; the published 0.6.2 release body is left as tagged, so tree and publication differ by that one line (#238, #231). +- Replace the unavailable intake rule with a proposal form that triage converts into work or refuses with reasons (#247). + +### Fixed + +- The `needs-triage` label now directs untriaged issues toward work normalization or a reasoned refusal instead of an unavailable discussion path (#265). +- Release checks now refuse a target-head fragment that the candidate did not consume, preventing late merges from misattributing shipped changes (#253). +- Kept drill doctrine's release-path instructions aligned with the executable manifest by removing its duplicate path list (#251). +- Preserve Forgejo workflow names in status rollups so the label reconciler excludes only its own checks. (#243). +- Fork-headed label runs stay green without attempting forbidden writes, while same-repository heads keep instant scope and reconciliation wakes (#241). +- Read Forgejo timelines to exhaustion so busy issues retain their newest label events despite dishonest total-count headers (#240). +- Refs-based issue-flow transitions now bind each declaration to its immediately following reference token, so later issue prose cannot release or preserve unrelated claims (#234). + ## 0.6.2 — 2026-08-24 ### Changed diff --git a/VERSION b/VERSION index fe50cf9..844f6a9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.6.3-dev +0.6.3 diff --git a/changelog.d/234.md b/changelog.d/234.md deleted file mode 100644 index bbc2ed5..0000000 --- a/changelog.d/234.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed - -- Refs-based issue-flow transitions now bind each declaration to its immediately following reference token, so later issue prose cannot release or preserve unrelated claims (#234). diff --git a/changelog.d/240.md b/changelog.d/240.md deleted file mode 100644 index 3b2f6f3..0000000 --- a/changelog.d/240.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed - -- Read Forgejo timelines to exhaustion so busy issues retain their newest label events despite dishonest total-count headers (#240). diff --git a/changelog.d/241.md b/changelog.d/241.md deleted file mode 100644 index fb68d29..0000000 --- a/changelog.d/241.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed - -- Fork-headed label runs stay green without attempting forbidden writes, while same-repository heads keep instant scope and reconciliation wakes (#241). diff --git a/changelog.d/243.md b/changelog.d/243.md deleted file mode 100644 index 82dd6a5..0000000 --- a/changelog.d/243.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed - -- Preserve Forgejo workflow names in status rollups so the label reconciler excludes only its own checks. (#243). diff --git a/changelog.d/247.md b/changelog.d/247.md deleted file mode 100644 index 77e3d1b..0000000 --- a/changelog.d/247.md +++ /dev/null @@ -1,3 +0,0 @@ -### Changed - -- Replace the unavailable intake rule with a proposal form that triage converts into work or refuses with reasons (#247). diff --git a/changelog.d/251.md b/changelog.d/251.md deleted file mode 100644 index eef754f..0000000 --- a/changelog.d/251.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed - -- Kept drill doctrine's release-path instructions aligned with the executable manifest by removing its duplicate path list (#251). diff --git a/changelog.d/253.md b/changelog.d/253.md deleted file mode 100644 index a465493..0000000 --- a/changelog.d/253.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed - -- Release checks now refuse a target-head fragment that the candidate did not consume, preventing late merges from misattributing shipped changes (#253). diff --git a/changelog.d/263.md b/changelog.d/263.md deleted file mode 100644 index 5bf6623..0000000 --- a/changelog.d/263.md +++ /dev/null @@ -1,3 +0,0 @@ -### Changed - -- The shipped 0.6.2 changelog section now carries #238's entry, which its release PR's merge base could not see; the published 0.6.2 release body is left as tagged, so tree and publication differ by that one line (#238, #231). diff --git a/changelog.d/265.md b/changelog.d/265.md deleted file mode 100644 index 73c7b2c..0000000 --- a/changelog.d/265.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed - -- The `needs-triage` label now directs untriaged issues toward work normalization or a reasoned refusal instead of an unavailable discussion path (#265). From 12a7fcb6880a4531bc76ef5decb42d467d1c407c Mon Sep 17 00:00:00 2001 From: claude-lead-andresmgsl Date: Wed, 26 Aug 2026 13:40:37 +0000 Subject: [PATCH 2/2] docs: record the 0.6.3 doors-unchanged drill ruling --- drills/0.6.3.md | 74 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 drills/0.6.3.md diff --git a/drills/0.6.3.md b/drills/0.6.3.md new file mode 100644 index 0000000..ad13e22 --- /dev/null +++ b/drills/0.6.3.md @@ -0,0 +1,74 @@ +# 0.6.3 — drill record + +Measured 2026-08-26 on the `release-0.6.3` candidate branch, canonical +candidate SHA `03cb69d`. All three measurements below were taken at that head, +not copied from an earlier record. + +## Scope ruling — doors unchanged, no disposable-repo rehearsal + +**The last rehearsed tag is `0.6.1`, not `0.6.2`.** `drills/0.6.2.md` is itself +a doors-unchanged assertion, and `drills/README.md` anchors the baseline to the +last *rehearsed* tag precisely so one such assertion cannot chain from another +while the doors drift a small diff at a time. The baseline used here is +therefore `0.6.1`, which widens the measured window rather than narrowing it. + +All three conditions hold at the candidate head: + +1. `git diff 0.6.1..HEAD -- $(sh .github/scripts/release-path.sh)` changes only + the `CEREMONY_SELF_REF` pin line in `.github/workflows/release.yml`, from + `0.6.1` to `0.6.3`: + + ```diff + @@ -129,7 +129,7 @@ env: + - CEREMONY_SELF_REF: "0.6.1" + + CEREMONY_SELF_REF: "0.6.3" + ``` + + No release-door logic, decision table, fact gathering, version handling, + changelog handling, forge adapter or publish step changed across two + releases. The measured diff is one line. + +2. The measured release path is exactly the output of + `.github/scripts/release-path.sh` at this head: + + ```text + .github/workflows/release.yml + bin/ + lib/version.sh + lib/decide.sh + lib/facts.sh + lib/changelog.sh + lib/forge.sh + ``` + +3. `drills/0.6.1.md` records a **full rehearsal** — run 2026-08-09 by + `codex-reviewer-andresmgsl` against release PR !226 — its release is + published, and `main` was re-armed to `0.6.2-dev` after it by + `5693bee chore: bump main to 0.6.2-dev`. + +## What this release contains + +Nine fragments consumed into `## 0.6.3`: #234, #240, #241, #243, #247, #251, +#253, #263, #265. None of them touches the release path; the list is +board-flow, labels-reconcile, docs and forge-adapter work. + +## What is NOT asserted + +This record asserts only that a fresh disposable-repo rehearsal would execute +the same release-door bytes as `0.6.1`'s did. It does not assert that the +doors were re-exercised, and it is not a substitute for the rehearsal owed at +the next release-path change. Per `drills/README.md`, the release PR's panel +verifies this claim like any other evidence, and **if any reviewer rules a full +drill owed, that verdict wins.** + +## Note on 0.6.2's red `self-guards` + +Recorded here because the next reader of `drills/` will see it. The `0.6.2` +tag's commit `5a8fce83` is red on `CI / self-guards` — `changelog-armed` +correctly refused a tree in which `changelog.d/238.md` was still unconsumed, +because that fragment landed on `main` after `changelog-assemble 0.6.2` had +already run in the release branch. The content shipped correct (the #238 entry +is in the published `0.6.2` notes) and the strand was consumed on `main` by +`f221647`. The systemic guard against the race landed in !255, *"refuse release +PRs that strand target fragments"*, which is why this candidate was checked +against it before opening.