Skip to content

v0.26.0

Choose a tag to compare

@github-actions github-actions released this 10 Jun 11:57
· 72 commits to main since this release
Immutable release. Only release title and notes can be modified.
v0.26.0
0fe6ae6

[0.26.0] - 2026-06-10

🚀 Features

  • (app) Propagate remote_metadata policy + report cliff degrade - (a465871) by @bchatard

    withEnvDerivations now carries the top-level remote_metadata policy onto the
    changelog/release-notes drivers so the pipeline generators honour it. CheckCliff
    gains the policy (applied to a driver copy, never mutating the caller's) and
    returns whether it degraded to --offline; heraut check surfaces that in the
    cliff detail line (valid → valid (offline — remote metadata unavailable)).
    Part of T78.

    Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com

  • (cmd) Add --offline flag forcing remote_metadata: disabled - (2dffbe0) by @bchatard

    Persistent --offline flag overrides the configured remote_metadata policy to
    disabled for a single run (no remote PR/MR metadata API calls). Wired into
    release, changelog, and the check / check cliff commands via applyOfflineOverride
    after config load. Part of T78.

    Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com

  • (config) Add remote_metadata policy field + validation - (b9a467c) by @bchatard

    Top-level remote_metadata governs whether content generators fetch PR/MR
    metadata (author handle, PR number) from the platform API to enrich
    changelog/release-notes: required | optional | disabled, empty resolving to
    optional. Enum-validated. A programmatic ContentDriver.RemoteMetadata field
    carries the effective policy onto each driver for the generator to honour
    (set by the app layer, mirroring HeadingVersionPattern). Part of T78.

    Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com

  • (config) Add remote_metadata to schema.json + sample + fixtures - (7aa259f) by @bchatard

    Expose the remote_metadata enum (required | optional | disabled, default
    optional) in schema.json for IDE validation, document it in docs/heraut.sample.yml,
    and add valid + invalid schema fixtures (the invalid one asserts the enum is
    enforced). Keeps the schema/sample/field in sync per the config rules. Part of T78.

    Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com

  • (generators/gitcliff) Honor remote_metadata policy via --offline - (e14c020) by @bchatard

    git-cliff fetches PR metadata (and panics on failure) whenever the templates
    reference commit.remote.*. Route Generate and CheckCliff through a policy-aware
    runCliff: 'disabled' always passes --offline; 'required' never does (a remote
    failure stays fatal); 'optional' (default) tries online then retries with
    --offline on any failure, exposing Degraded() so callers can warn. If the
    offline retry also fails the original online error surfaces, so a genuine
    config error still bubbles up. Part of T78.

    Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com

  • (pipeline) Surface remote-metadata degrade as a step sub-result - (7c682e1) by @bchatard

    When a generator falls back to --offline because the remote metadata fetch
    failed (remote_metadata: optional), the changelog/release-notes step now carries
    a 'remote metadata unavailable — PR authors/numbers omitted' sub-result, so the
    omission is visible during release/changelog runs. Generators report it via an
    optional Degraded() interface the pipeline type-asserts, keeping the pipeline
    decoupled from the concrete generator. Part of T78.

    Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com

📚 Documentation

  • (adr) Add ADR-0023 remote-metadata policy; complete roadmap T78 - (fb22f0a) by @bchatard

    Record the remote_metadata decision (top-level tri-state, default optional,
    backed by git-cliff --offline, retry-on-failure for optional, --offline flag) and
    its reconciliation with ADR-0022. Index it in the ADR README and flip T78 to done
    with a completion note.

    Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com

  • (adr) Record why the CLI override is boolean --offline (ADR-0023) - (e93cb06) by @bchatard

    Capture the decision to keep --offline as a boolean escape hatch rather than a
    --remote-metadata mirror of the config key (git-cliff precedent + heraut's
    runtime-flag convention + YAGNI), so it is not re-litigated later.

    Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com

  • (roadmap) Add T78 — remote_metadata policy for git-cliff enrichment - (9680617) by @bchatard

    Captures the durable opt-out for git-cliff's remote-metadata fetch: a
    top-level tri-state policy (required | optional | disabled, default optional)
    governing both changelog and release-notes generation, backed by git-cliff's
    --offline flag. The optional default degrades + warns on fetch failure, fixing
    the tokenless-panic residual out of the box. Follows the ci: GITHUB_TOKEN patch
    that authenticates the fetch in CI.

    Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com

⚙️ Miscellaneous Tasks

  • Authenticate git-cliff GitHub API calls in release workflow - (cc8f128) by @bchatard

    heraut's changelog/release-notes generation shells out to git-cliff, which
    fetches PR metadata from the GitHub API to populate commit.remote.username and
    commit.remote.pr_number. git-cliff reads GITHUB_TOKEN, not GH_TOKEN (which only
    gh/glab consume), so the Preflight and Release steps were calling the API
    unauthenticated — hitting GitHub's 60/hr shared-IP rate limit and panicking with
    a 403 (exit 101). Export GITHUB_TOKEN to both steps so the calls authenticate
    against the 1000/hr limit.

    Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com

Commit Statistics

  • 10 commit(s) contributed to the release.
  • 0 day(s) passed between the first and last commit.
  • 10 commit(s) parsed as conventional.
  • 0 linked issue(s) detected in commits.