Merge pull request #235 from dan-claude-bot/build/233-release-0-5-0
release: cut 0.5.0
This commit is contained in:
commit
ee75c2aba3
12 changed files with 101 additions and 42 deletions
2
.github/workflows/labels-sweep.yml
vendored
2
.github/workflows/labels-sweep.yml
vendored
|
|
@ -49,7 +49,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.4.1"
|
||||
CEREMONY_SELF_REF: "0.5.0"
|
||||
|
||||
jobs:
|
||||
reconcile:
|
||||
|
|
|
|||
2
.github/workflows/labels.yml
vendored
2
.github/workflows/labels.yml
vendored
|
|
@ -48,7 +48,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.4.1"
|
||||
CEREMONY_SELF_REF: "0.5.0"
|
||||
|
||||
jobs:
|
||||
scope:
|
||||
|
|
|
|||
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
|
|
@ -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.4.1"
|
||||
CEREMONY_SELF_REF: "0.5.0"
|
||||
VERSION_SOURCE: ${{ inputs.version-source }}
|
||||
|
||||
jobs:
|
||||
|
|
|
|||
38
CHANGELOG.md
38
CHANGELOG.md
|
|
@ -9,6 +9,44 @@ Entries arrive as fragments — one `changelog.d/<issue>.md` per PR, never
|
|||
an edit to this file — and the release PR assembles them into the next
|
||||
section here (`bin/changelog-assemble`, #112).
|
||||
|
||||
## 0.5.0 — 2026-08-03
|
||||
|
||||
### Added
|
||||
|
||||
- `labels.conf` accepts optional `panel[<login>]=` rows: the required set for
|
||||
a PR authored by that login is the row minus the author; other authors keep
|
||||
`panel=`. Consumers gain the row at their next pin bump — adding it before
|
||||
that bump is a parse failure that takes the label board down (#224).
|
||||
|
||||
### Changed
|
||||
|
||||
- Doctrine: third-party actions never hold a write-capable token by default —
|
||||
repo-owned scripts in write-capable jobs, established publisher plus
|
||||
full-SHA pin for the exception, SHA pins everywhere. Canonical in
|
||||
REVIEWER.md, short form in BUILDER.md; consumers adopt at the pin bump
|
||||
(#216).
|
||||
|
||||
### Fixed
|
||||
|
||||
- `ruling_escalation_row` selects the setter's best-shaped in-window comment,
|
||||
ties broken to the earliest, instead of the earliest outright — a whole-round
|
||||
reply landing seconds before the escalation is no longer graded in its place
|
||||
(crew#293).
|
||||
- The escalation selector and `ruling_shape_decision` share one field-presence
|
||||
matcher, and an undecodable body column scores 0 instead of erroring the
|
||||
sweep.
|
||||
- Five stale **unreleased** markers in `docs/CONSUMERS.md` now name their
|
||||
tags: fragment mode, `changelog-assembled` and `runner-isolated` at
|
||||
`0.2.0`; the additive labeler at `0.3.0`; the two-caller split at `0.4.1`
|
||||
(#221).
|
||||
- The marker convention now names its clearing owner: the release PR that
|
||||
ships machinery clears, in that same PR, every marker its assembled
|
||||
section makes false (#221).
|
||||
- A standing non-approving verdict now outranks draft in `decide_state`: a
|
||||
re-drafted PR mid-round reads `state:addressing`, a live panel request on a
|
||||
draft surfaces as `state:bots-reviewing`, and a draft with no round history
|
||||
still reads `state:building` (#205).
|
||||
|
||||
## 0.4.1 — 2026-08-01
|
||||
|
||||
### Changed
|
||||
|
|
|
|||
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
|||
0.4.2-dev
|
||||
0.5.0
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
### Fixed
|
||||
|
||||
- A standing non-approving verdict now outranks draft in `decide_state`: a
|
||||
re-drafted PR mid-round reads `state:addressing`, a live panel request on a
|
||||
draft surfaces as `state:bots-reviewing`, and a draft with no round history
|
||||
still reads `state:building` (#205).
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
### Changed
|
||||
|
||||
- Doctrine: third-party actions never hold a write-capable token by default —
|
||||
repo-owned scripts in write-capable jobs, established publisher plus
|
||||
full-SHA pin for the exception, SHA pins everywhere. Canonical in
|
||||
REVIEWER.md, short form in BUILDER.md; consumers adopt at the pin bump
|
||||
(#216).
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
### Fixed
|
||||
|
||||
- Five stale **unreleased** markers in `docs/CONSUMERS.md` now name their
|
||||
tags: fragment mode, `changelog-assembled` and `runner-isolated` at
|
||||
`0.2.0`; the additive labeler at `0.3.0`; the two-caller split at `0.4.1`
|
||||
(#221).
|
||||
- The marker convention now names its clearing owner: the release PR that
|
||||
ships machinery clears, in that same PR, every marker its assembled
|
||||
section makes false (#221).
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
### Added
|
||||
|
||||
- `labels.conf` accepts optional `panel[<login>]=` rows: the required set for
|
||||
a PR authored by that login is the row minus the author; other authors keep
|
||||
`panel=`. Consumers gain the row at their next pin bump — adding it before
|
||||
that bump is a parse failure that takes the label board down (#224).
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
### Fixed
|
||||
|
||||
- `ruling_escalation_row` selects the setter's best-shaped in-window comment,
|
||||
ties broken to the earliest, instead of the earliest outright — a whole-round
|
||||
reply landing seconds before the escalation is no longer graded in its place
|
||||
(crew#293).
|
||||
- The escalation selector and `ruling_shape_decision` share one field-presence
|
||||
matcher, and an undecodable body column scores 0 instead of erroring the
|
||||
sweep.
|
||||
|
|
@ -506,7 +506,7 @@ rows only; adding `triage-actors=` is a parse failure, not an ignored setting.
|
|||
Add it at the same pin bump as the `issues:` trigger — `0.2.0` or later —
|
||||
never before it and never through mixed refs.
|
||||
|
||||
The optional `panel[<login>]=` rows are **unreleased** (#224). A row names
|
||||
The optional `panel[<login>]=` rows are available at `0.5.0` and later (#224). A row names
|
||||
the effective panel for PRs authored by exactly that login — the reconciler
|
||||
computes that PR's required set from the row, minus the author as always —
|
||||
and every other author keeps the base `panel=`, which stays mandatory. The
|
||||
|
|
|
|||
58
drills/0.5.0.md
Normal file
58
drills/0.5.0.md
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
# 0.5.0 — drill record
|
||||
|
||||
Run 2026-08-03 by `dan-claude-bot` against the release PR (Refs #233),
|
||||
candidate branch `build/233-release-0-5-0` on `heavy-duty/ceremony` main at
|
||||
`0ac3a6f`.
|
||||
|
||||
## Scope ruling — doors unchanged, no disposable-repo rehearsal
|
||||
|
||||
The 0.4.0 drill (drills/0.4.0.md) probed both release doors end-to-end in a
|
||||
disposable repo; the live 0.4.0 and 0.4.1 releases then exercised the merge
|
||||
door for real, twice, within the last three days. Measured at `0ac3a6f`,
|
||||
stated as they are rather than as #233's D3 predicted them at `b18c0bc`:
|
||||
|
||||
- `git diff 0.4.1..main -- .github/workflows/release.yml` — **empty**. No
|
||||
door logic, no decide table, no publish step moved.
|
||||
- `git diff 0.4.1..main -- bin` — **empty**. No release tooling moved.
|
||||
- `git diff 0.4.1..main -- lib` — **not empty**: `lib/ruling.sh` +50/−13,
|
||||
#226's best-shaped escalation selection, merged this morning as PR #234.
|
||||
That is the labels-sweep library the reconcilers source; nothing in the
|
||||
release path reads it. The doors-unchanged ruling rests on the two empty
|
||||
surfaces above, not on a lib claim this tag can no longer make.
|
||||
|
||||
Re-running a full disposable-repo drill would rehearse machinery this repo
|
||||
proved in rehearsal at 0.4.0 and in production at both subsequent tags. This
|
||||
record rests on the standing evidence below and says so honestly. The panel
|
||||
reviews this claim like any other; if any reviewer rules a full drill owed,
|
||||
that verdict wins (#233 D3).
|
||||
|
||||
## Standing evidence at the candidate head
|
||||
|
||||
| # | probe | where | result |
|
||||
|---|---|---|---|
|
||||
| 1 | decide + merge-door step-replay (dogfood) | `release-exercise / step-replay (dogfood)` on this PR | CI-gating; green required to merge |
|
||||
| 2 | decide + merge-door step-replay (consumer) | `release-exercise / step-replay (consumer)` on this PR | CI-gating; green required to merge |
|
||||
| 3 | fragment chain: armed → assemble → monotonic | `release-exercise / fixture-chain` on this PR | CI-gating; green required to merge |
|
||||
| 4 | the real tree's own guards (armed, monotonic, drill-recorded, self-ref) | `self-guards` on this PR | CI-gating; green required to merge |
|
||||
| 5 | the 0.5.0 payload's one lib delta: #226's best-shaped selection | `test/ruling.test.sh` in the `test` job at this head, plus claude-bot's independent reproduction in the #234 review round | green — suite coverage, **not** live dogfood; see below |
|
||||
|
||||
Probe 5 makes no live-exercise claim, and the reason is stated so the next
|
||||
reader does not restore one: the post-merge sweeps (`30811983604`,
|
||||
`30812172095`, both at `0ac3a6f`) do run the candidate's `lib/ruling.sh` on
|
||||
the dogfood path, but every #226 call site sits inside `reconcile_ruling`,
|
||||
whose single caller is behind the `needs-ruling` flag check
|
||||
(`labels-reconcile.sh:865–866`), and this board has no `needs-ruling` item,
|
||||
standing or historical — so not one line of the delta this tag carries has
|
||||
executed live here. Its coverage at this candidate is `test/ruling.test.sh`
|
||||
(107 checks, including the crew#293 replay and the six regression proofs
|
||||
named in PR #234) and the #234 round's independent re-run of that proof.
|
||||
Per drills/README.md — the record is the evidence — and #135's defect
|
||||
class, a smaller true probe stands where a larger unobserved one would not.
|
||||
|
||||
## Deviations
|
||||
|
||||
No candidate-ref deviation arises: this record stages no scratch caller, so
|
||||
nothing needs to resolve `CEREMONY_SELF_REF: "0.5.0"` before the tag exists.
|
||||
The sibling adoption proof is post-tag and crew's: crew#298's pin bump, then
|
||||
its `panel[<login>]=` rows, then crew's first clean sweep — owned by that
|
||||
issue's criteria, reported back on #233 per its post-merge criterion.
|
||||
Loading…
Reference in a new issue