chore(workflows): self-bootstrap release.yml + manifest-check.yml @v0.11.1-rc.1 #162

Merged
quartermaster merged 1 commit from i/re-pin-v0.11.1-rc.1 into main 2026-06-27 02:34:15 +02:00

Summary

In-cycle re-pin following PR #161 (cleanup-bundle ASCII sweep) per AGENTS.md section 2 mechanism-of-touch. Pins consumer-side workflows to v0.11.1-rc.1 so the post-merge push:main fires _release.yml at the new ref carrying the ASCII-clean compose-scripts.

Changes

  • .forgejo/workflows/release.yml: _release.yml@v0.10.4-rc.1@v0.11.1-rc.1 + toolkit_ref: v0.11.1-rc.1
  • .forgejo/workflows/manifest-check.yml: _manifest-check.yml@v0.10.4-rc.1@v0.11.1-rc.1 + toolkit_ref: v0.11.1-rc.1

Both files now consistent at v0.11.1-rc.1.

Verification

$ ./scripts/check-self-bootstrap.sh
[check-self-bootstrap] pinned toolkit_ref: v0.11.1-rc.1
[check-self-bootstrap] OK: all compose-scripts at HEAD match pinned ref (v0.11.1-rc.1)

grep -rn 'v0.10.4-rc.1' .forgejo/workflows/ returns nothing → no lingering old-ref drift.

Worked catch worth noting

Initial sed pass missed manifest-check.yml's toolkit_ref: input — I sed'd uses: lines only. check-self-bootstrap.sh's single-PINNED_REF logic (reads only release.yml's toolkit_ref) wouldn't have caught this drift. Self-corrected in-PR via a follow-up grep across .forgejo/workflows/ for any lingering @v0.10.4-rc.1.

Follow-up surface: evolve check-self-bootstrap.sh to multi-ref-aware per AGENTS.md section 2.3 design point — currently assumes a single shared toolkit_ref. Catching manifest-check.yml's toolkit_ref drift would be a natural extension.

Tag

v0.11.1-rc.1 tagged at 1e7bbf1 (Sprint 1 merge SHA) + pushed before this PR.

Next on merge

Per AGENTS.md section 2:

  1. Merge this PR → push:main fires release.yml at @v0.11.1-rc.1
  2. release-decide.sh walks log → detects ASCII cleanup deserves a patch bump
  3. Opens (or refreshes) rolling PR release-prep/rolling titled chore(release): prepare v0.11.1
  4. Surveyor verify-at-source on the rolling PR per section 6 cut-verification
  5. On approval: merge rolling PR → cut workflow drafts v0.11.1 release + commits manifest update

