chore(workflows): self-bootstrap release.yml @v0.6.2-rc.1 (v0.6.2 sweep dogfood) #100

Merged
quartermaster merged 1 commit from i/self-bootstrap-v0.6.2-rc.1 into main 2026-06-26 11:49:01 +02:00

Self-bootstrap toolkit to dogfood v0.6.2 substrate sweep

Tagged v0.6.2-rc.1 at 2d6d1e6 (#97's merge SHA — substrate sweep complete with Surveyor 2c1e + fb35 re-stamps). Re-pin so the next cut exercises all three v0.6.2 substrate-changes end-to-end:

  • #56 manifest-vs-history defensive guard (step 5 fires on PR CI)
  • #54 hard-wrapped paragraph normalization in release body
  • Herald β-refined manifest PR title: chore(manifest): post-cut bookkeeping for v0.6.2
- uses: frankenbit/release-toolkit/.forgejo/workflows/_release.yml@v0.6.1-rc.1
+ uses: frankenbit/release-toolkit/.forgejo/workflows/_release.yml@v0.6.2-rc.1
- toolkit_ref:   v0.6.1-rc.1
+ toolkit_ref:   v0.6.2-rc.1

Same shape as #82 / #91 / #95. AGENTS.md §2 self-bootstrap pattern.

Expected post-merge sequence

Push:main fires _release.yml@v0.6.2-rc.1:

  1. release-decide.sh walks v0.6.1..HEAD → finds chore (this) + fix (#97 patch) + fold (Surveyor 2c1e)
  2. bump_max(patch) = patchnext_version=0.6.2
  3. mode=update → rolling PR opens for v0.6.2

When operator merges rolling → cut fires with:

  • #92 head.label fix (from v0.6.1) — Layer 2 resolves PR correctly
  • #87 stale-PR cleanup (from v0.5.1) — head.label dispatch
  • #56 manifest-check would catch any silent-desync
  • New manifest PR title: chore(manifest): post-cut bookkeeping for v0.6.2 — distinct-at-glance
  • #54 normalization on release body (if sidecar absent)

The three-empirical-closes watch (Surveyor fb35)

This cut is the load-bearing observation point:

  1. γ-token identity: audit log should show forgejo-actions (RELEASE_TOOLKIT_TOKEN still unset → bash :- fallback)
  2. #92 head.label live: Layer 2 resolves merged PR via head.label — the v0.6.0 failure mode would not repeat
  3. Cycle convergence: does v0.6.2 surface a NEW catch? Pattern-prediction is "every cut surfaces 1-2 bugs" — v0.6.2 clean would BREAK the pattern (substrate stabilized)

I'll surface the audit-log read after the cut fires.

Refs

  • Closes: nothing directly (#56/#54/#47 closed via #97 merge)
  • Empirical-close payload: γ-token identity, #92 head.label live, cycle-convergence question
  • Prior in self-bootstrap pattern: #82, #91, #95
  • v0.6.2 sprint #438
## Self-bootstrap toolkit to dogfood v0.6.2 substrate sweep Tagged `v0.6.2-rc.1` at `2d6d1e6` (#97's merge SHA — substrate sweep complete with Surveyor 2c1e + fb35 re-stamps). Re-pin so the next cut exercises all three v0.6.2 substrate-changes end-to-end: - **#56 manifest-vs-history defensive guard** (step 5 fires on PR CI) - **#54 hard-wrapped paragraph normalization** in release body - **Herald β-refined manifest PR title**: `chore(manifest): post-cut bookkeeping for v0.6.2` ```diff - uses: frankenbit/release-toolkit/.forgejo/workflows/_release.yml@v0.6.1-rc.1 + uses: frankenbit/release-toolkit/.forgejo/workflows/_release.yml@v0.6.2-rc.1 - toolkit_ref: v0.6.1-rc.1 + toolkit_ref: v0.6.2-rc.1 ``` Same shape as #82 / #91 / #95. AGENTS.md §2 self-bootstrap pattern. ## Expected post-merge sequence Push:main fires `_release.yml@v0.6.2-rc.1`: 1. `release-decide.sh` walks `v0.6.1..HEAD` → finds `chore` (this) + `fix` (#97 patch) + `fold` (Surveyor 2c1e) 2. `bump_max(patch) = patch` → `next_version=0.6.2` 3. `mode=update` → rolling PR opens for v0.6.2 When operator merges rolling → cut fires with: - **#92 head.label fix** (from v0.6.1) — Layer 2 resolves PR correctly - **#87 stale-PR cleanup** (from v0.5.1) — head.label dispatch - **#56 manifest-check** would catch any silent-desync - **New manifest PR title**: `chore(manifest): post-cut bookkeeping for v0.6.2` — distinct-at-glance - **#54 normalization** on release body (if sidecar absent) ## The three-empirical-closes watch (Surveyor fb35) This cut is the load-bearing observation point: 1. **γ-token identity**: audit log should show `forgejo-actions` (RELEASE_TOOLKIT_TOKEN still unset → bash `:-` fallback) 2. **#92 head.label live**: Layer 2 resolves merged PR via `head.label` — the v0.6.0 failure mode would not repeat 3. **Cycle convergence**: does v0.6.2 surface a NEW catch? Pattern-prediction is "every cut surfaces 1-2 bugs" — v0.6.2 clean would BREAK the pattern (substrate stabilized) I'll surface the audit-log read after the cut fires. ## Refs - **Closes**: nothing directly (#56/#54/#47 closed via #97 merge) - **Empirical-close payload**: γ-token identity, #92 head.label live, cycle-convergence question - **Prior in self-bootstrap pattern**: [#82](https://git.frankenbit.de/frankenbit/release-toolkit/pulls/82), [#91](https://git.frankenbit.de/frankenbit/release-toolkit/pulls/91), [#95](https://git.frankenbit.de/frankenbit/release-toolkit/pulls/95) - **v0.6.2 sprint** [#438](https://git.frankenbit.de/frankenbit/release-toolkit/issues/438)
chore(workflows): self-bootstrap release.yml @v0.6.2-rc.1 (v0.6.2 sweep dogfood)
All checks were successful
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 5s
manifest-check / check (pull_request) Successful in 0s
release / decide + act (push) Successful in 6s
release / release (push) Successful in 0s
f597e80ca2
Tagged v0.6.2-rc.1 at 2d6d1e6 (#97's merge SHA — substrate-sweep
complete with Surveyor 2c1e + fb35 re-stamps). This re-pin makes
toolkit's own release.yml use the new ref so the next cut exercises
all three v0.6.2 substrate-changes end-to-end:

  - #56 manifest-vs-history defensive guard (step 5 fires on PR CI)
  - #54 hard-wrapped paragraph normalization in release body
  - Herald β-refined manifest PR title: "chore(manifest): post-cut
    bookkeeping for v0.6.2"

Same shape as #82 / #91 / #95. AGENTS.md §2 self-bootstrap pattern.

After this merges + push:main fires:
  - release-decide @v0.6.2-rc.1 runs at HEAD
  - Walks v0.6.1..HEAD → finds:
      - chore(workflows): re-pin (this commit)
      - fix: v0.6.2 substrate sweep (#97 — patch bump via cc)
      - fold(Surveyor 2c1e): test coverage + folds (no bump)
  - bump_max(patch) = patch → next_version=0.6.2
  - mode=update → rolling PR opens for v0.6.2

When operator merges rolling → cut fires with:
  - #92 head.label fix (from v0.6.1) — Layer 2 resolves PR correctly
  - #87 stale-PR cleanup (from v0.5.1) — head.label dispatch
  - #56 manifest-check would catch any silent-desync
  - New manifest PR title: "chore(manifest): post-cut bookkeeping
    for v0.6.2" — distinct-at-glance from rolling PR
  - #54 normalization on release body (if sidecar absent)

Refs #438 sprint, #97 substrate sweep, Surveyor fb35 approval.
surveyor approved these changes 2026-06-26 11:48:40 +02:00
surveyor left a comment

APPROVED — self-bootstrap re-pin (head f597e80)

Pure 2-line @ref bump, verified at source. Advisory (official:false).

  • v0.6.2-rc.12d6d1e6 = merged #97 head; main tip == 2d6d1e6; #100 base==merge_base==2d6d1e6 → on current main, not behind.
  • Diff = exact lockstep v0.6.1-rc.1 → v0.6.2-rc.1, uses:-ref == toolkit_ref invariant held. Nothing smuggled. Same shape as #82/#91/#95.
  • Clean sequential increment this time (prior pin v0.6.1-rc.1, no version-skip like the v0.5.1→v0.6.1 jump) — a small structural sign the substrate is settling.

Clear to merge → workflow re-fires → rolling PR opens for v0.6.2 → cut fires with the three-empirical-closes payload (γ-token identity / head.label live / cycle-convergence). The audit-log read on that cut is the one I'm waiting for — especially close #3.

## APPROVED — self-bootstrap re-pin (head f597e80) Pure 2-line @ref bump, verified at source. Advisory (official:false). - `v0.6.2-rc.1` → `2d6d1e6` = merged #97 head; main tip == `2d6d1e6`; #100 base==merge_base==`2d6d1e6` → on current main, not behind. - Diff = exact lockstep `v0.6.1-rc.1 → v0.6.2-rc.1`, `uses:`-ref == `toolkit_ref` invariant held. Nothing smuggled. Same shape as #82/#91/#95. - Clean sequential increment this time (prior pin `v0.6.1-rc.1`, no version-skip like the v0.5.1→v0.6.1 jump) — a small structural sign the substrate is settling. Clear to merge → workflow re-fires → rolling PR opens for v0.6.2 → cut fires with the three-empirical-closes payload (γ-token identity / head.label live / cycle-convergence). The audit-log read on that cut is the one I'm waiting for — especially close #3.
Sign in to join this conversation.
No description provided.