Skip to content

fix(mise): allow the @yarnpkg/libzip trust downgrade - #64

Merged
onedr0p merged 1 commit into
mainfrom
fix/mise-libzip-trust-downgrade
Jul 25, 2026
Merged

onedr0p merged 1 commit into
mainfrom
fix/mise-libzip-trust-downgrade

Conversation

@onedr0p

@onedr0p onedr0p commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Overview

Unblocks CI, which has been red on main since 2026-07-25T14:04.

mise 2026.7.13 added a supply-chain trust check that refuses the entire renovate
dependency tree during Setup Mise, before any workflow logic runs:

mise ERROR Failed to install npm:renovate@43.280.1: aube install failed: failed to resolve dependencies
  caused by: trust downgrade for @yarnpkg/libzip@3.2.2 (trustPolicy=no-downgrade):
  earlier published version 3.2.0 had provenance attestation but this version has no trust evidence

Why rolling renovate back does not fix it

@yarnpkg/libzip is not a direct dependency. It arrives via @yarnpkg/core, and
the requirement is a floor:

package requires
@yarnpkg/core 4.7.0 / 4.8.0 / 4.9.0 @yarnpkg/libzip: ^3.2.2
renovate 43.270.0 … 43.280.5 @yarnpkg/core: 4.9.0 (exact)

^3.2.2 cannot resolve to 3.2.0 or 3.2.1, so no pin in that band avoids the
flagged version. Escaping it would mean going back past @yarnpkg/core 4.7.0 —
and Renovate would immediately propose bumping it again.

The fix

trust_policy_excludes is mise's own escape hatch, suggested verbatim in the
error. It is scoped to the single flagged package, so every other dependency in
the tree stays checked.

Renovate keeps bumping the pin despite the table form — its mise manager reads
.version out of an object (parseVersion, modules/manager/mise/extract.js),
and has a matching parseOptions for the extra key.

mise.lock gains the corresponding [tools."npm:renovate".options] entry.

Verification

Reproduced and fixed against mise 2026.7.13 specifically (the version CI uses;
local was 2026.7.11, which predates the check), with a cold MISE_DATA_DIR so
nothing was served from cache:

config exit
"npm:renovate" = "43.280.1" 1 — the error above, byte-for-byte
+ trust_policy_excludes = ["@yarnpkg/libzip"] 0

mise run lint and renovate-config-validator --strict (19 files) both pass
locally.

Once this is green, this repo can take the Build Success required status check
alongside the rest of the org.

Requirements

  • I have read and agree with the contributing guidelines
  • AI usage disclosure: YES — the investigation, change and this description were written by an AI agent (Claude Code) under maintainer direction.

mise 2026.7.13 added a supply-chain trust check that refuses the whole
renovate dependency tree:

  trust downgrade for @yarnpkg/libzip@3.2.2 (trustPolicy=no-downgrade):
  earlier published version 3.2.0 had provenance attestation but this
  version has no trust evidence

Pinning an older renovate does not help. libzip arrives transitively via
@yarnpkg/core, which requires ^3.2.2 — that is the floor, so 3.2.0 and
3.2.1 cannot satisfy it, and every @yarnpkg/core back to 4.7.0 carries the
same requirement while renovate 43.270.0 through 43.280.5 all pin core
4.9.0.

trust_policy_excludes is mise's own escape hatch and is scoped to the one
flagged package, so every other dependency stays checked. Renovate still
bumps the pin: its mise manager reads .version out of the table form
(parseVersion in modules/manager/mise/extract.js).

Verified against mise 2026.7.13 with a cold data dir: the plain pin exits
1 with the error above, the excluded form exits 0.

Signed-off-by: Devin Buhl <devin@buhl.casa>
@onedr0p
onedr0p merged commit 6dac969 into main Jul 25, 2026
3 checks passed
@onedr0p
onedr0p deleted the fix/mise-libzip-trust-downgrade branch July 25, 2026 21:35
@sticky-gecko sticky-gecko Bot mentioned this pull request Jul 25, 2026
@greptile-apps

