• v0.3.3 b75ac359a8

    Release v0.3.3
    Some checks failed
    manifest-check / manifest-vs-tag consistency (pull_request) Successful in 4s
    manifest-check / check (pull_request) Successful in 0s
    debug-event-payload / dump github.event JSON (pull_request) Successful in 1s
    release-draft / create Forgejo draft release (pull_request) Failing after 4s
    release-draft / draft (pull_request) Failing after 0s
    Stable

    quartermaster released this 2026-06-24 23:52:17 +02:00 | 1458 commits to main since this release

    v0.3.3 patch sprint — closes 2 v0.3.x candidates from the v0.3.2
    review cycle: #35 fragment-kind lint (warning-only authoring
    discipline that flags suspicious kind-vs-body-content mismatches at
    release-prep time) + #41 disposition (A) probe (temporary
    diagnostic workflow that logs github.event payload on
    pull_request.closed to root-cause the consumer-side empty-version
    issue exposed by the v0.3.1 inline-collapse fix's guard).

    Both items ship as kind=internal per the consumer-facing-surface
    test refined in v0.3.2: the discriminator is whether RELEASE OUTPUT
    changes, not whether any author-side behavior is observable. The
    lint emits stderr warnings to AUTHORS; the probe is temporary
    scaffolding that will be removed once #41's right-layer fix lands
    in v0.3.4. Neither changes the consumer-observable release artifact.

    Internal

    • scripts/lib/fragments.sh: new lint_fragment_kind + lint_fragments functions that flag suspicious kind-vs-body-content mismatches per the consumer-facing-surface test (docs/conventions.md). Two heuristics: (A) minor-bumping kind (added/changed/...) + docs-only body → warn "should this be .internal.md?"; (B) patch-bumping kind + new-capability body → warn "should this be .added.md?". Warning-only; never fails the cut. Author opt-out per fragment via <!-- lint-fragment-kind: ok --> body marker. Wired into release-prep.sh at bump-determination time. Same observability-not-author-discipline family as the #29 install-deps probe + the #16 empty-version ::error:: guard. See #35.

    • .forgejo/workflows/debug-event-payload.yml (consumer-side, temporary): diagnostic workflow firing on pull_request.closed events that logs the full github.event JSON + individual field evaluations (head.ref, head.label, merged, startsWith() test). Surfaces the data needed to root-cause #41 — why the consumer-side release-draft.yml line 28 expression evaluates to empty. This workflow will be REMOVED once #41's right-layer fix lands (tracked on the issue). Disposition (A) per Surveyor e455 framing: probe first, don't fix on hypothesis.

    Downloads