Verify managed toolchain downloads before installation - #2229
#2229Verify managed toolchain downloads before installation#2229j178 merged 12 commits intoj178:masterj178/prek:masterfrom shaanmajid:feat-1744-managed-download-checksumsshaanmajid/prek:feat-1744-managed-download-checksumsCopy head branch name to clipboard
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #2229 +/- ##
==========================================
+ Coverage 92.62% 92.73% +0.10%
==========================================
Files 126 127 +1
Lines 26895 27490 +595
==========================================
+ Hits 24912 25493 +581
- Misses 1983 1997 +14 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
📦 Cargo Bloat ComparisonBinary size change: +0.75% (26.6 MiB → 26.8 MiB) Expand for cargo-bloat outputHead Branch ResultsBase Branch Results |
⚡️ Hyperfine BenchmarksSummary: 0 regressions, 2 improvements above the 10% threshold. Environment
CLI CommandsBenchmarking basic commands in the main repo:
|
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base --version |
2.4 ± 0.2 | 2.1 | 3.0 | 1.11 ± 0.09 |
prek-head --version |
2.1 ± 0.1 | 2.0 | 2.3 | 1.00 |
✅ Performance improvement for prek --version: 10.3100% faster
prek list
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base list |
9.6 ± 0.3 | 9.2 | 11.5 | 1.02 ± 0.11 |
prek-head list |
9.4 ± 1.0 | 9.0 | 19.0 | 1.00 |
prek validate-config .pre-commit-config.yaml
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base validate-config .pre-commit-config.yaml |
3.2 ± 0.1 | 3.1 | 3.4 | 1.06 ± 0.06 |
prek-head validate-config .pre-commit-config.yaml |
3.0 ± 0.2 | 2.9 | 4.0 | 1.00 |
prek sample-config
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base sample-config |
2.6 ± 0.1 | 2.5 | 2.7 | 1.07 ± 0.03 |
prek-head sample-config |
2.4 ± 0.0 | 2.4 | 2.6 | 1.00 |
Cold vs Warm Runs
Comparing first run (cold) vs subsequent runs (warm cache):
prek run --all-files (cold - no cache)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run --all-files |
78.2 ± 3.4 | 73.9 | 84.7 | 1.01 ± 0.06 |
prek-head run --all-files |
77.3 ± 3.5 | 74.0 | 84.6 | 1.00 |
prek run --all-files (warm - with cache)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run --all-files |
77.5 ± 2.6 | 74.1 | 82.3 | 1.01 ± 0.05 |
prek-head run --all-files |
77.0 ± 2.6 | 73.7 | 82.0 | 1.00 |
Full Hook Suite
Running the builtin hook suite on the benchmark workspace:
prek run --all-files (full builtin hook suite)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run --all-files |
78.6 ± 2.9 | 73.5 | 84.2 | 1.01 ± 0.05 |
prek-head run --all-files |
77.7 ± 3.0 | 73.0 | 86.0 | 1.00 |
Individual Hook Performance
Benchmarking each hook individually on the test repo:
prek run trailing-whitespace --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run trailing-whitespace --all-files |
21.3 ± 0.4 | 20.6 | 22.3 | 1.01 ± 0.04 |
prek-head run trailing-whitespace --all-files |
21.0 ± 0.7 | 20.2 | 23.7 | 1.00 |
prek run end-of-file-fixer --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run end-of-file-fixer --all-files |
27.8 ± 2.2 | 25.0 | 32.4 | 1.01 ± 0.10 |
prek-head run end-of-file-fixer --all-files |
27.6 ± 1.6 | 24.9 | 30.6 | 1.00 |
prek run check-json --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run check-json --all-files |
8.2 ± 0.3 | 7.7 | 8.9 | 1.03 ± 0.05 |
prek-head run check-json --all-files |
8.0 ± 0.3 | 7.5 | 8.5 | 1.00 |
prek run check-yaml --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run check-yaml --all-files |
8.1 ± 0.2 | 7.6 | 8.4 | 1.03 ± 0.04 |
prek-head run check-yaml --all-files |
7.8 ± 0.2 | 7.5 | 8.2 | 1.00 |
prek run check-toml --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run check-toml --all-files |
8.2 ± 0.3 | 7.7 | 8.8 | 1.06 ± 0.05 |
prek-head run check-toml --all-files |
7.8 ± 0.3 | 7.4 | 8.8 | 1.00 |
prek run check-xml --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run check-xml --all-files |
8.0 ± 0.2 | 7.6 | 8.5 | 1.00 ± 0.05 |
prek-head run check-xml --all-files |
8.0 ± 0.4 | 7.4 | 8.9 | 1.00 |
prek run detect-private-key --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run detect-private-key --all-files |
14.7 ± 1.2 | 12.9 | 17.8 | 1.02 ± 0.14 |
prek-head run detect-private-key --all-files |
14.5 ± 1.6 | 12.3 | 17.7 | 1.00 |
prek run fix-byte-order-marker --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run fix-byte-order-marker --all-files |
20.1 ± 1.0 | 18.2 | 21.8 | 1.03 ± 0.07 |
prek-head run fix-byte-order-marker --all-files |
19.5 ± 0.9 | 18.0 | 21.5 | 1.00 |
Installation Performance
Benchmarking hook installation (fast path hooks skip Python setup):
prek install-hooks (cold - no cache)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base install-hooks |
4.9 ± 0.1 | 4.8 | 5.0 | 1.10 ± 0.02 |
prek-head install-hooks |
4.5 ± 0.0 | 4.5 | 4.6 | 1.00 |
prek install-hooks (warm - with cache)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base install-hooks |
5.0 ± 0.2 | 4.8 | 5.2 | 1.08 ± 0.06 |
prek-head install-hooks |
4.6 ± 0.2 | 4.5 | 4.9 | 1.00 |
File Filtering/Scoping Performance
Testing different file selection modes:
prek run (staged files only)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run |
38.6 ± 1.1 | 37.1 | 41.1 | 1.00 ± 0.04 |
prek-head run |
38.5 ± 1.2 | 36.5 | 40.5 | 1.00 |
prek run --files '*.json' (specific file type)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run --files '*.json' |
9.3 ± 1.3 | 8.0 | 11.8 | 1.16 ± 0.16 |
prek-head run --files '*.json' |
8.0 ± 0.1 | 7.8 | 8.2 | 1.00 |
✅ Performance improvement for prek run --files '*.json' (specific file type): 13.6700% faster
Workspace Discovery & Initialization
Benchmarking hook discovery and initialization overhead:
prek run --dry-run --all-files (measures init overhead)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run --dry-run --all-files |
7.0 ± 0.1 | 6.9 | 7.3 | 1.03 ± 0.05 |
prek-head run --dry-run --all-files |
6.8 ± 0.3 | 6.5 | 7.9 | 1.00 |
Meta Hooks Performance
Benchmarking meta hooks separately:
prek run check-hooks-apply --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run check-hooks-apply --all-files |
12.1 ± 0.2 | 11.9 | 12.4 | 1.01 ± 0.02 |
prek-head run check-hooks-apply --all-files |
12.0 ± 0.1 | 11.8 | 12.2 | 1.00 |
prek run check-useless-excludes --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run check-useless-excludes --all-files |
11.1 ± 0.3 | 10.7 | 11.7 | 1.02 ± 0.04 |
prek-head run check-useless-excludes --all-files |
10.9 ± 0.2 | 10.6 | 11.2 | 1.00 |
prek run identity --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run identity --all-files |
10.4 ± 0.1 | 10.1 | 10.6 | 1.04 ± 0.02 |
prek-head run identity --all-files |
9.9 ± 0.1 | 9.7 | 10.2 | 1.00 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ce7b5ecb79
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| } | ||
|
|
||
| anyhow::Ok(()) | ||
| let checksum = self.fetch_checksum(&url, &filename).await?; |
There was a problem hiding this comment.
I’d prefer to make missing checksum metadata non-fatal for now.
If we have an expected digest and the downloaded bytes don’t match, that should absolutely be a hard error. But if the upstream release doesn’t publish a checksum file, or the checksum file simply doesn’t list this artifact, I think we should warn and continue with the existing install path.
That gives us the security win where checksum data exists, without making checksum coverage a new compatibility requirement on day one. It also avoids breaking older upstream releases or mirrors that don’t provide checksum assets yet.
There was a problem hiding this comment.
I’m slightly hesitant to make missing checksum metadata non-fatal by default, since I think that materially undermines the security posture here.
Regarding releases, I compiled checksum availability for all supported toolchains. The concrete gaps I found are mostly old releases:
- Bun:
v0.1.1throughv0.5.0have downloadablebun-linux-x64.zipassets but noSHASUMS256.txt;v0.6.0+(released May 16, 2023) sampled has checksum metadata. - Deno:
v1.xandv2.0.0have downloadable archives but no.sha256sum;v2.0.1+(released October 17, 2024) sampled has checksum metadata. (For reference, Deno v1 was released May 13, 2020). - Node, Go, and rustup look covered for the downloadable artifacts I sampled.
- rv-ruby’s default release has
SHA256SUMS; customPREK_RUBY_MIRRORis the main place where this could become a mirror compatibility issue.
Although some old Bun and Deno versions are missing checksums, I think dropping support for both are justified here, since (1) those are relatively new toolchains in general, and (2) support for both is prek-only (not pre-commit) and only added within the last few months in #1411 and #1516. Because of both, I doubt people are installing old versions.
Given that, I think fail-closed is defensible for official managed downloads -- if an official source does not publish checksum metadata for an artifact at install-time (despite currently publishing this metadata today), then installing it silently weakens the security guarantee from this change. I'm concerned that if the only flag is e.g., a warning, users will likely ignore it, especially in CI.
My only legitimate worry of checksum availability is for consumers of Ruby mirrors via the PREK_RUBY_MIRROR environment variable; I'm not sure how often this feature is used (if at all).
If necessary, would you be open to a narrower compatibility exception instead? E.g., switch to warn-and-continue only for PREK_RUBY_MIRROR / custom mirrors, or only behind an explicit environment variable?
If you still prefer warn-and-continue everywhere where the checksum is missing for the first release, I can make that change, but just wanted to call out that I don't think this case should ever be hit with current usage (only exception being the Ruby mirror point I noted above).
There was a problem hiding this comment.
Thanks for digging into the availability data.
I’m still uncomfortable making missing checksum metadata fatal by default in this version. Deno is the main example: Deno releases before 2.0 don’t have checksum sidecars, so fail-closed would make those versions uninstallable in prek. That is a breaking compatibility change, and it also suggests checksum sidecars are not yet a universal enough convention to make them a hard requirement for every managed toolchain we add later.
I pushed 309d343, which makes this policy explicit via PREK_DOWNLOAD_CHECKSUM_POLICY.
The default is warn-missing: checksum mismatch remains a hard error, but missing checksum metadata warns and continues. Users who want fail-closed behavior can set PREK_DOWNLOAD_CHECKSUM_POLICY=required, and users who need to bypass checksum lookup entirely can set disabled.
That keeps the security win when metadata exists, while avoiding a compatibility break for older releases or mirrors that don’t ship sidecars yet.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2fe5a59eab
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 309d343ce7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
d2f8b93 to
f19ae05
Compare
f19ae05 to
1681ac0
Compare
1681ac0 to
df2ef73
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: df2ef73f2a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
df2ef73 to
9a0b4a4
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9a0b4a46d8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [prek](https://github.com/j178/prek) | patch | `0.4.5` → `0.4.8` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>j178/prek (prek)</summary> ### [`v0.4.8`](https://github.com/j178/prek/blob/HEAD/CHANGELOG.md#048) [Compare Source](j178/prek@v0.4.6...v0.4.8) Released on 2026-07-04. ##### Enhancements - Add default\_env configuration ([#​2288](j178/prek#2288)) - Rename `auto-update` to `update` ([#​2286](j178/prek#2286)) ##### Bug fixes - Fix progress collapse ordering ([#​2291](j178/prek#2291)) - Fix progress insertion after collapsed rows ([#​2292](j178/prek#2292)) ##### Contributors - [@​j178](https://github.com/j178) ### [`v0.4.6`](https://github.com/j178/prek/blob/HEAD/CHANGELOG.md#046) [Compare Source](j178/prek@v0.4.5...v0.4.6) Released on 2026-07-01. ##### Enhancements - Verify managed toolchain downloads before installation ([#​2229](j178/prek#2229)) - Add `PREK_DOCKER_NO_INIT` to opt-out Docker `--init` ([#​2242](j178/prek#2242)) - Improve subprocess error messages ([#​2257](j178/prek#2257)) - Split run concurrency knobs: `PREK_CONCURRENT_HOOKS` and `PREK_CONCURRENT_BATCHES` ([#​2276](j178/prek#2276)) ##### Performance - Avoid allocating markdown extensions per file ([#​2245](j178/prek#2245)) - Avoid unchanged config tracking writes ([#​2247](j178/prek#2247)) - Delay trailing whitespace output buffer ([#​2244](j178/prek#2244)) - Prefilter VCS permalink lines ([#​2253](j178/prek#2253)) - Skip unnecessary submodule updates during hook repo clone ([#​2255](j178/prek#2255)) ##### Documentation - Document `language_version` inferring for Python and Go ([#​2241](j178/prek#2241)) ##### Other changes - Refactor env var handling ([#​2277](j178/prek#2277)) - Use `serde-saphyr` for YAML string quoting ([#​2228](j178/prek#2228)) ##### Contributors - [@​shaanmajid](https://github.com/shaanmajid) - [@​j178](https://github.com/j178) </details> --- ### Configuration 📅 **Schedule**: (UTC) - 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 MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTYuMCIsInVwZGF0ZWRJblZlciI6IjQzLjI1Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiLCJhdXRvbWF0aW9uOmJvdC1hdXRob3JlZCIsImRlcGVuZGVuY3ktdHlwZTo6cGF0Y2giXX0=-->
Automated mise tool upgrades from local config. Updated tools: - `action-validator` - `actionlint` - `editorconfig-checker` - `ghalint` - `lychee` - `pinact` - `pipx:gh-action-pulse` - `prek` - `rumdl` - `shellcheck` - `shfmt` - `tombi` - `uv` - `yamlfmt` - `yamllint` - `zizmor` Command: `mise upgrade --bump --local action-validator actionlint editorconfig-checker ghalint lychee pinact pipx:gh-action-pulse prek rumdl shellcheck shfmt tombi uv yamlfmt yamllint zizmor` <details> <summary>Version changelog (5 tools)</summary> | Tool | Requested | Installed | |------|-----------|-----------| | `editorconfig-checker` | `3.7.0` → `3.8.0` | `3.7.0` → `3.8.0` | | `prek` | `0.4.5` → `0.4.9` | `0.4.5` → `0.4.9` | | `rumdl` | `0.2.18` → `0.2.33` | `0.2.18` → `0.2.33` | | `tombi` | `1.1.3` → `1.2.0` | `1.1.3` → `1.2.0` | | `zizmor` | `latest` → `latest` | `1.26.1` → `1.27.0` | </details> <details> <summary>Release notes (5 tools)</summary> <details> <summary>editorconfig-checker: `3.7.0` → `3.8.0` (editorconfig-checker/editorconfig-checker)</summary> ### v3.8.0 ## [3.8.0](editorconfig-checker/editorconfig-checker@v3.7.0...v3.8.0) (2026-06-25) ### Features * exclude .gpg files ([#571](editorconfig-checker/editorconfig-checker#571)) ([e5b53f4](editorconfig-checker/editorconfig-checker@e5b53f4)) ### Bug Fixes * anchor node_modules and target default excludes at path start ([#568](editorconfig-checker/editorconfig-checker#568)) ([c0c39af](editorconfig-checker/editorconfig-checker@c0c39af)) * honor -no-color for .ecrc deprecation warning ([#575](editorconfig-checker/editorconfig-checker#575)) ([dbb0dbb](editorconfig-checker/editorconfig-checker@dbb0dbb)) </details> <details> <summary>prek: `0.4.5` → `0.4.9` (j178/prek)</summary> ### v0.4.6 ## Release Notes Released on 2026-07-01. ### Enhancements - Verify managed toolchain downloads before installation ([#2229](j178/prek#2229)) - Add `PREK_DOCKER_NO_INIT` to opt-out Docker `--init` ([#2242](j178/prek#2242)) - Improve subprocess error messages ([#2257](j178/prek#2257)) - Split run concurrency knobs: `PREK_CONCURRENT_HOOKS` and `PREK_CONCURRENT_BATCHES` ([#2276](j178/prek#2276)) ### Performance - Avoid allocating markdown extensions per file ([#2245](j178/prek#2245)) - Avoid unchanged config tracking writes ([#2247](j178/prek#2247)) - Delay trailing whitespace output buffer ([#2244](j178/prek#2244)) - Prefilter VCS permalink lines ([#2253](j178/prek#2253)) - Skip unnecessary submodule updates during hook repo clone ([#2255](j178/prek#2255)) ### Documentation - Document `language_version` inferring for Python and Go ([#2241](j178/prek#2241)) ### Other changes - Refactor env var handling ([#2277](j178/prek#2277)) - Use `serde-saphyr` for YAML string quoting ([#2228](j178/prek#2228)) ### Contributors - @shaanmajid - @j178 ## Install prek 0.4.6 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.6/prek-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.6/prek-installer.ps1 | iex" ``` ### Install prebuilt binaries via Homebrew ```sh brew install prek ``` ## Download prek 0.4.6 | File | Platform | Checksum | |--------|----------|----------| | [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.6/p… (truncated) ### v0.4.8 ## Release Notes Released on 2026-07-04. ### Enhancements - Add default_env configuration ([#2288](j178/prek#2288)) - Rename `auto-update` to `update` ([#2286](j178/prek#2286)) ### Bug fixes - Fix progress collapse ordering ([#2291](j178/prek#2291)) - Fix progress insertion after collapsed rows ([#2292](j178/prek#2292)) ### Contributors - @j178 ## Install prek 0.4.8 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.8/prek-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.8/prek-installer.ps1 | iex" ``` ### Install prebuilt binaries via Homebrew ```sh brew install prek ``` ## Download prek 0.4.8 | File | Platform | Checksum | |--------|----------|----------| | [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-apple-darwin.tar.gz.sha256) | | [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.8/prek-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-x86_64-apple-darwin.tar.gz.sha256) | | [prek-aarch64-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-pc-windows-msvc.zip.sha256) | | [prek-i686-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.4.8/prek-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-i686-pc-windows-msvc.zip.sha25… (truncated) ### v0.4.9 ## Release Notes Released on 2026-07-11. Note: This release changes the repository identity schema stored in cached hook environments. Existing hook environments will be invalidated, and prek will reinstall them automatically when needed. ### Enhancements - Preserve additional dependency order ([#2311](j178/prek#2311)) - Remove parallel Ruby gem installation ([#2307](j178/prek#2307)) - Warn for missing update repositories ([#2316](j178/prek#2316)) ### Bug fixes - Fix mixed workspace selectors ([#2306](j178/prek#2306)) - Fix try-repo local path resolution ([#2310](j178/prek#2310)) - Use resolved gem executable ([#2308](j178/prek#2308)) - Validate complete XML documents in check-xml ([#2312](j178/prek#2312)) ### Contributors - @j178 ## Install prek 0.4.9 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.9/prek-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.9/prek-installer.ps1 | iex" ``` ### Install prebuilt binaries via Homebrew ```sh brew install prek ``` ## Download prek 0.4.9 | File | Platform | Checksum | |--------|----------|----------| | [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.9/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.9/prek-aarch64-apple-darwin.tar.gz.sha256) | | [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.9/prek-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.9/prek-x86_64-apple-darwin.tar.gz.sha256) | | [prek-aarch64-pc-… (truncated) </details> <details> <summary>rumdl: `0.2.18` → `0.2.33` (rvben/rumdl)</summary> ### v0.2.24 ### Added - **MD043**: report expected and actual headings at first mismatch (#696) ([57f0902](rvben/rumdl@57f0902)) - thanks @mkowen1 - **MD013**: add semantic-link-understanding to flag long-URL links in stern mode (#691) ([f17e3f7](rvben/rumdl@f17e3f7)) - thanks @chandlerc ### Fixed - **MD013**: extend standalone-link reflow boundary to blockquotes ([74e79f6](rvben/rumdl@74e79f6)) - **MD013**: treat standalone links as paragraph boundaries in reflow (#697) ([39ea2b2](rvben/rumdl@39ea2b2)) - thanks @chandlerc - **MD013**: associate paragraph reflow fix with all violating lines (#698) ([f17be35](rvben/rumdl@f17be35)) - thanks @chandlerc - **fix-coordinator**: honor inline rumdl-configure-file overrides when applying fixes ([c347ab6](rvben/rumdl@c347ab6)) - **MD013**: exempt standalone links with trailing punctuation and wrappers (#694) ([d7a3c2e](rvben/rumdl@d7a3c2e)) - thanks @chandlerc - **MD013**: keep the space after an inline code span before punctuation (#693) ([13745db](rvben/rumdl@13745db)) - thanks @chandlerc - **lsp**: iterate formatting fixes to a fixpoint so one format pass converges (#695) ([78c42ad](rvben/rumdl@78c42ad)) - thanks @chandlerc - **MD028**: make blockquote-merge autofix opt-in by default ([cffadef](rvben/rumdl@cffadef)) - **MD036**: make emphasis-to-heading autofix opt-in by default ([9b145a9](https://github.com/rvben/rumdl/commit/9b145a9b55a85… (truncated) ### v0.2.25 ### Added - **lsp**: document LSP settings and scope link-completion triggers ([18fae1b](rvben/rumdl@18fae1b)) - **MD013**: reflow lists with configured marker spacing (#692) ([b00b117](rvben/rumdl@b00b117)) ### Fixed - **MD052**: preserve author casing in undefined-reference messages ([6d1cb96](rvben/rumdl@6d1cb96)) - **MD013**: preserve single-tilde strikethrough content during reflow (#701) ([a2387ce](rvben/rumdl@a2387ce)) - **rules**: resolve complex link handling in reflow and MD052 (#702) ([d57a61a](rvben/rumdl@d57a61a)) - **rules**: prevent front-matter and skippable region leakage (#699) ([e09fa06](rvben/rumdl@e09fa06)) - **MD007**: align nested lists to a widened parent's content column (#700) ([595cc4d](rvben/rumdl@595cc4d)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.25-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.25/rumdl-v0.2.25-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.25/rumdl-v0.2.25-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.25-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.25/rumdl-v0.2.25-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.25/rumdl-v0.2.25-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.25-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.25/rumdl-v0.2.25-aarch64-unknown-linux-gnu.… (truncated) ### v0.2.26 ### Added - **wasi**: add wasi build feature, make target, and CI coverage ([8b9b027](rvben/rumdl@8b9b027)) - **lsp**: add enableSymbols setting to gate symbol providers ([b80f001](rvben/rumdl@b80f001)) ### Fixed - **workspace-index**: make cache temp file names unique per write ([d3aa269](rvben/rumdl@d3aa269)) - allow building for WASI ([8d0b44a](rvben/rumdl@8d0b44a)) - **MD060**: preserve trailing blank lines and skip table-free content ([0223b30](rvben/rumdl@0223b30)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.26-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.26/rumdl-v0.2.26-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.26/rumdl-v0.2.26-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.26-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.26/rumdl-v0.2.26-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.26/rumdl-v0.2.26-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.26-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.26/rumdl-v0.2.26-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.26/rumdl-v0.2.26-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.26-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.26/rumdl-v0.2.26-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/downlo… (truncated) ### v0.2.27 ### Fixed - **MD077**: detect latent list markers past an unstable heading ([05d273e](rvben/rumdl@05d273e)) - **MD013**: keep reference-style links atomic when reflowing ([a991a71](rvben/rumdl@a991a71)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.27-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.27-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.27-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.27-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.27-x86_64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-x86_64-apple-darwin.tar.gz) | macOS x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.27-aarch64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.27/… (truncated) ### v0.2.28 ### Added - **md043**: report each heading mismatch via sequence alignment ([d46dbef](rvben/rumdl@d46dbef)) ### Fixed - **lsp**: isolate rule panics from the document lint path ([020d4a2](rvben/rumdl@020d4a2)) - prevent stack overflow on deeply nested blockquote markers ([1dd3ce5](rvben/rumdl@1dd3ce5)) - write fixes atomically and exit non-zero on unreadable files ([085d7fe](rvben/rumdl@085d7fe)) - **per-file-ignores**: enforce centrally in the fix coordinator ([c4b9899](rvben/rumdl@c4b9899)) - **fmt**: honor per-file-ignores on the stdin pipeline ([5b5e779](rvben/rumdl@5b5e779)) - **fmt**: honor per-file-ignores in the fix pipeline ([cb2d7f7](rvben/rumdl@cb2d7f7)) - **md043**: say 'pattern position' in unsatisfied-wildcard warnings ([9ffc105](rvben/rumdl@9ffc105)) ### Performance - **md013**: drop the per-check heading lookup allocation ([f76a209](rvben/rumdl@f76a209)) - make semantic-line-break reflow iterative ([5692564](rvben/rumdl@5692564)) - **md077**: compute list-continuation ranges in linear time ([d36b017](rvben/rumdl@d36b017)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.28-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.28/rumdl-v0.2.28-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/… (truncated) ### v0.2.29 ### Fixed - **lint-context**: keep indented continuation lines when a different list type follows ([5dd3c3f](rvben/rumdl@5dd3c3f)) - **MD013**: treat tabs and extra spaces after a list marker as marker padding ([f0f97a2](rvben/rumdl@f0f97a2)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.29-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.29-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.29-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.29-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.29-x86_64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-x86_64-apple-darwin.tar.gz) | macOS x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.29-aarch64-apple-darwin.tar.gz](https://github.co… (truncated) ### v0.2.30 ### Added - **MD007**: clamp explicit fixed-style indent under ordered parents ([1f3a32d](rvben/rumdl@1f3a32d)) ### Fixed - **lint-context**: keep lazy continuation lines in their list block ([a17f0af](rvben/rumdl@a17f0af)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.30-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.30-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.30-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.30-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.30-x86_64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-x86_64-apple-darwin.tar.gz) | macOS x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.30-aarch64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/rel… (truncated) ### v0.2.31 ### Added - **action**: install rumdl from GitHub Releases instead of pip ([7f69695](rvben/rumdl@7f69695)) ### Performance - **reflow**: optimize inline code mask calculation using pre-extracted spans ([27e5507](rvben/rumdl@27e5507)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.31-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.31-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.31-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.31-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.31-x86_64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-x86_64-apple-darwin.tar.gz) | macOS x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.31-aarch64-apple-darwin.tar.gz](https://github.com/rvben… (truncated) ### v0.2.32 ### Fixed - **md032**: stop flagging ordered lists nested in MkDocs admonitions ([80f896e](rvben/rumdl@80f896e)) - **md013**: recognize sentence boundaries followed by footnote references ([04a8c78](rvben/rumdl@04a8c78)) - **md036,md023**: skip admonition and content tab bodies under MkDocs flavor ([e8d1421](rvben/rumdl@e8d1421)) - **md040**: recognize py and py3 as Python language aliases ([6e7f8bf](rvben/rumdl@6e7f8bf)) - **md057**: anchor URL extraction so links cannot borrow a sibling's destination ([5a643ca](rvben/rumdl@5a643ca)) ### Performance - **reflow**: skip pulldown-cmark parses when a span kind cannot be present ([66d7f7b](rvben/rumdl@66d7f7b)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.32-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.32/rumdl-v0.2.32-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.32/rumdl-v0.2.32-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.32-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.32/rumdl-v0.2.32-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.32/rumdl-v0.2.32-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.32-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.32/rumdl-v0.2.32-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.32/rumdl-v0.2.32-aarch64-unknown-linux-gnu.tar.gz… (truncated) ### v0.2.33 ### Fixed - **md044**: stop flagging proper names inside bare URLs ([5e9b51a](rvben/rumdl@5e9b51a)) - **md040**: recognize file-extension fence labels as known languages ([686ba20](rvben/rumdl@686ba20)) - **cli**: replace unhelpful panic message with an actionable one (#717) ([37ac880](rvben/rumdl@37ac880)) - **reflow**: re-search cached inline-math after a dollar sign ([a30a4f9](rvben/rumdl@a30a4f9)) - **reflow**: support multiple backticks and optimize code span parsing ([81944c5](rvben/rumdl@81944c5)) - **md013**: stop reflow from starting lines with block markers ([eebd18b](rvben/rumdl@eebd18b)) ### Performance - **reflow**: implement cached match lookups to prevent quadratic suffix scanning ([1cc8d2b](rvben/rumdl@1cc8d2b)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.33-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.33/rumdl-v0.2.33-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.33/rumdl-v0.2.33-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.33-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.33/rumdl-v0.2.33-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.33/rumdl-v0.2.33-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.33-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.33/rumdl-v0.2.33-aarch64-unknown-linux-gnu.tar.gz)… (truncated) _Omitted 5 older releases._ </details> <details> <summary>tombi: `1.1.3` → `1.2.0` (tombi-toml/tombi)</summary> ### v1.1.4 <!-- Release notes generated using configuration in .github/release.yml at v1.1.4 --> ## What's Changed ### 🐛 Bug Fixes * fix(lsp): avoid stale diagnostics after changes by @ya7010 in tombi-toml/tombi#1954 ### 👒 Dependencies * build(deps-dev): bump esbuild from 0.28.0 to 0.28.1 in the npm_and_yarn group across 1 directory by @dependabot[bot] in tombi-toml/tombi#1945 * build(deps-dev): bump the npm_and_yarn group across 2 directories with 1 update by @dependabot[bot] in tombi-toml/tombi#1952 ### 🛠️ Other Changes * fix(ci): include LICENSE in python sdist by @ya7010 in tombi-toml/tombi#1942 * docs: explain selective auto-sort re-enable by @ya7010 in tombi-toml/tombi#1943 * Use GitHub App token for dependent release dispatches by @ya7010 in tombi-toml/tombi#1951 **Full Changelog**: tombi-toml/tombi@v1.1.3...v1.1.4 ### v1.1.5 <!-- Release notes generated using configuration in .github/release.yml at v1.1.5 --> ## What's Changed ### 🐛 Bug Fixes * fix(lsp): merge allOf table key completions by @ya7010 in tombi-toml/tombi#1959 * fix(vscode): color TOML dates as constants by @ya7010 in tombi-toml/tombi#1960 ### 🛠️ Other Changes * fix(lsp): complete literal keys in tables by @ya7010 in tombi-toml/tombi#1958 **Full Changelog**: tombi-toml/tombi@v1.1.4...v1.1.5 ### v1.1.6 <!-- Release notes generated using configuration in .github/release.yml at v1.1.6 --> ## What's Changed ### 🚀 New Features * feat: include target in CLI version output by @ya7010 in tombi-toml/tombi#1974 ### 🐛 Bug Fixes * fix: remove npm install script from tombi package by @ya7010 in tombi-toml/tombi#1969 ### 🛠️ Other Changes * Fix Windows release CRT linkage by @ya7010 in tombi-toml/tombi#1961 * ci: use shared release environment by @ya7010 in tombi-toml/tombi#1962 * Deprecate legacy document-link feature toggles by @ya7010 in tombi-toml/tombi#1965 * docs: add v2 release todo by @ya7010 in tombi-toml/tombi#1966 * chore: bump biome $schema to match pinned CLI 2.3.8 by @EduardF1 in tombi-toml/tombi#1967 * Align release build settings by @ya7010 in tombi-toml/tombi#1972 * fix: update vulnerable npm dependencies by @ya7010 in tombi-toml/tombi#1973 ## New Contributors * @EduardF1 made their first contribution in tombi-toml/tombi#1967 **Full Changelog**: tombi-toml/tombi@v1.1.5...v1.1.6 ### v1.1.7 <!-- Release notes generated using configuration in .github/release.yml at v1.1.7 --> ## What's Changed ### 🦅 New Features * Apply quote style to string keys by @ya7010 in tombi-toml/tombi#1980 * Support JSON schema `deprecationMessage` by @ya7010 in tombi-toml/tombi#1986 ### 🐝 Bug Fixes * Fix nested anyOf hover enum selection by @ya7010 in tombi-toml/tombi#1979 ### 🛠️ Other Changes * Update issue template emoji by @ya7010 in tombi-toml/tombi#1975 * Fix anyOf hover enum leakage by @ya7010 in tombi-toml/tombi#1976 * ci: validate winget manifest before submission by @ya7010 in tombi-toml/tombi#1977 * Improve formatting edit debug log by @ya7010 in tombi-toml/tombi#1978 * ci: harden winget manifest invocation check by @ya7010 in tombi-toml/tombi#1981 * ci: validate winget manifest leaf directory by @ya7010 in tombi-toml/tombi#1982 * ci: ignore winget manifest validation warnings by @ya7010 in tombi-toml/tombi#1983 * Fix root `$ref` schema completion by @kjanat in tombi-toml/tombi#1984 **Full Changelog**: tombi-toml/tombi@v1.1.6...v1.1.7 ### v1.2.0 <!-- Release notes generated using configuration in .github/release.yml at v1.2.0 --> ## What's Changed ### 🚨 Breaking Changes * Send CLI diagnostics to stderr by @ya7010 in tombi-toml/tombi#1991 ### 🦅 New Features * Add release asset attestations by @ya7010 in tombi-toml/tombi#1993 ### 🐝 Bug Fixes * fix(lsp): clear diagnostics after document close if workspace-diagnostics is disabled by @ya7010 in tombi-toml/tombi#1998 ### 🛠️ Other Changes * ci: align release note category emoji by @ya7010 in tombi-toml/tombi#1990 * docs: document TOMBI_NO_COLOR by @ya7010 in tombi-toml/tombi#1997 * fix(lsp): avoid cloning document URIs by @ya7010 in tombi-toml/tombi#1999 **Full Changelog**: tombi-toml/tombi@v1.1.7...v1.2.0 </details> <details> <summary>zizmor: `1.26.1` → `1.27.0` (zizmorcore/zizmor)</summary> ### v1.27.0 ## New Features 🌈[🔗](https://docs.zizmor.sh/release-notes/#new-feartures) - zizmor now has experimental support for workflows that specify parallel steps. See [Usage - Parallel steps](https://docs.zizmor.sh/usage/#parallel-steps) for more information ([#2153](zizmorcore/zizmor#2153)) Enhancements 🌱[🔗](https://docs.zizmor.sh/release-notes/#enhancements) - zizmor's handling of paths is now more consistent, particularly when run on Windows ([#2163](zizmorcore/zizmor#2163)) - zizmor now emits a helpful warning when being run in implicit offline mode ([#2180](zizmorcore/zizmor#2180)) ## Bug Fixes 🐛[🔗](https://docs.zizmor.sh/release-notes/#bug-fixes) - Fixed a bug where the [secrets-outside-env](https://docs.zizmor.sh/audits/#secrets-outside-env) audit would not honor ignore comments within the same job scope ([#2157](zizmorcore/zizmor#2157)) - Fixed a bug where the [ref-version-mismatch](https://docs.zizmor.sh/audits/#ref-version-mismatch) audit would not honor ignore comments within the same steps scope ([#2177](zizmorcore/zizmor#2177)) - Fixed a bug where `--collect=[MODE]` was not correctly handled when auditing remote inputs ([#2185](zizmorcore/zizmor#2185)) </details> </details> Modified files: - `.mise.toml` Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Automated mise tool upgrades from local config. Updated tools: - `prek` Command: `mise upgrade --bump --local prek` <details> <summary>Version changelog (prek)</summary> | Tool | Requested | Installed | |------|-----------|-----------| | `prek` | `0.4.5` → `0.4.9` | `0.4.5` → `0.4.9` | </details> <details> <summary>Release notes (1 tools)</summary> <details> <summary>prek: `0.4.5` → `0.4.9` (j178/prek)</summary> ### v0.4.6 ## Release Notes Released on 2026-07-01. ### Enhancements - Verify managed toolchain downloads before installation ([#2229](j178/prek#2229)) - Add `PREK_DOCKER_NO_INIT` to opt-out Docker `--init` ([#2242](j178/prek#2242)) - Improve subprocess error messages ([#2257](j178/prek#2257)) - Split run concurrency knobs: `PREK_CONCURRENT_HOOKS` and `PREK_CONCURRENT_BATCHES` ([#2276](j178/prek#2276)) ### Performance - Avoid allocating markdown extensions per file ([#2245](j178/prek#2245)) - Avoid unchanged config tracking writes ([#2247](j178/prek#2247)) - Delay trailing whitespace output buffer ([#2244](j178/prek#2244)) - Prefilter VCS permalink lines ([#2253](j178/prek#2253)) - Skip unnecessary submodule updates during hook repo clone ([#2255](j178/prek#2255)) ### Documentation - Document `language_version` inferring for Python and Go ([#2241](j178/prek#2241)) ### Other changes - Refactor env var handling ([#2277](j178/prek#2277)) - Use `serde-saphyr` for YAML string quoting ([#2228](j178/prek#2228)) ### Contributors - @shaanmajid - @j178 ## Install prek 0.4.6 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.6/prek-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.6/prek-installer.ps1 | iex" ``` ### Install prebuilt binaries via Homebrew ```sh brew install prek ``` ## Download prek 0.4.6 | File | Platform | Checksum | |--------|----------|----------| | [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.6/p… (truncated) ### v0.4.8 ## Release Notes Released on 2026-07-04. ### Enhancements - Add default_env configuration ([#2288](j178/prek#2288)) - Rename `auto-update` to `update` ([#2286](j178/prek#2286)) ### Bug fixes - Fix progress collapse ordering ([#2291](j178/prek#2291)) - Fix progress insertion after collapsed rows ([#2292](j178/prek#2292)) ### Contributors - @j178 ## Install prek 0.4.8 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.8/prek-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.8/prek-installer.ps1 | iex" ``` ### Install prebuilt binaries via Homebrew ```sh brew install prek ``` ## Download prek 0.4.8 | File | Platform | Checksum | |--------|----------|----------| | [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-apple-darwin.tar.gz.sha256) | | [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.8/prek-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-x86_64-apple-darwin.tar.gz.sha256) | | [prek-aarch64-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-pc-windows-msvc.zip.sha256) | | [prek-i686-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.4.8/prek-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-i686-pc-windows-msvc.zip.sha25… (truncated) ### v0.4.9 ## Release Notes Released on 2026-07-11. Note: This release changes the repository identity schema stored in cached hook environments. Existing hook environments will be invalidated, and prek will reinstall them automatically when needed. ### Enhancements - Preserve additional dependency order ([#2311](j178/prek#2311)) - Remove parallel Ruby gem installation ([#2307](j178/prek#2307)) - Warn for missing update repositories ([#2316](j178/prek#2316)) ### Bug fixes - Fix mixed workspace selectors ([#2306](j178/prek#2306)) - Fix try-repo local path resolution ([#2310](j178/prek#2310)) - Use resolved gem executable ([#2308](j178/prek#2308)) - Validate complete XML documents in check-xml ([#2312](j178/prek#2312)) ### Contributors - @j178 ## Install prek 0.4.9 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.9/prek-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.9/prek-installer.ps1 | iex" ``` ### Install prebuilt binaries via Homebrew ```sh brew install prek ``` ## Download prek 0.4.9 | File | Platform | Checksum | |--------|----------|----------| | [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.9/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.9/prek-aarch64-apple-darwin.tar.gz.sha256) | | [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.9/prek-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.9/prek-x86_64-apple-darwin.tar.gz.sha256) | | [prek-aarch64-pc-… (truncated) </details> </details> Modified files: - `.mise.toml` Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Automated mise tool upgrades from local config. Updated tools: - `action-validator` - `actionlint` - `editorconfig-checker` - `ghalint` - `lychee` - `pinact` - `pipx:gh-action-pulse` - `prek` - `rumdl` - `shellcheck` - `shfmt` - `tombi` - `uv` - `yamlfmt` - `yamllint` - `zizmor` Command: `mise upgrade --bump --local action-validator actionlint editorconfig-checker ghalint lychee pinact pipx:gh-action-pulse prek rumdl shellcheck shfmt tombi uv yamlfmt yamllint zizmor` <details> <summary>Version changelog (5 tools)</summary> | Tool | Requested | Installed | |------|-----------|-----------| | `editorconfig-checker` | `3.7.0` → `3.8.0` | `3.7.0` → `3.8.0` | | `prek` | `0.4.5` → `0.4.9` | `0.4.5` → `0.4.9` | | `rumdl` | `0.2.18` → `0.2.34` | `0.2.18` → `0.2.34` | | `tombi` | `1.1.3` → `1.2.0` | `1.1.3` → `1.2.0` | | `zizmor` | `latest` → `latest` | `1.26.1` → `1.27.0` | </details> <details> <summary>Release notes (5 tools)</summary> <details> <summary>editorconfig-checker: `3.7.0` → `3.8.0` (editorconfig-checker/editorconfig-checker)</summary> ### v3.8.0 ## [3.8.0](editorconfig-checker/editorconfig-checker@v3.7.0...v3.8.0) (2026-06-25) ### Features * exclude .gpg files ([#571](editorconfig-checker/editorconfig-checker#571)) ([e5b53f4](editorconfig-checker/editorconfig-checker@e5b53f4)) ### Bug Fixes * anchor node_modules and target default excludes at path start ([#568](editorconfig-checker/editorconfig-checker#568)) ([c0c39af](editorconfig-checker/editorconfig-checker@c0c39af)) * honor -no-color for .ecrc deprecation warning ([#575](editorconfig-checker/editorconfig-checker#575)) ([dbb0dbb](editorconfig-checker/editorconfig-checker@dbb0dbb)) </details> <details> <summary>prek: `0.4.5` → `0.4.9` (j178/prek)</summary> ### v0.4.6 ## Release Notes Released on 2026-07-01. ### Enhancements - Verify managed toolchain downloads before installation ([#2229](j178/prek#2229)) - Add `PREK_DOCKER_NO_INIT` to opt-out Docker `--init` ([#2242](j178/prek#2242)) - Improve subprocess error messages ([#2257](j178/prek#2257)) - Split run concurrency knobs: `PREK_CONCURRENT_HOOKS` and `PREK_CONCURRENT_BATCHES` ([#2276](j178/prek#2276)) ### Performance - Avoid allocating markdown extensions per file ([#2245](j178/prek#2245)) - Avoid unchanged config tracking writes ([#2247](j178/prek#2247)) - Delay trailing whitespace output buffer ([#2244](j178/prek#2244)) - Prefilter VCS permalink lines ([#2253](j178/prek#2253)) - Skip unnecessary submodule updates during hook repo clone ([#2255](j178/prek#2255)) ### Documentation - Document `language_version` inferring for Python and Go ([#2241](j178/prek#2241)) ### Other changes - Refactor env var handling ([#2277](j178/prek#2277)) - Use `serde-saphyr` for YAML string quoting ([#2228](j178/prek#2228)) ### Contributors - @shaanmajid - @j178 ## Install prek 0.4.6 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.6/prek-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.6/prek-installer.ps1 | iex" ``` ### Install prebuilt binaries via Homebrew ```sh brew install prek ``` ## Download prek 0.4.6 | File | Platform | Checksum | |--------|----------|----------| | [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.6/p… (truncated) ### v0.4.8 ## Release Notes Released on 2026-07-04. ### Enhancements - Add default_env configuration ([#2288](j178/prek#2288)) - Rename `auto-update` to `update` ([#2286](j178/prek#2286)) ### Bug fixes - Fix progress collapse ordering ([#2291](j178/prek#2291)) - Fix progress insertion after collapsed rows ([#2292](j178/prek#2292)) ### Contributors - @j178 ## Install prek 0.4.8 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.8/prek-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.8/prek-installer.ps1 | iex" ``` ### Install prebuilt binaries via Homebrew ```sh brew install prek ``` ## Download prek 0.4.8 | File | Platform | Checksum | |--------|----------|----------| | [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-apple-darwin.tar.gz.sha256) | | [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.8/prek-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-x86_64-apple-darwin.tar.gz.sha256) | | [prek-aarch64-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-pc-windows-msvc.zip.sha256) | | [prek-i686-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.4.8/prek-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-i686-pc-windows-msvc.zip.sha25… (truncated) ### v0.4.9 ## Release Notes Released on 2026-07-11. Note: This release changes the repository identity schema stored in cached hook environments. Existing hook environments will be invalidated, and prek will reinstall them automatically when needed. ### Enhancements - Preserve additional dependency order ([#2311](j178/prek#2311)) - Remove parallel Ruby gem installation ([#2307](j178/prek#2307)) - Warn for missing update repositories ([#2316](j178/prek#2316)) ### Bug fixes - Fix mixed workspace selectors ([#2306](j178/prek#2306)) - Fix try-repo local path resolution ([#2310](j178/prek#2310)) - Use resolved gem executable ([#2308](j178/prek#2308)) - Validate complete XML documents in check-xml ([#2312](j178/prek#2312)) ### Contributors - @j178 ## Install prek 0.4.9 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.9/prek-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.9/prek-installer.ps1 | iex" ``` ### Install prebuilt binaries via Homebrew ```sh brew install prek ``` ## Download prek 0.4.9 | File | Platform | Checksum | |--------|----------|----------| | [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.9/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.9/prek-aarch64-apple-darwin.tar.gz.sha256) | | [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.9/prek-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.9/prek-x86_64-apple-darwin.tar.gz.sha256) | | [prek-aarch64-pc-… (truncated) </details> <details> <summary>rumdl: `0.2.18` → `0.2.34` (rvben/rumdl)</summary> ### v0.2.25 ### Added - **lsp**: document LSP settings and scope link-completion triggers ([18fae1b](rvben/rumdl@18fae1b)) - **MD013**: reflow lists with configured marker spacing (#692) ([b00b117](rvben/rumdl@b00b117)) ### Fixed - **MD052**: preserve author casing in undefined-reference messages ([6d1cb96](rvben/rumdl@6d1cb96)) - **MD013**: preserve single-tilde strikethrough content during reflow (#701) ([a2387ce](rvben/rumdl@a2387ce)) - **rules**: resolve complex link handling in reflow and MD052 (#702) ([d57a61a](rvben/rumdl@d57a61a)) - **rules**: prevent front-matter and skippable region leakage (#699) ([e09fa06](rvben/rumdl@e09fa06)) - **MD007**: align nested lists to a widened parent's content column (#700) ([595cc4d](rvben/rumdl@595cc4d)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.25-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.25/rumdl-v0.2.25-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.25/rumdl-v0.2.25-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.25-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.25/rumdl-v0.2.25-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.25/rumdl-v0.2.25-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.25-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.25/rumdl-v0.2.25-aarch64-unknown-linux-gnu.… (truncated) ### v0.2.26 ### Added - **wasi**: add wasi build feature, make target, and CI coverage ([8b9b027](rvben/rumdl@8b9b027)) - **lsp**: add enableSymbols setting to gate symbol providers ([b80f001](rvben/rumdl@b80f001)) ### Fixed - **workspace-index**: make cache temp file names unique per write ([d3aa269](rvben/rumdl@d3aa269)) - allow building for WASI ([8d0b44a](rvben/rumdl@8d0b44a)) - **MD060**: preserve trailing blank lines and skip table-free content ([0223b30](rvben/rumdl@0223b30)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.26-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.26/rumdl-v0.2.26-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.26/rumdl-v0.2.26-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.26-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.26/rumdl-v0.2.26-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.26/rumdl-v0.2.26-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.26-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.26/rumdl-v0.2.26-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.26/rumdl-v0.2.26-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.26-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.26/rumdl-v0.2.26-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/downlo… (truncated) ### v0.2.27 ### Fixed - **MD077**: detect latent list markers past an unstable heading ([05d273e](rvben/rumdl@05d273e)) - **MD013**: keep reference-style links atomic when reflowing ([a991a71](rvben/rumdl@a991a71)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.27-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.27-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.27-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.27-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.27-x86_64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-x86_64-apple-darwin.tar.gz) | macOS x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.27/rumdl-v0.2.27-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.27-aarch64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.27/… (truncated) ### v0.2.28 ### Added - **md043**: report each heading mismatch via sequence alignment ([d46dbef](rvben/rumdl@d46dbef)) ### Fixed - **lsp**: isolate rule panics from the document lint path ([020d4a2](rvben/rumdl@020d4a2)) - prevent stack overflow on deeply nested blockquote markers ([1dd3ce5](rvben/rumdl@1dd3ce5)) - write fixes atomically and exit non-zero on unreadable files ([085d7fe](rvben/rumdl@085d7fe)) - **per-file-ignores**: enforce centrally in the fix coordinator ([c4b9899](rvben/rumdl@c4b9899)) - **fmt**: honor per-file-ignores on the stdin pipeline ([5b5e779](rvben/rumdl@5b5e779)) - **fmt**: honor per-file-ignores in the fix pipeline ([cb2d7f7](rvben/rumdl@cb2d7f7)) - **md043**: say 'pattern position' in unsatisfied-wildcard warnings ([9ffc105](rvben/rumdl@9ffc105)) ### Performance - **md013**: drop the per-check heading lookup allocation ([f76a209](rvben/rumdl@f76a209)) - make semantic-line-break reflow iterative ([5692564](rvben/rumdl@5692564)) - **md077**: compute list-continuation ranges in linear time ([d36b017](rvben/rumdl@d36b017)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.28-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.28/rumdl-v0.2.28-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/… (truncated) ### v0.2.29 ### Fixed - **lint-context**: keep indented continuation lines when a different list type follows ([5dd3c3f](rvben/rumdl@5dd3c3f)) - **MD013**: treat tabs and extra spaces after a list marker as marker padding ([f0f97a2](rvben/rumdl@f0f97a2)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.29-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.29-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.29-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.29-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.29-x86_64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-x86_64-apple-darwin.tar.gz) | macOS x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.29/rumdl-v0.2.29-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.29-aarch64-apple-darwin.tar.gz](https://github.co… (truncated) ### v0.2.30 ### Added - **MD007**: clamp explicit fixed-style indent under ordered parents ([1f3a32d](rvben/rumdl@1f3a32d)) ### Fixed - **lint-context**: keep lazy continuation lines in their list block ([a17f0af](rvben/rumdl@a17f0af)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.30-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.30-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.30-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.30-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.30-x86_64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-x86_64-apple-darwin.tar.gz) | macOS x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.30/rumdl-v0.2.30-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.30-aarch64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/rel… (truncated) ### v0.2.31 ### Added - **action**: install rumdl from GitHub Releases instead of pip ([7f69695](rvben/rumdl@7f69695)) ### Performance - **reflow**: optimize inline code mask calculation using pre-extracted spans ([27e5507](rvben/rumdl@27e5507)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.31-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.31-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.31-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.31-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.31-x86_64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-x86_64-apple-darwin.tar.gz) | macOS x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.31/rumdl-v0.2.31-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.31-aarch64-apple-darwin.tar.gz](https://github.com/rvben… (truncated) ### v0.2.32 ### Fixed - **md032**: stop flagging ordered lists nested in MkDocs admonitions ([80f896e](rvben/rumdl@80f896e)) - **md013**: recognize sentence boundaries followed by footnote references ([04a8c78](rvben/rumdl@04a8c78)) - **md036,md023**: skip admonition and content tab bodies under MkDocs flavor ([e8d1421](rvben/rumdl@e8d1421)) - **md040**: recognize py and py3 as Python language aliases ([6e7f8bf](rvben/rumdl@6e7f8bf)) - **md057**: anchor URL extraction so links cannot borrow a sibling's destination ([5a643ca](rvben/rumdl@5a643ca)) ### Performance - **reflow**: skip pulldown-cmark parses when a span kind cannot be present ([66d7f7b](rvben/rumdl@66d7f7b)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.32-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.32/rumdl-v0.2.32-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.32/rumdl-v0.2.32-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.32-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.32/rumdl-v0.2.32-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.32/rumdl-v0.2.32-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.32-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.32/rumdl-v0.2.32-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.32/rumdl-v0.2.32-aarch64-unknown-linux-gnu.tar.gz… (truncated) ### v0.2.33 ### Fixed - **md044**: stop flagging proper names inside bare URLs ([5e9b51a](rvben/rumdl@5e9b51a)) - **md040**: recognize file-extension fence labels as known languages ([686ba20](rvben/rumdl@686ba20)) - **cli**: replace unhelpful panic message with an actionable one (#717) ([37ac880](rvben/rumdl@37ac880)) - **reflow**: re-search cached inline-math after a dollar sign ([a30a4f9](rvben/rumdl@a30a4f9)) - **reflow**: support multiple backticks and optimize code span parsing ([81944c5](rvben/rumdl@81944c5)) - **md013**: stop reflow from starting lines with block markers ([eebd18b](rvben/rumdl@eebd18b)) ### Performance - **reflow**: implement cached match lookups to prevent quadratic suffix scanning ([1cc8d2b](rvben/rumdl@1cc8d2b)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.33-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.33/rumdl-v0.2.33-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.33/rumdl-v0.2.33-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.33-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.33/rumdl-v0.2.33-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.33/rumdl-v0.2.33-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.33-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.33/rumdl-v0.2.33-aarch64-unknown-linux-gnu.tar.gz)… (truncated) ### v0.2.34 ### Added - **code-block-tools**: restore shuck as a built-in shell linter ([da66447](rvben/rumdl@da66447)) ### Performance - **reflow**: probe inline math at the cursor instead of rescanning the suffix ([1e6ea3b](rvben/rumdl@1e6ea3b)) - **reflow**: merge emphasis and code span extraction into a single cmark pass ([8e03537](rvben/rumdl@8e03537)) - **reflow**: optimize MyST inline role parsing using pre-extracted code spans ([e966899](rvben/rumdl@e966899)) ## Downloads | File | Platform | Checksum | |------|----------|----------| | [rumdl-v0.2.34-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.34/rumdl-v0.2.34-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.34/rumdl-v0.2.34-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.34-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.34/rumdl-v0.2.34-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.34/rumdl-v0.2.34-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.34-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.34/rumdl-v0.2.34-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.34/rumdl-v0.2.34-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.34-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.34/rumdl-v0.2.34-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.34/rumdl-v0.2.34-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rum… (truncated) _Omitted 6 older releases._ </details> <details> <summary>tombi: `1.1.3` → `1.2.0` (tombi-toml/tombi)</summary> ### v1.1.4 <!-- Release notes generated using configuration in .github/release.yml at v1.1.4 --> ## What's Changed ### 🐛 Bug Fixes * fix(lsp): avoid stale diagnostics after changes by @ya7010 in tombi-toml/tombi#1954 ### 👒 Dependencies * build(deps-dev): bump esbuild from 0.28.0 to 0.28.1 in the npm_and_yarn group across 1 directory by @dependabot[bot] in tombi-toml/tombi#1945 * build(deps-dev): bump the npm_and_yarn group across 2 directories with 1 update by @dependabot[bot] in tombi-toml/tombi#1952 ### 🛠️ Other Changes * fix(ci): include LICENSE in python sdist by @ya7010 in tombi-toml/tombi#1942 * docs: explain selective auto-sort re-enable by @ya7010 in tombi-toml/tombi#1943 * Use GitHub App token for dependent release dispatches by @ya7010 in tombi-toml/tombi#1951 **Full Changelog**: tombi-toml/tombi@v1.1.3...v1.1.4 ### v1.1.5 <!-- Release notes generated using configuration in .github/release.yml at v1.1.5 --> ## What's Changed ### 🐛 Bug Fixes * fix(lsp): merge allOf table key completions by @ya7010 in tombi-toml/tombi#1959 * fix(vscode): color TOML dates as constants by @ya7010 in tombi-toml/tombi#1960 ### 🛠️ Other Changes * fix(lsp): complete literal keys in tables by @ya7010 in tombi-toml/tombi#1958 **Full Changelog**: tombi-toml/tombi@v1.1.4...v1.1.5 ### v1.1.6 <!-- Release notes generated using configuration in .github/release.yml at v1.1.6 --> ## What's Changed ### 🚀 New Features * feat: include target in CLI version output by @ya7010 in tombi-toml/tombi#1974 ### 🐛 Bug Fixes * fix: remove npm install script from tombi package by @ya7010 in tombi-toml/tombi#1969 ### 🛠️ Other Changes * Fix Windows release CRT linkage by @ya7010 in tombi-toml/tombi#1961 * ci: use shared release environment by @ya7010 in tombi-toml/tombi#1962 * Deprecate legacy document-link feature toggles by @ya7010 in tombi-toml/tombi#1965 * docs: add v2 release todo by @ya7010 in tombi-toml/tombi#1966 * chore: bump biome $schema to match pinned CLI 2.3.8 by @EduardF1 in tombi-toml/tombi#1967 * Align release build settings by @ya7010 in tombi-toml/tombi#1972 * fix: update vulnerable npm dependencies by @ya7010 in tombi-toml/tombi#1973 ## New Contributors * @EduardF1 made their first contribution in tombi-toml/tombi#1967 **Full Changelog**: tombi-toml/tombi@v1.1.5...v1.1.6 ### v1.1.7 <!-- Release notes generated using configuration in .github/release.yml at v1.1.7 --> ## What's Changed ### 🦅 New Features * Apply quote style to string keys by @ya7010 in tombi-toml/tombi#1980 * Support JSON schema `deprecationMessage` by @ya7010 in tombi-toml/tombi#1986 ### 🐝 Bug Fixes * Fix nested anyOf hover enum selection by @ya7010 in tombi-toml/tombi#1979 ### 🛠️ Other Changes * Update issue template emoji by @ya7010 in tombi-toml/tombi#1975 * Fix anyOf hover enum leakage by @ya7010 in tombi-toml/tombi#1976 * ci: validate winget manifest before submission by @ya7010 in tombi-toml/tombi#1977 * Improve formatting edit debug log by @ya7010 in tombi-toml/tombi#1978 * ci: harden winget manifest invocation check by @ya7010 in tombi-toml/tombi#1981 * ci: validate winget manifest leaf directory by @ya7010 in tombi-toml/tombi#1982 * ci: ignore winget manifest validation warnings by @ya7010 in tombi-toml/tombi#1983 * Fix root `$ref` schema completion by @kjanat in tombi-toml/tombi#1984 **Full Changelog**: tombi-toml/tombi@v1.1.6...v1.1.7 ### v1.2.0 <!-- Release notes generated using configuration in .github/release.yml at v1.2.0 --> ## What's Changed ### 🚨 Breaking Changes * Send CLI diagnostics to stderr by @ya7010 in tombi-toml/tombi#1991 ### 🦅 New Features * Add release asset attestations by @ya7010 in tombi-toml/tombi#1993 ### 🐝 Bug Fixes * fix(lsp): clear diagnostics after document close if workspace-diagnostics is disabled by @ya7010 in tombi-toml/tombi#1998 ### 🛠️ Other Changes * ci: align release note category emoji by @ya7010 in tombi-toml/tombi#1990 * docs: document TOMBI_NO_COLOR by @ya7010 in tombi-toml/tombi#1997 * fix(lsp): avoid cloning document URIs by @ya7010 in tombi-toml/tombi#1999 **Full Changelog**: tombi-toml/tombi@v1.1.7...v1.2.0 </details> <details> <summary>zizmor: `1.26.1` → `1.27.0` (zizmorcore/zizmor)</summary> ### v1.27.0 ## New Features 🌈[🔗](https://docs.zizmor.sh/release-notes/#new-feartures) - zizmor now has experimental support for workflows that specify parallel steps. See [Usage - Parallel steps](https://docs.zizmor.sh/usage/#parallel-steps) for more information ([#2153](zizmorcore/zizmor#2153)) Enhancements 🌱[🔗](https://docs.zizmor.sh/release-notes/#enhancements) - zizmor's handling of paths is now more consistent, particularly when run on Windows ([#2163](zizmorcore/zizmor#2163)) - zizmor now emits a helpful warning when being run in implicit offline mode ([#2180](zizmorcore/zizmor#2180)) ## Bug Fixes 🐛[🔗](https://docs.zizmor.sh/release-notes/#bug-fixes) - Fixed a bug where the [secrets-outside-env](https://docs.zizmor.sh/audits/#secrets-outside-env) audit would not honor ignore comments within the same job scope ([#2157](zizmorcore/zizmor#2157)) - Fixed a bug where the [ref-version-mismatch](https://docs.zizmor.sh/audits/#ref-version-mismatch) audit would not honor ignore comments within the same steps scope ([#2177](zizmorcore/zizmor#2177)) - Fixed a bug where `--collect=[MODE]` was not correctly handled when auditing remote inputs ([#2185](zizmorcore/zizmor#2185)) </details> </details> Modified files: - `.mise.toml` Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Automated mise tool upgrades from local config. Updated tools: - `prek` Command: `mise upgrade --bump --local prek` <details> <summary>Version changelog (prek)</summary> | Tool | Requested | Installed | |------|-----------|-----------| | `prek` | `0.4.5` → `0.4.10` | `0.4.5` → `0.4.10` | </details> <details> <summary>Release notes (1 tools)</summary> <details> <summary>prek: `0.4.5` → `0.4.10` (j178/prek)</summary> ### v0.4.6 ## Release Notes Released on 2026-07-01. ### Enhancements - Verify managed toolchain downloads before installation ([#2229](j178/prek#2229)) - Add `PREK_DOCKER_NO_INIT` to opt-out Docker `--init` ([#2242](j178/prek#2242)) - Improve subprocess error messages ([#2257](j178/prek#2257)) - Split run concurrency knobs: `PREK_CONCURRENT_HOOKS` and `PREK_CONCURRENT_BATCHES` ([#2276](j178/prek#2276)) ### Performance - Avoid allocating markdown extensions per file ([#2245](j178/prek#2245)) - Avoid unchanged config tracking writes ([#2247](j178/prek#2247)) - Delay trailing whitespace output buffer ([#2244](j178/prek#2244)) - Prefilter VCS permalink lines ([#2253](j178/prek#2253)) - Skip unnecessary submodule updates during hook repo clone ([#2255](j178/prek#2255)) ### Documentation - Document `language_version` inferring for Python and Go ([#2241](j178/prek#2241)) ### Other changes - Refactor env var handling ([#2277](j178/prek#2277)) - Use `serde-saphyr` for YAML string quoting ([#2228](j178/prek#2228)) ### Contributors - @shaanmajid - @j178 ## Install prek 0.4.6 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.6/prek-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.6/prek-installer.ps1 | iex" ``` ### Install prebuilt binaries via Homebrew ```sh brew install prek ``` ## Download prek 0.4.6 | File | Platform | Checksum | |--------|----------|----------| | [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.6… (truncated) ### v0.4.8 ## Release Notes Released on 2026-07-04. ### Enhancements - Add default_env configuration ([#2288](j178/prek#2288)) - Rename `auto-update` to `update` ([#2286](j178/prek#2286)) ### Bug fixes - Fix progress collapse ordering ([#2291](j178/prek#2291)) - Fix progress insertion after collapsed rows ([#2292](j178/prek#2292)) ### Contributors - @j178 ## Install prek 0.4.8 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.8/prek-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.8/prek-installer.ps1 | iex" ``` ### Install prebuilt binaries via Homebrew ```sh brew install prek ``` ## Download prek 0.4.8 | File | Platform | Checksum | |--------|----------|----------| | [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-apple-darwin.tar.gz.sha256) | | [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.8/prek-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-x86_64-apple-darwin.tar.gz.sha256) | | [prek-aarch64-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-aarch64-pc-windows-msvc.zip.sha256) | | [prek-i686-pc-windows-msvc.zip](https://github.com/j178/prek/releases/download/v0.4.8/prek-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://github.com/j178/prek/releases/download/v0.4.8/prek-i686-pc-windows-msvc.zip.sha2… (truncated) ### v0.4.9 ## Release Notes Released on 2026-07-11. Note: This release changes the repository identity schema stored in cached hook environments. Existing hook environments will be invalidated, and prek will reinstall them automatically when needed. ### Enhancements - Preserve additional dependency order ([#2311](j178/prek#2311)) - Remove parallel Ruby gem installation ([#2307](j178/prek#2307)) - Warn for missing update repositories ([#2316](j178/prek#2316)) ### Bug fixes - Fix mixed workspace selectors ([#2306](j178/prek#2306)) - Fix try-repo local path resolution ([#2310](j178/prek#2310)) - Use resolved gem executable ([#2308](j178/prek#2308)) - Validate complete XML documents in check-xml ([#2312](j178/prek#2312)) ### Contributors - @j178 ## Install prek 0.4.9 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.9/prek-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.9/prek-installer.ps1 | iex" ``` ### Install prebuilt binaries via Homebrew ```sh brew install prek ``` ## Download prek 0.4.9 | File | Platform | Checksum | |--------|----------|----------| | [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.9/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.9/prek-aarch64-apple-darwin.tar.gz.sha256) | | [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.9/prek-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.9/prek-x86_64-apple-darwin.tar.gz.sha256) | | [prek-aarch64-pc… (truncated) ### v0.4.10 ## Release Notes Released on 2026-07-16. ### Enhancements - Add PHP language support ([#2314](j178/prek#2314)) - Add freeze option to update settings ([#2323](j178/prek#2323)) - Add tag filters to update configuration ([#2354](j178/prek#2354)) - Identify 'mts' and 'cts' as TypeScript files ([#2209](j178/prek#2209)) - Publish Alpine Docker images ([#2352](j178/prek#2352)) - Support builtin and meta in try-repo ([#2350](j178/prek#2350)) ### Bug fixes - Fix Python discovery order ([#2348](j178/prek#2348)) - Fix Windows progress rendering ([#2328](j178/prek#2328)) - Preserve configured repo values for updates ([#2324](j178/prek#2324)) - Scope synthetic `GIT_WORK_TREE` to git commands ([#2356](j178/prek#2356)) ### Documentation - Expand common workflows guide ([#2351](j178/prek#2351)) ### Contributors - @j178 ## Install prek 0.4.10 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.10/prek-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.10/prek-installer.ps1 | iex" ``` ### Install prebuilt binaries via Homebrew ```sh brew install prek ``` ## Download prek 0.4.10 | File | Platform | Checksum | |--------|----------|----------| | [prek-aarch64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.4.10/prek-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://github.com/j178/prek/releases/download/v0.4.10/prek-aarch64-apple-darwin.tar.gz.sha256) | | [prek-x86_64-apple-darwin.tar.gz](https://github.com/j178/prek/releases/download/v0.… (truncated) </details> </details> Modified files: - `.mise.toml` Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Summary
Adds SHA-256 verification for managed runtime downloads before extraction or installation.
Covered runtimes:
uvis intentionally not covered here, pending resolution of #1745.Closes #1744
Details
This adds shared checksum-verified download helpers and wires them into the managed runtime installers. The installer now downloads the archive or installer into a temporary file, verifies it against the checksum published by the runtime’s distribution source, and only extracts or installs after the digest matches.
Checksum sources:
SHASUMS256.txtfromnodejs.orgSHASUMS256.txtsha256from Go release metadata.sha256sidecars fromstatic.rust-lang.orgSHA256SUMSfrom the same rv-ruby release download location as the archive.zip.sha256sumsidecars from Deno downloadsFor SHA-256 hashing, this uses
aws-lc-rs, which was already present in the dependency graph through the existing TLS stack. This PR adds it as an explicit workspace dependency so the checksum helper can use its digest API directly, instead of adding a separate SHA-256 crate such assha2.Ruby mirrors
Ruby keeps the existing GitHub API metadata discovery behavior.
PREK_RUBY_MIRRORmay point at private/vetted/air-gapped mirrors, but mirrors must provide compatible Ruby archive assets plusSHA256SUMSfrom the same release download location.GITHUB_TOKENis only sent for exact HTTPS GitHub repository sources. Non-GitHub Ruby mirrors are used without GitHub authentication.Compatibility notes
Managed Deno downloads now require releases using the current
.zip.sha256sumsidecar naming. Denov2.1.0and newer use that layout. Older releases such asv2.0.0used a different sidecar naming pattern, and older1.xreleases may not be compatible with this verified managed-download path. Those versions can still be used via a separately installed system Deno.Managed Bun downloads require the release to provide
SHASUMS256.txt. That file exists for modern Bun releases, includingbun-v1.0.0; very old pre-1.0 releases may fail checksum metadata lookup and should use a system Bun if needed.Security model
This catches corrupted or unexpectedly changed download bytes before extraction/install.
It does not add an independent trust root. If an upstream release, mirror, checksum file, or distribution channel is compromised together with the archive, SHA-256 verification alone cannot detect that. Signature verification, where applicable, would be worthwhile future hardening.