greptile-apps Bot commented Jul 25, 2026

Copy link
Copy Markdown

Greptile Summary

Updates the mise Renovate tool configuration to bypass the trust downgrade check only for @yarnpkg/libzip.

  • Converts the Renovate tool declaration to table form while retaining version 43.280.1.
  • Records the matching trust_policy_excludes option in the generated mise lockfile.

Confidence Score: 4/5

The PR is safe to merge, with a non-blocking concern that the package-wide trust exception lacks a bounded removal mechanism.

The configuration and lockfile consistently apply the intended exception, while the exclusion remains active until manually removed after upstream restores attestation.

Files Needing Attention: .mise/config.toml

Security Review

The package-wide @yarnpkg/libzip trust-policy exception has no automated expiry or tracked removal mechanism, leaving the package exempt after the original provenance issue is resolved.

T-Rex T-Rex Logs

What T-Rex did

  • We reviewed the general contract validation proof and confirmed there is a reproducible harness named run-mise-trust-validation.sh that produced the validation log.
  • We examined the mise-trust-validation.log to verify the invoked commands, the working directory, the mise version, isolated directory paths, verbose installation and validation output, and exit codes.
  • We verified that run-mise-trust-validation.sh is the exact reproducible harness used to generate the log, enabling re-run for verification.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
.mise/config.toml Adds the package-specific trust-policy exclusion using mise's object-form tool declaration, but does not bound or track removal of the exception.
.mise/mise.lock Records the corresponding string-serialized option for locked Renovate installations.

Fix All in Claude Code

Reviews (1): Last reviewed commit: "fix(mise): allow the @yarnpkg/libzip tru..." | Re-trigger Greptile

Comment thread .mise/config.toml
Comment on lines +10 to +12
"npm:renovate" = { version = "43.280.1", trust_policy_excludes = [
"@yarnpkg/libzip",
] }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 security Bound the trust-policy exception

This package-wide exclusion has no automated expiry or tracked removal mechanism, so it remains active after an attested release resolves the original downgrade and leaves future @yarnpkg/libzip releases outside the normal supply-chain check.

Fix in Claude Code

