Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jdx/usage
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.17.0
Choose a base ref
...
head repository: jdx/usage
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v2.17.4
Choose a head ref
  • 8 commits
  • 14 files changed
  • 4 contributors

Commits on Feb 18, 2026

  1. chore: replace gen-release-notes with communique (#504)

    ## Summary
    
    - Replaces the custom `tasks/gen-release-notes` bash script (which
    shelled out to the Claude Code CLI) with
    [communique](https://github.com/jdx/communique), a purpose-built Rust
    tool for AI-editorialized release notes
    - Adds `communique.toml` with project context and `emoji = false`
    default
    - Simplifies the `create-release` CI job: creates a draft release from
    CHANGELOG.md as a baseline, then enhances it via `communique generate
    --github-release` with `continue-on-error: true` so CHANGELOG.md content
    remains as fallback if communique fails
    
    ## Test plan
    
    - [ ] Verify `mise install` picks up communique
    - [ ] Test locally with `communique generate v2.16.2 --dry-run` to
    confirm it generates notes for a past release
    - [ ] Review workflow changes to confirm the fallback pattern is correct
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    <!-- CURSOR_SUMMARY -->
    ---
    
    > [!NOTE]
    > **Low Risk**
    > CI-only changes that affect release-note generation; failures should
    degrade to CHANGELOG-based notes due to the explicit fallback and
    `continue-on-error`.
    > 
    > **Overview**
    > Draft GitHub releases are now created from the latest `CHANGELOG.md`
    section and then optionally *enhanced* via `communique generate
    --github-release` (with `continue-on-error` so the CHANGELOG text
    remains the fallback).
    > 
    > This removes the custom `tasks/gen-release-notes` script and its
    dependency on installing/running the Claude Code CLI, adds
    `communique.toml` project context (with emojis disabled), and installs
    `communique` via `mise.toml`.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    83644f5. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    ---------
    
    Co-authored-by: Claude Sonnet 4.6 <[email protected]>
    Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
    3 people authored Feb 18, 2026
    Configuration menu
    Copy the full SHA
    79a5320 View commit details
    Browse the repository at this point in the history
  2. chore: release v2.17.1 (#505)

    ### 🔍 Other Changes
    
    - replace gen-release-notes with communique by
    [@jdx](https://github.com/jdx) in
    [#504](#504)
    mise-en-dev authored Feb 18, 2026
    Configuration menu
    Copy the full SHA
    e7c2717 View commit details
    Browse the repository at this point in the history
  3. fix(publish): anchor gh release create to GITHUB_SHA to avoid untagge…

    …d release (#506)
    
    ## Summary
    
    - The v2.17.1 release CI run failed because `gh release create --draft
    "v2.17.1"` created a release with tag `untagged-d8ea426c8964292e5b9a`
    instead of `v2.17.1`
    - `taiki-e/upload-rust-binary-action` could not find the release by tag
    name, failing all `build-and-publish` matrix jobs
    - Root cause: the new `communique`-based workflow calls `gh release
    create` almost immediately after checkout, whereas the old workflow had
    a ~60s `npm install -g @anthropic-ai/claude-code` step first. Without
    that delay, `gh` hits a race condition where GitHub's Releases API
    hasn't indexed the newly-pushed tag yet, so it falls back to creating an
    `untagged-*` draft
    
    ## Fix
    
    Add `--target "$GITHUB_SHA"` to `gh release create`. This anchors the
    release to the exact commit SHA from the workflow trigger, bypassing the
    GitHub Releases API's tag lookup entirely. The release is still
    associated with the tag name `v2.17.1` but doesn't depend on the API
    having indexed the tag yet.
    
    ## Test plan
    
    - [ ] Verify next release run creates a draft release with the correct
    tag (not `untagged-*`)
    - [ ] Confirm `taiki-e/upload-rust-binary-action` can find the release
    and upload binaries
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    <!-- CURSOR_SUMMARY -->
    ---
    
    > [!NOTE]
    > **Low Risk**
    > Small CI workflow change limited to release creation behavior; low
    risk aside from potentially changing which commit a tag’s release points
    to if the tag is mis-pushed.
    > 
    > **Overview**
    > Ensures the `publish-cli` workflow always creates draft GitHub
    releases for the exact commit that triggered the run by adding `--target
    "$GITHUB_SHA"` to `gh release create`.
    > 
    > This avoids occasional `untagged-*` draft releases (and downstream
    publish failures) when the tag hasn’t propagated/indexed yet at
    release-creation time.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    571ac7e. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    Co-authored-by: Claude Sonnet 4.6 <[email protected]>
    jdx and claude authored Feb 18, 2026
    Configuration menu
    Copy the full SHA
    e3243cc View commit details
    Browse the repository at this point in the history
  4. chore: release v2.17.2 (#507)

    ### 🐛 Bug Fixes
    
    - **(publish)** anchor gh release create to GITHUB_SHA to avoid untagged
    release by [@jdx](https://github.com/jdx) in
    [#506](#506)
    mise-en-dev authored Feb 18, 2026
    Configuration menu
    Copy the full SHA
    5539449 View commit details
    Browse the repository at this point in the history
  5. fix(publish): use gh api directly to create release with explicit tag…

    …_name (#508)
    
    ## Summary
    
    - Previous fix (#506) added `--target "$GITHUB_SHA"` to `gh release
    create`, but the releases are still created as `untagged-*`
    - Root cause (revised): something creates a GitHub release for the tag
    ~60 seconds before the `publish-cli` workflow starts (timestamps:
    v2.17.1 release at 12:36:44, workflow start at 12:37:44; v2.17.2 release
    at 13:07:56, workflow start at 13:08:47). When `gh release create
    "v2.17.x"` finds an existing release for that tag, it silently creates a
    new `untagged-*` draft as a fallback instead of failing
    - Fix: call `gh api repos/${{ github.repository }}/releases --method
    POST` directly with explicit `-f tag_name=` and `-f target_commitish=`
    fields. This bypasses the `gh release create` wrapper entirely and
    guarantees the `tag_name` is set correctly regardless of pre-existing
    releases
    
    ## Test plan
    
    - [ ] Verify next release creates a draft with `tag_name: v2.x.x` (not
    `untagged-*`) via `gh api repos/jdx/usage/releases --jq '.[0]'`
    - [ ] Confirm `taiki-e/upload-rust-binary-action` finds the release and
    uploads binaries successfully
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    <!-- CURSOR_SUMMARY -->
    ---
    
    > [!NOTE]
    > **Low Risk**
    > Small, workflow-only change affecting how GitHub releases are created;
    primary risk is misconfigured API parameters causing draft release
    creation to fail.
    > 
    > **Overview**
    > Fixes the `publish-cli` workflow’s draft release creation to avoid
    accidental `untagged-*` releases when a release already exists for a
    just-pushed tag.
    > 
    > Replaces `gh release create` with a direct `gh api POST
    /repos/{owner}/{repo}/releases`, explicitly setting `tag_name`,
    `target_commitish`, and the changelog-derived release body before
    continuing with the existing release-notes enhancement and publish
    steps.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    8ecbb58. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    Co-authored-by: Claude Sonnet 4.6 <[email protected]>
    jdx and claude authored Feb 18, 2026
    Configuration menu
    Copy the full SHA
    87335ff View commit details
    Browse the repository at this point in the history
  6. chore: release v2.17.3 (#509)

    ### 🐛 Bug Fixes
    
    - **(publish)** use gh api directly to create release with explicit
    tag_name by [@jdx](https://github.com/jdx) in
    [#508](#508)
    mise-en-dev authored Feb 18, 2026
    Configuration menu
    Copy the full SHA
    a18ba90 View commit details
    Browse the repository at this point in the history
  7. fix(publish): retry draft release creation until tag is indexed (#510)

    ## Summary
    
    - After migrating to communique, draft releases were getting
    `untagged-*` placeholder tag names because the workflow calls the API
    within ~5s of checkout, before GitHub has indexed the tag
    - The old workflow had ~90s of built-in delay (npm install + Claude CLI
    generation) that masked the race condition
    - Adds a retry loop that creates the draft, verifies `tag_name` matches,
    and deletes + retries (up to 30 attempts × 5s) if it got an `untagged-*`
    placeholder
    
    ## Test plan
    
    - [ ] Trigger a tag push and verify the draft release is created with
    the correct tag name
    - [ ] Verify `taiki-e/upload-rust-binary-action` finds the release
    successfully in build-and-publish jobs
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    <!-- CURSOR_SUMMARY -->
    ---
    
    > [!NOTE]
    > **Low Risk**
    > Workflow-only change that adds a bounded retry/delete loop to handle a
    GitHub indexing race; main risk is longer CI time or failure if the
    GitHub API behavior changes.
    > 
    > **Overview**
    > The `publish-cli` GitHub Actions workflow now retries draft release
    creation after a tag push, verifying the created release’s `tag_name`
    matches the pushed tag.
    > 
    > If GitHub returns an `untagged-*` placeholder, the workflow deletes
    the draft release, waits 5 seconds, and retries up to 30 times before
    failing with an explicit error.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    a40bd07. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    Co-authored-by: Claude Sonnet 4.6 <[email protected]>
    jdx and claude authored Feb 18, 2026
    Configuration menu
    Copy the full SHA
    1556927 View commit details
    Browse the repository at this point in the history
  8. chore: release v2.17.4 (#511)

    ### 🐛 Bug Fixes
    
    - **(publish)** retry draft release creation until tag is indexed by
    [@jdx](https://github.com/jdx) in
    [#510](#510)
    mise-en-dev authored Feb 18, 2026
    Configuration menu
    Copy the full SHA
    d562fb5 View commit details
    Browse the repository at this point in the history
Loading