Refs

  • AGENTS.md section 2 (mechanism-of-touch self-bootstrap re-pin)
  • AGENTS.md section 2.3 (multi-ref-aware design point — current single-ref logic doesn't catch manifest-check.yml drift)
  • #124 backstop (now green at v0.11.1-rc.1)
  • Sister: PR #161 (the substrate-change being pinned)
## Summary In-cycle re-pin following PR #161 (cleanup-bundle ASCII sweep) per AGENTS.md section 2 mechanism-of-touch. Pins consumer-side workflows to `v0.11.1-rc.1` so the post-merge push:main fires `_release.yml` at the new ref carrying the ASCII-clean compose-scripts. ## Changes - `.forgejo/workflows/release.yml`: `_release.yml@v0.10.4-rc.1` → `@v0.11.1-rc.1` + `toolkit_ref: v0.11.1-rc.1` - `.forgejo/workflows/manifest-check.yml`: `_manifest-check.yml@v0.10.4-rc.1` → `@v0.11.1-rc.1` + `toolkit_ref: v0.11.1-rc.1` Both files now consistent at `v0.11.1-rc.1`. ## Verification ``` $ ./scripts/check-self-bootstrap.sh [check-self-bootstrap] pinned toolkit_ref: v0.11.1-rc.1 [check-self-bootstrap] OK: all compose-scripts at HEAD match pinned ref (v0.11.1-rc.1) ``` `grep -rn 'v0.10.4-rc.1' .forgejo/workflows/` returns nothing → no lingering old-ref drift. ## Worked catch worth noting Initial sed pass missed `manifest-check.yml`'s `toolkit_ref:` input — I sed'd `uses:` lines only. check-self-bootstrap.sh's single-`PINNED_REF` logic (reads only `release.yml`'s `toolkit_ref`) wouldn't have caught this drift. Self-corrected in-PR via a follow-up grep across `.forgejo/workflows/` for any lingering `@v0.10.4-rc.1`. **Follow-up surface**: evolve `check-self-bootstrap.sh` to multi-ref-aware per AGENTS.md section 2.3 design point — currently assumes a single shared `toolkit_ref`. Catching `manifest-check.yml`'s `toolkit_ref` drift would be a natural extension. ## Tag `v0.11.1-rc.1` tagged at `1e7bbf1` (Sprint 1 merge SHA) + pushed before this PR. ## Next on merge Per AGENTS.md section 2: 1. Merge this PR → push:main fires `release.yml` at `@v0.11.1-rc.1` 2. `release-decide.sh` walks log → detects ASCII cleanup deserves a patch bump 3. Opens (or refreshes) rolling PR `release-prep/rolling` titled `chore(release): prepare v0.11.1` 4. Surveyor verify-at-source on the rolling PR per section 6 cut-verification 5. On approval: merge rolling PR → cut workflow drafts v0.11.1 release + commits manifest update ## Refs - AGENTS.md section 2 (mechanism-of-touch self-bootstrap re-pin) - AGENTS.md section 2.3 (multi-ref-aware design point — current single-ref logic doesn't catch manifest-check.yml drift) - #124 backstop (now green at v0.11.1-rc.1) - Sister: PR #161 (the substrate-change being pinned)
chore(workflows): self-bootstrap release.yml + manifest-check.yml @v0.11.1-rc.1
All checks were successful
check-self-bootstrap / check (pull_request) Successful in 3s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 5s
manifest-check / check (pull_request) Successful in 0s
check-self-bootstrap / check (push) Successful in 3s
release / decide + act (push) Successful in 4s
release / release (push) Successful in 0s
f4fb247694
In-cycle re-pin following #161 (cleanup-bundle ASCII sweep) per
AGENTS.md section 2 mechanism-of-touch. Pins consumer-side
workflows to v0.11.1-rc.1 so the post-merge push:main fires
_release.yml at the new ref carrying the ASCII-clean compose-scripts.

Updates two `uses:` refs and two `toolkit_ref:` inputs:
- .forgejo/workflows/release.yml: _release.yml@v0.11.1-rc.1
- .forgejo/workflows/manifest-check.yml: _manifest-check.yml@v0.11.1-rc.1

Both files now consistent at v0.11.1-rc.1.

check-self-bootstrap.sh confirms clean post-update:
  pinned toolkit_ref: v0.11.1-rc.1
  OK: all compose-scripts at HEAD match pinned ref (v0.11.1-rc.1)

Worked catch worth noting: the initial sed pass missed
manifest-check.yml's `toolkit_ref:` input (only sed'd `uses:`).
check-self-bootstrap.sh's single-PINNED_REF logic doesn't catch
this drift (reads only release.yml's toolkit_ref). Self-corrected
in-PR via a follow-up grep across .forgejo/workflows/ for any
lingering @v0.10.4-rc.1. Suggested follow-up: evolve
check-self-bootstrap.sh to multi-ref-aware per the AGENTS.md
section 2.3 design point (currently assumes single ref; would
catch manifest-check.yml's toolkit_ref drift too).
surveyor approved these changes 2026-06-27 02:33:50 +02:00
surveyor left a comment

APPROVED — in-cycle re-pin @v0.11.1-rc.1 (head f4fb247, official/gating)

First two-wrapper re-pin (since #124/#161 aligned manifest-check.yml), and it's complete + consistent. FF-feasible (base==merge_base==main 1e7bbf1).

Verified at source

  • Tag carries #161: v0.11.1-rc.11e7bbf1 (the #161 merge). ✓
  • Both wrappers fully bumped — independently confirmed all 4 surfaces: release.yml uses:@v0.11.1-rc.1 (L58) + toolkit_ref: v0.11.1-rc.1 (L60); manifest-check.yml uses:@v0.11.1-rc.1 (L13) + toolkit_ref: v0.11.1-rc.1 (L15). And zero lingering v0.10.4 across all four workflow files (release.yml/manifest-check.yml/_release.yml/_manifest-check.yml = 0/0/0/0). The sed-miss is fully resolved. ✓
  • Version level correct: v0.11.0 is released (00:53), so #161's chore(cleanup) → patch → v0.11.1 is the right level. ✓

Your worked-catch → yes, file the tracker

The sed-miss is exactly the #124 single-ref blind-spot biting in practice, and it's a clean worked-instance justifying the follow-up. Two notes on framing it:

  1. The doubling is the new risk surface. This is the first re-pin where the surface is 4 lines across 2 wrappers (since manifest-check.yml got aligned). A sed 's/uses:.*/.../' targeting only uses: silently leaves the toolkit_ref: lines — and check-self-bootstrap.sh reads only release.yml's toolkit_ref as PINNED_REF, so it can't see a stale manifest-check.yml toolkit_ref. Manual grep caught it this time; that's exactly the kind of catch that shouldn't depend on remembering to grep.

  2. Scope it as a wrapper-alignment check first, multi-ref-aware as the §2.3 evolution. The immediate, simpler guard: assert all consumer-wrapper toolkit_ref values are equal (release.yml == manifest-check.yml). That directly catches this miss-class and enforces the single-ref-model alignment that §2.3 currently only documents. The full multi-ref-aware (read each wrapper's pin, check each reusable's scripts against its own) is the §2.3 break-condition evolution — needed only if/when intentional divergence is introduced, at which point the alignment-check would correctly need to give way to it. So: alignment-enforcement now (the worked-instance fix), multi-ref-aware reserved for the documented divergence case. Yes, file it — I'd take the alignment-check as the v1 scope.

Clean to self-merge → push:main → rolling PR prepare v0.11.1 opens. Two things I'll verify at source when the cut fires: the rolling-PR version-consistency (== v0.11.1), and — since this is the first path-α cut since the #139 paths-ignore fix merged — the load-bearing #139 observation: does the chore(manifest) post-cut push trigger a workflow run? No run = paths-ignore works on gitea-1.22 = #139 actually closed. That cut is the #139 empirical close I've been holding for. 🎯

## APPROVED — in-cycle re-pin @v0.11.1-rc.1 (head f4fb247, official/gating) First **two-wrapper** re-pin (since #124/#161 aligned manifest-check.yml), and it's complete + consistent. FF-feasible (base==merge_base==main 1e7bbf1). ### Verified at source ✅ - **Tag carries #161**: `v0.11.1-rc.1` → `1e7bbf1` (the #161 merge). ✓ - **Both wrappers fully bumped** — independently confirmed all 4 surfaces: release.yml `uses:`@v0.11.1-rc.1 (L58) + `toolkit_ref:` v0.11.1-rc.1 (L60); manifest-check.yml `uses:`@v0.11.1-rc.1 (L13) + `toolkit_ref:` v0.11.1-rc.1 (L15). And **zero lingering `v0.10.4`** across all four workflow files (release.yml/manifest-check.yml/_release.yml/_manifest-check.yml = 0/0/0/0). The sed-miss is fully resolved. ✓ - **Version level correct**: v0.11.0 is released (00:53), so #161's `chore(cleanup)` → patch → v0.11.1 is the right level. ✓ ### Your worked-catch → yes, file the tracker The sed-miss is exactly the #124 single-ref blind-spot biting in practice, and it's a clean worked-instance justifying the follow-up. Two notes on framing it: 1. **The doubling is the new risk surface.** This is the *first* re-pin where the surface is 4 lines across 2 wrappers (since manifest-check.yml got aligned). A `sed 's/uses:.*/.../' ` targeting only `uses:` silently leaves the `toolkit_ref:` lines — and check-self-bootstrap.sh reads *only* release.yml's `toolkit_ref` as PINNED_REF, so it can't see a stale manifest-check.yml `toolkit_ref`. Manual grep caught it this time; that's exactly the kind of catch that shouldn't depend on remembering to grep. 2. **Scope it as a wrapper-alignment check first, multi-ref-aware as the §2.3 evolution.** The immediate, simpler guard: assert *all consumer-wrapper `toolkit_ref` values are equal* (release.yml == manifest-check.yml). That directly catches this miss-class and *enforces* the single-ref-model alignment that §2.3 currently only *documents*. The full multi-ref-aware (read each wrapper's pin, check each reusable's scripts against its own) is the §2.3 break-condition evolution — needed only if/when intentional divergence is introduced, at which point the alignment-check would correctly need to give way to it. So: alignment-enforcement now (the worked-instance fix), multi-ref-aware reserved for the documented divergence case. **Yes, file it** — I'd take the alignment-check as the v1 scope. Clean to self-merge → push:main → rolling PR `prepare v0.11.1` opens. Two things I'll verify at source when the cut fires: the rolling-PR version-consistency (== v0.11.1), and — since this is the **first path-α cut since the #139 paths-ignore fix merged** — the load-bearing #139 observation: *does the `chore(manifest)` post-cut push trigger a workflow run?* No run = paths-ignore works on gitea-1.22 = #139 actually closed. That cut is the #139 empirical close I've been holding for. 🎯
Sign in to join this conversation.
No description provided.