gabrielcosi pushed a commit to gabrielcosi/home-ops that referenced this pull request Jul 28, 2026
…ts (2.2.0 ➔ 3.0.0) (#161)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [home-operations/renovate-presets](https://github.com/home-operations/renovate-presets) | major | `2.2.0` → `3.0.0` |

---

### Release Notes

<details>
<summary>home-operations/renovate-presets (home-operations/renovate-presets)</summary>

### [`v3.0.0`](https://github.com/home-operations/renovate-presets/blob/HEAD/CHANGELOG.md#300-2026-07-28)

[Compare Source](home-operations/renovate-presets@2.2.0...3.0.0)

##### ⚠ BREAKING CHANGES

- **github-action:** Update action actions/stale (v10.4.0 ➔ v11.0.0) ([#&#8203;71](home-operations/renovate-presets#71))

##### Bug Fixes

- **mise:** allow the [@&#8203;yarnpkg/libzip](https://github.com/yarnpkg/libzip) trust downgrade ([#&#8203;64](home-operations/renovate-presets#64)) ([6dac969](home-operations/renovate-presets@6dac969))
- **talosFactory:** ignore factory.talos.dev images matched by generic managers ([#&#8203;72](home-operations/renovate-presets#72)) ([47397e8](home-operations/renovate-presets@47397e8))

##### Build System

- **mise:** add actionlint and refresh the lockfile ([#&#8203;67](home-operations/renovate-presets#67)) ([1b3aece](home-operations/renovate-presets@1b3aece))

##### Continuous Integration

- gate pull requests on a single Build Success check ([#&#8203;62](home-operations/renovate-presets#62)) ([969f485](home-operations/renovate-presets@969f485))
- **github-action:** Update action actions/stale (v10.4.0 ➔ v11.0.0) ([#&#8203;71](home-operations/renovate-presets#71)) ([84c5488](home-operations/renovate-presets@84c5488))
- **github-action:** update action jdx/mise-action (v4.2.1 ➔ v4.2.3) ([#&#8203;69](home-operations/renovate-presets#69)) ([47be686](home-operations/renovate-presets@47be686))
- lint workflows with the shared composite action ([#&#8203;68](home-operations/renovate-presets#68)) ([c3a2850](home-operations/renovate-presets@c3a2850))

##### Miscellaneous Chores

- standardize release-please changelog sections ([#&#8203;70](home-operations/renovate-presets#70)) ([7013a38](home-operations/renovate-presets@7013a38))

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Berlin)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODAuNCIsInVwZGF0ZWRJblZlciI6IjQzLjI4MC40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL21ham9yIl19-->

Reviewed-on: https://git.xcd.dev/gabrielcosi/home-ops/pulls/161
Exikle pushed a commit to Exikle/home-infra that referenced this pull request Jul 28, 2026
…ts (2.2.0 ➔ 3.0.0) (#1264)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [home-operations/renovate-presets](https://github.com/home-operations/renovate-presets) | major | `2.2.0` → `3.0.0` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/107) for more information.

---

### Release Notes

<details>
<summary>home-operations/renovate-presets (home-operations/renovate-presets)</summary>

### [`v3.0.0`](https://github.com/home-operations/renovate-presets/blob/HEAD/CHANGELOG.md#300-2026-07-28)

[Compare Source](home-operations/renovate-presets@2.2.0...3.0.0)

##### ⚠ BREAKING CHANGES

- **github-action:** Update action actions/stale (v10.4.0 ➔ v11.0.0) ([#&#8203;71](home-operations/renovate-presets#71))

##### Bug Fixes

- **mise:** allow the [@&#8203;yarnpkg/libzip](https://github.com/yarnpkg/libzip) trust downgrade ([#&#8203;64](home-operations/renovate-presets#64)) ([6dac969](home-operations/renovate-presets@6dac969))
- **talosFactory:** ignore factory.talos.dev images matched by generic managers ([#&#8203;72](home-operations/renovate-presets#72)) ([47397e8](home-operations/renovate-presets@47397e8))

##### Build System

- **mise:** add actionlint and refresh the lockfile ([#&#8203;67](home-operations/renovate-presets#67)) ([1b3aece](home-operations/renovate-presets@1b3aece))

##### Continuous Integration

- gate pull requests on a single Build Success check ([#&#8203;62](home-operations/renovate-presets#62)) ([969f485](home-operations/renovate-presets@969f485))
- **github-action:** Update action actions/stale (v10.4.0 ➔ v11.0.0) ([#&#8203;71](home-operations/renovate-presets#71)) ([84c5488](home-operations/renovate-presets@84c5488))
- **github-action:** update action jdx/mise-action (v4.2.1 ➔ v4.2.3) ([#&#8203;69](home-operations/renovate-presets#69)) ([47be686](home-operations/renovate-presets@47be686))
- lint workflows with the shared composite action ([#&#8203;68](home-operations/renovate-presets#68)) ([c3a2850](home-operations/renovate-presets@c3a2850))

##### Miscellaneous Chores

- standardize release-please changelog sections ([#&#8203;70](home-operations/renovate-presets#70)) ([7013a38](home-operations/renovate-presets@7013a38))

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/Toronto)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODUuNyIsInVwZGF0ZWRJblZlciI6IjQzLjI4NS43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJwcmlvcml0eS9oaWdoIiwicmVub3ZhdGUvZ2l0aHViLXJlbGVhc2UiLCJ0eXBlL21ham9yIl19-->

Reviewed-on: https://git.dcunha.io/Exikle/Artemis-Cluster/pulls/1264
doonga pushed a commit to doonga/renovate-config that referenced this pull request Jul 29, 2026
…ts (2.2.0 ➔ 3.0.0) (#5)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [home-operations/renovate-presets](https://github.com/home-operations/renovate-presets) | major | `2.2.0` → `3.0.0` |

---

### Release Notes

<details>
<summary>home-operations/renovate-presets (home-operations/renovate-presets)</summary>

### [`v3.0.0`](https://github.com/home-operations/renovate-presets/blob/HEAD/CHANGELOG.md#300-2026-07-28)

[Compare Source](home-operations/renovate-presets@2.2.0...3.0.0)

##### ⚠ BREAKING CHANGES

- **github-action:** Update action actions/stale (v10.4.0 ➔ v11.0.0) ([#&#8203;71](home-operations/renovate-presets#71))

##### Bug Fixes

- **mise:** allow the [@&#8203;yarnpkg/libzip](https://github.com/yarnpkg/libzip) trust downgrade ([#&#8203;64](home-operations/renovate-presets#64)) ([6dac969](home-operations/renovate-presets@6dac969))
- **talosFactory:** ignore factory.talos.dev images matched by generic managers ([#&#8203;72](home-operations/renovate-presets#72)) ([47397e8](home-operations/renovate-presets@47397e8))

##### Build System

- **mise:** add actionlint and refresh the lockfile ([#&#8203;67](home-operations/renovate-presets#67)) ([1b3aece](home-operations/renovate-presets@1b3aece))

##### Continuous Integration

- gate pull requests on a single Build Success check ([#&#8203;62](home-operations/renovate-presets#62)) ([969f485](home-operations/renovate-presets@969f485))
- **github-action:** Update action actions/stale (v10.4.0 ➔ v11.0.0) ([#&#8203;71](home-operations/renovate-presets#71)) ([84c5488](home-operations/renovate-presets@84c5488))
- **github-action:** update action jdx/mise-action (v4.2.1 ➔ v4.2.3) ([#&#8203;69](home-operations/renovate-presets#69)) ([47be686](home-operations/renovate-presets@47be686))
- lint workflows with the shared composite action ([#&#8203;68](home-operations/renovate-presets#68)) ([c3a2850](home-operations/renovate-presets@c3a2850))

##### Miscellaneous Chores

- standardize release-please changelog sections ([#&#8203;70](home-operations/renovate-presets#70)) ([7013a38](home-operations/renovate-presets@7013a38))

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODMuMCIsInVwZGF0ZWRJblZlciI6IjQzLjI4My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9naXRodWItcmVsZWFzZSIsInR5cGUvbWFqb3IiXX0=-->

Reviewed-on: https://git.greyrock.io/greyrock-labs/renovate-config/pulls/5
doonga pushed a commit to greyrock-labs/home-ops that referenced this pull request Jul 29, 2026
…ts (2.2.0 ➔ 3.0.0) (#200)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [home-operations/renovate-presets](https://github.com/home-operations/renovate-presets) | major | `2.2.0` → `3.0.0` |

---

### Release Notes

<details>
<summary>home-operations/renovate-presets (home-operations/renovate-presets)</summary>

### [`v3.0.0`](https://github.com/home-operations/renovate-presets/blob/HEAD/CHANGELOG.md#300-2026-07-28)

[Compare Source](home-operations/renovate-presets@2.2.0...3.0.0)

##### ⚠ BREAKING CHANGES

- **github-action:** Update action actions/stale (v10.4.0 ➔ v11.0.0) ([#&#8203;71](home-operations/renovate-presets#71))

##### Bug Fixes

- **mise:** allow the [@&#8203;yarnpkg/libzip](https://github.com/yarnpkg/libzip) trust downgrade ([#&#8203;64](home-operations/renovate-presets#64)) ([6dac969](home-operations/renovate-presets@6dac969))
- **talosFactory:** ignore factory.talos.dev images matched by generic managers ([#&#8203;72](home-operations/renovate-presets#72)) ([47397e8](home-operations/renovate-presets@47397e8))

##### Build System

- **mise:** add actionlint and refresh the lockfile ([#&#8203;67](home-operations/renovate-presets#67)) ([1b3aece](home-operations/renovate-presets@1b3aece))

##### Continuous Integration

- gate pull requests on a single Build Success check ([#&#8203;62](home-operations/renovate-presets#62)) ([969f485](home-operations/renovate-presets@969f485))
- **github-action:** Update action actions/stale (v10.4.0 ➔ v11.0.0) ([#&#8203;71](home-operations/renovate-presets#71)) ([84c5488](home-operations/renovate-presets@84c5488))
- **github-action:** update action jdx/mise-action (v4.2.1 ➔ v4.2.3) ([#&#8203;69](home-operations/renovate-presets#69)) ([47be686](home-operations/renovate-presets@47be686))
- lint workflows with the shared composite action ([#&#8203;68](home-operations/renovate-presets#68)) ([c3a2850](home-operations/renovate-presets@c3a2850))

##### Miscellaneous Chores

- standardize release-please changelog sections ([#&#8203;70](home-operations/renovate-presets#70)) ([7013a38](home-operations/renovate-presets@7013a38))

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODMuMCIsInVwZGF0ZWRJblZlciI6IjQzLjI4My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9naXRodWItcmVsZWFzZSIsInR5cGUvbWFqb3IiXX0=-->

Reviewed-on: https://git.greyrock.io/greyrock-labs/home-ops/pulls/200
eleboucher pushed a commit to eleboucher/homelab that referenced this pull request Jul 29, 2026
…0 ➔ 3.0.0) (#1752)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [home-operations/renovate-presets](https://github.com/home-operations/renovate-presets) | major | `2.2.0` → `3.0.0` |

---

### Release Notes

<details>
<summary>home-operations/renovate-presets (home-operations/renovate-presets)</summary>

### [`v3.0.0`](https://github.com/home-operations/renovate-presets/blob/HEAD/CHANGELOG.md#300-2026-07-28)

[Compare Source](home-operations/renovate-presets@2.2.0...3.0.0)

##### ⚠ BREAKING CHANGES

- **github-action:** Update action actions/stale (v10.4.0 ➔ v11.0.0) ([#&#8203;71](home-operations/renovate-presets#71))

##### Bug Fixes

- **mise:** allow the [@&#8203;yarnpkg/libzip](https://github.com/yarnpkg/libzip) trust downgrade ([#&#8203;64](home-operations/renovate-presets#64)) ([6dac969](home-operations/renovate-presets@6dac969))
- **talosFactory:** ignore factory.talos.dev images matched by generic managers ([#&#8203;72](home-operations/renovate-presets#72)) ([47397e8](home-operations/renovate-presets@47397e8))

##### Build System

- **mise:** add actionlint and refresh the lockfile ([#&#8203;67](home-operations/renovate-presets#67)) ([1b3aece](home-operations/renovate-presets@1b3aece))

##### Continuous Integration

- gate pull requests on a single Build Success check ([#&#8203;62](home-operations/renovate-presets#62)) ([969f485](home-operations/renovate-presets@969f485))
- **github-action:** Update action actions/stale (v10.4.0 ➔ v11.0.0) ([#&#8203;71](home-operations/renovate-presets#71)) ([84c5488](home-operations/renovate-presets@84c5488))
- **github-action:** update action jdx/mise-action (v4.2.1 ➔ v4.2.3) ([#&#8203;69](home-operations/renovate-presets#69)) ([47be686](home-operations/renovate-presets@47be686))
- lint workflows with the shared composite action ([#&#8203;68](home-operations/renovate-presets#68)) ([c3a2850](home-operations/renovate-presets@c3a2850))

##### Miscellaneous Chores

- standardize release-please changelog sections ([#&#8203;70](home-operations/renovate-presets#70)) ([7013a38](home-operations/renovate-presets@7013a38))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL21ham9yIl19-->

Reviewed-on: https://git.erwanleboucher.dev/eleboucher/homelab/pulls/1752
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant