From beec0789ed9381f67267e5bf86fede9342d5f3af Mon Sep 17 00:00:00 2001 From: chopratejas Date: Mon, 27 Apr 2026 19:44:39 -0700 Subject: [PATCH] fix(ci): pin dtolnay/rust-toolchain to 1.95.0 to match rust-toolchain.toml The action was set to @stable, which installs whatever the latest stable is (1.95.0 right now). Then maturin invokes cargo, which reads rust-toolchain.toml and re-resolves to "1.95.0 + clippy + rustfmt". rustup treats stable and 1.95.0 as distinct toolchain identities and refuses the second install with: failed to install component 'clippy-preview-x86_64-unknown-linux-gnu', detected conflict: 'bin/cargo-clippy' This was intermittent across the matrix (only test (3.10) tripped on the most recent run; others got lucky on cache state). Pinning the action ref to 1.95.0 makes both sides ask for the exact same toolchain identity, so the second install is a no-op and the conflict can't fire. Bump procedure stays the same: when rust-toolchain.toml's channel changes, update these refs in lock-step. Plugin manifests auto-bumped 0.11.0 -> 0.13.2 by sync-plugin-versions hook (unrelated to the workflow fix). --- .claude-plugin/marketplace.json | 4 ++-- .github/plugin/marketplace.json | 4 ++-- .github/workflows/ci.yml | 4 ++-- .github/workflows/eval.yml | 2 +- .github/workflows/rust.yml | 6 +++--- plugins/headroom-agent-hooks/.claude-plugin/plugin.json | 2 +- plugins/headroom-agent-hooks/.github/plugin/plugin.json | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 78381697b..79917feb7 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -5,14 +5,14 @@ }, "metadata": { "description": "Headroom marketplace for Claude Code and GitHub Copilot CLI plugins.", - "version": "0.11.0" + "version": "0.13.2" }, "plugins": [ { "name": "headroom", "source": "./plugins/headroom-agent-hooks", "description": "Headroom startup hooks for Claude Code and GitHub Copilot CLI.", - "version": "0.11.0", + "version": "0.13.2", "author": { "name": "Headroom Contributors", "url": "https://github.com/chopratejas/headroom" diff --git a/.github/plugin/marketplace.json b/.github/plugin/marketplace.json index 78381697b..79917feb7 100644 --- a/.github/plugin/marketplace.json +++ b/.github/plugin/marketplace.json @@ -5,14 +5,14 @@ }, "metadata": { "description": "Headroom marketplace for Claude Code and GitHub Copilot CLI plugins.", - "version": "0.11.0" + "version": "0.13.2" }, "plugins": [ { "name": "headroom", "source": "./plugins/headroom-agent-hooks", "description": "Headroom startup hooks for Claude Code and GitHub Copilot CLI.", - "version": "0.11.0", + "version": "0.13.2", "author": { "name": "Headroom Contributors", "url": "https://github.com/chopratejas/headroom" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 63a48bd40..71776cef5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: # below runs `maturin develop` and symlinks the built `.so` into the # in-tree `headroom/` package so the editable install resolves it. - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@1.95.0 - name: Cache cargo registry + build uses: Swatinem/rust-cache@v2 @@ -130,7 +130,7 @@ jobs: # the editable install resolves it (same pattern as the main `test` # job above). - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@1.95.0 - name: Cache cargo registry + build uses: Swatinem/rust-cache@v2 diff --git a/.github/workflows/eval.yml b/.github/workflows/eval.yml index fb6a470cc..554564f94 100644 --- a/.github/workflows/eval.yml +++ b/.github/workflows/eval.yml @@ -28,7 +28,7 @@ jobs: # Rust extension before running the smoke test or every call raises # `ModuleNotFoundError`. Mirrors the main CI `test` job pattern. - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@1.95.0 - name: Cache cargo registry + build uses: Swatinem/rust-cache@v2 diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 1b3e9732f..be2ebcfd6 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -42,7 +42,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Install stable toolchain - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@1.95.0 with: components: rustfmt, clippy - name: Cache cargo registry + build @@ -101,7 +101,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@1.95.0 - uses: Swatinem/rust-cache@v2 - name: Install cargo-audit + cargo-deny run: | @@ -121,7 +121,7 @@ jobs: continue-on-error: true steps: - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@1.95.0 - uses: actions/setup-python@v5 with: python-version: '3.11' diff --git a/plugins/headroom-agent-hooks/.claude-plugin/plugin.json b/plugins/headroom-agent-hooks/.claude-plugin/plugin.json index 5413f88ea..569eb4505 100644 --- a/plugins/headroom-agent-hooks/.claude-plugin/plugin.json +++ b/plugins/headroom-agent-hooks/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "headroom", - "version": "0.11.0", + "version": "0.13.2", "description": "Headroom startup hooks for Claude Code and GitHub Copilot CLI.", "author": { "name": "Headroom Contributors", diff --git a/plugins/headroom-agent-hooks/.github/plugin/plugin.json b/plugins/headroom-agent-hooks/.github/plugin/plugin.json index 8b69de7cb..c9a3de90f 100644 --- a/plugins/headroom-agent-hooks/.github/plugin/plugin.json +++ b/plugins/headroom-agent-hooks/.github/plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "headroom", - "version": "0.11.0", + "version": "0.13.2", "description": "Headroom startup hooks for Claude Code and GitHub Copilot CLI.", "author": { "name": "Headroom Contributors",