Skip to content

refactor(installer): unify Vite+ setup into the global cli - #2611

Merged
fengmk2 merged 31 commits into
voidzero-dev:mainfrom
liangmiQwQ:liang/codex/refactor-installer
Sep 10, 2026
Merged

fengmk2 merged 31 commits into
voidzero-dev:mainfrom
liangmiQwQ:liang/codex/refactor-installer

Conversation

@liangmiQwQ

@liangmiQwQ liangmiQwQ commented Sep 5, 2026 •

Copy link
Copy Markdown
Collaborator

Close #2406
Close #2338
Close #2170

Bash installer, PowerShell installer, vp-setup.exe, and vp upgrade now share the target binary's setup code. Moving installation logic into vp reduces duplication and platform differences, and lets each new version own its setup changes.

Installers download and verify the target, then let it install itself. A completion marker makes setup run on first launch and retry after failure. This also lets old vp upgrade reach the new setup through its existing vp env setup --refresh call, while keeping its download and activation flow.

Setup always creates vpx and vpr shims, uses system-first mode when users decline Node.js management, and reports failures back to the installers.

Installers probe for self-setup support and fall back to the legacy implementations for older targets. Keeping those legacy installers accounts for the net line increase, even though the new scripts are much smaller (reduce more than 2500 line).

Here, “new” and “old” refer to the installers and vp implementations after and before this change. This PR does not change setup-vp. 🟢 indicates a supported compatibility path; it does not imply that every historical version combination has been tested.

Scenario Compatibility mechanism Status
Upgrade an existing Vite+ installation using the new install script The target binary installs itself, reuses the existing installation directory, and updates dependencies, current, and shims. 🟢
New install script → new vp Probes for vite-plus-self-setup-v1, then hands installation over to the target binary. 🟢
New install script → old vp Falls back to the retained legacy installer when the target does not support self-setup. 🟢
Old install script → new vp The old script’s existing env setup invocation triggers the new binary’s first-start setup. 🟢
Old vp upgrade → new vp The existing env setup --refresh call triggers in-place setup, preserving configuration and rollback history. 🟢
New vp upgrade → new vp, including same-version reinstalls Clears the target’s completion marker, then triggers setup through the refresh call. 🟢
Rollback between versions 0.3.0 and later Switches current and refreshes the environment through env setup --refresh. 🟢
setup-vp calling the new install script Preserves directory variables returned by source/dot-source. Calls that do not declare directory awareness default to ~/.vite-plus, keeping PATH consistent. 🟢
New vp-setup.exe → versions 0.3.0 and later Hands installation over to the target binary when self-setup is supported; otherwise uses the Rust legacy installer. 🟢

🤖 Generated with Codex

@netlify

netlify Bot commented Sep 5, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for viteplus-preview canceled.

Name Link
🔨 Latest commit 2e234c9
🔍 Latest deploy log https://app.netlify.com/projects/viteplus-preview/deploys/6aa01720f24c2e0008caed62

@liangmiQwQ liangmiQwQ added test: e2e Auto run e2e tests test: install-e2e run vite install e2e test test: create-e2e Run `vp create` e2e tests test: sfw labels Sep 5, 2026
@liangmiQwQ

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 5, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-05T11:50:25.849290Z 4179d59 Manual request
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 072785da3c

ℹ️ 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".

Comment thread crates/vp_global_cli/src/self_setup.rs Resolved
Comment thread crates/vp_global_cli/src/self_setup.rs Resolved
Comment thread packages/cli/install.ps1 Resolved
Comment thread crates/vp_global_cli/src/self_setup.rs Resolved
@liangmiQwQ

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 95c99baec5

ℹ️ 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".

Comment thread crates/vp_global_cli/src/self_setup.rs Resolved
Comment thread crates/vp_global_cli/src/self_setup.rs Resolved
@liangmiQwQ

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 013777b09d

ℹ️ 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".

Comment thread crates/vp_global_cli/src/self_setup.rs Resolved
Comment thread crates/vp_global_cli/src/self_setup.rs Resolved
Comment thread crates/vp_installer/src/main.rs Resolved
@liangmiQwQ

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🎉

Reviewed commit: 4179d59433

ℹ️ 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".

@liangmiQwQ
liangmiQwQ marked this pull request as ready for review September 5, 2026 13:48
@liangmiQwQ

Copy link
Copy Markdown
Collaborator Author

One left problem might be #1338 (comment), but it is not a big deal, this PR already copies the original behavior, this could be reconsidered after this merged.

@liangmiQwQ
liangmiQwQ requested a review from fengmk2 September 5, 2026 13:52
@liangmiQwQ liangmiQwQ added the preview-build Publish this PR's commits to the registry bridge as preview builds label Sep 6, 2026
@github-actions

github-actions Bot commented Sep 6, 2026 •

Copy link
Copy Markdown
Contributor

Registry bridge build (2e234c9)

Warning

This build is from the fork liangmiQwQ/vite-plus and has not been reviewed.
Installing it runs that code on your machine. Build log

This commit build is published to the registry bridge, which serves these as ordinary npm versions (every other package proxies to npmjs):

Package Version
vite-plus 0.0.0-commit.2e234c9c09eee604f13ad42c8252d329a3f31acd
@voidzero-dev/vite-plus-core 0.0.0-commit.2e234c9c09eee604f13ad42c8252d329a3f31acd

Install the Vite+ CLI built from this commit, then migrate a project:

# macOS / Linux
curl -fsSL https://github.com/raw/liangmiQwQ/vite-plus/2e234c9c09eee604f13ad42c8252d329a3f31acd/packages/cli/install.sh | VP_PR_VERSION=2611 bash
# Windows (PowerShell)
$env:VP_PR_VERSION="2611"; irm https://raw.githubusercontent.com/liangmiQwQ/vite-plus/2e234c9c09eee604f13ad42c8252d329a3f31acd/packages/cli/install.ps1 | iex

Or download the standalone Windows installer built from this commit:

Architecture Installer
x64 vp-setup-x86_64-pc-windows-msvc.exe
Arm64 vp-setup-aarch64-pc-windows-msvc.exe

GitHub requires you to sign in and downloads each installer as a ZIP artifact. Extract vp-setup.exe, then run it against this preview build:

.\vp-setup.exe --version "0.0.0-commit.2e234c9c09eee604f13ad42c8252d329a3f31acd" --registry "https://registry-bridge.viteplus.dev/"

After installing, upgrade the current project's vite-plus to this test build with:

vp migrate

Or point your package manager at the bridge registry https://registry-bridge.viteplus.dev/:

Package manager Registry config
npm / pnpm / Bun .npmrc: registry=https://registry-bridge.viteplus.dev/
Yarn (v2+) .yarnrc.yml: npmRegistryServer: "https://registry-bridge.viteplus.dev/"

Then pin the build (vite aliases to vite-plus-core; pnpm can use a catalog, npm an overrides entry):

{
  "devDependencies": {
    "vite-plus": "0.0.0-commit.2e234c9c09eee604f13ad42c8252d329a3f31acd",
    "vite": "npm:@voidzero-dev/vite-plus-core@0.0.0-commit.2e234c9c09eee604f13ad42c8252d329a3f31acd"
  }
}

@fengmk2 fengmk2 added preview-build Publish this PR's commits to the registry bridge as preview builds and removed preview-build Publish this PR's commits to the registry bridge as preview builds labels Sep 10, 2026

@fengmk2 fengmk2 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@liangmiQwQ LGTM!

@liangmiQwQ

Copy link
Copy Markdown
Collaborator Author

@liangmiQwQ LGTM!

I still have a local commit, it will be ready really soon and then you can merge it if there is no problem.

@liangmiQwQ
liangmiQwQ marked this pull request as draft September 10, 2026 13:16
@liangmiQwQ
liangmiQwQ marked this pull request as ready for review September 10, 2026 13:40
@liangmiQwQ

Copy link
Copy Markdown
Collaborator Author

@fengmk2 I'm ready for this.

@fengmk2
fengmk2 merged commit 40b9cb6 into voidzero-dev:main Sep 10, 2026
126 checks passed
@liangmiQwQ
liangmiQwQ deleted the liang/codex/refactor-installer branch September 10, 2026 14:26
Comment thread packages/cli/install.sh
if ! "$vp_bin" env on > /dev/null 2>&1; then
warn "Failed to record environment management preference."
fi
run_legacy_installer "$binary_source"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@liangmiQwQ When can the legacy logic be removed?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

@fengmk2 The legacy script is for when VP_VERSION is set to an old release that doesn't have self-setup feature.

The time to remove that depends on when we decide to stop supporting installing these legacy release

fengmk2 added a commit that referenced this pull request Sep 14, 2026
…in APIs (#2692)

`vp env use` now sets each package manager's version independently. This
release also adds Oxlint plugin APIs and fixes migration, installation,
and template extraction.

### Breaking Changes

#### Package-manager overrides

Direct package-manager commands no longer use `VP_PACKAGE_MANAGER`. Use
the matching version variable in shell profiles, CI jobs, and
Dockerfiles:

| Previous override for a direct command | New override |
| --- | --- |
| `VP_PACKAGE_MANAGER=npm@<version>` | `VP_NPM_VERSION=<version>` |
| `VP_PACKAGE_MANAGER=pnpm@<version>` | `VP_PNPM_VERSION=<version>` |
| `VP_PACKAGE_MANAGER=yarn@<version>` | `VP_YARN_VERSION=<version>` |
| `VP_PACKAGE_MANAGER=bun@<version>` | `VP_BUN_VERSION=<version>` |

`VP_PACKAGE_MANAGER` still selects the manager and version for `vp
install` and related commands. `vp env use pnpm@10` now changes only the
direct pnpm commands. To override `vp install`, set `VP_PACKAGE_MANAGER`
explicitly.

The old `.session-package-manager` file is no longer read or migrated.
Run `vp env use` again to create the new session files. Projects that
use only project pins or global defaults need no changes. See the
[environment guide](https://viteplus.dev/guide/env)
([#2658](#2658),
[#2659](#2659)), by
@liangmiQwQ.

#### Installer preferences

`VP_NODE_MANAGER` now controls only Node.js. Existing installations
retain saved preferences during upgrades, so `vp upgrade` needs no
configuration changes. For scripted installations, set `VP_PM_MANAGER`
to apply the same choice to package managers:

| Previous combined setting | New combined setting |
| --- | --- |
| `VP_NODE_MANAGER=no` | `VP_NODE_MANAGER=no VP_PM_MANAGER=no` |
| `VP_NODE_MANAGER=yes` | `VP_NODE_MANAGER=yes VP_PM_MANAGER=yes` |

Update installer commands in CI jobs and Dockerfiles. Use
`VP_NPM_MANAGER`, `VP_PNPM_MANAGER`, `VP_YARN_MANAGER`, or
`VP_BUN_MANAGER` for individual preferences. The interactive prompt
retains its combined choice. See the [installer variables
guide](https://viteplus.dev/guide/installer-env-vars)
([#2681](#2681)), by
@liangmiQwQ.

#### Vite DevTools

Projects that install `@vitejs/devtools` must update its dependency
range from `^0.4.0 || ^0.5.0` to `^0.7.1`. Projects without this
optional dependency need no changes. This requirement comes with the
Vite upgrade listed below.

### Highlights

- Installers and `vp upgrade` share setup behavior across platforms,
which simplifies maintenance. The installers retain support for older
releases ([#2611](#2611)),
by @liangmiQwQ.
- Custom Oxlint rules can import their APIs from
`vite-plus/lint/plugins` and `vite-plus/lint/plugins-dev`. `vp migrate`
updates supported existing imports
([#2328](#2328)), by
@fengmk2.
- `vp install` and `vp add` now honor `--ignore-scripts` for named
packages and managed global installations
([#2682](#2682)), by
@jong-kyung.
- `vp create` rejects malformed registry versions that could place
organization template files outside the cache directory
([#2665](#2665)), by
@fengmk2.

### Features

- The bundled tools update from `vite@8.2.2` to `vite@8.3.0` and from
`rolldown@1.2.7` to `rolldown@1.2.8`. They also update from
`oxlint@1.81.0` to `oxlint@1.82.0` and from `oxfmt@0.66.0` to
`oxfmt@0.67.0`. The new linter and formatter can flag code that passed
before. Run `vp fmt` after the upgrade if CI runs `vp check`
([#2670](#2670)), by
@fengmk2.

### Fixes & Enhancements

- `vp env pin` updates an active local `.nvmrc` and preserves its
comments. Use `--target nvmrc` to select this file explicitly
([#2676](#2676)), by
@ywenhao.
- `vp migrate` reports unsupported ESLint rules that it skips, so users
can review the missing checks
([#2689](#2689)), by
@yusuke99.
- `vp migrate` imports leftover tsdown configuration when a project
already uses Vite+
([#2646](#2646)), by
@TheAlexLichter.
- `vp migrate` accepts single-line JSON formatter configuration with a
final newline
([#2643](#2643)), by
@TheAlexLichter.
- `vp migrate` avoids a redundant `playwright` dependency when the
project already declares `@playwright/test`
([#2637](#2637)), by
@yusuke99.
- Newly scaffolded local generators honor `--no-interactive` and report
missing arguments without prompts. Existing generators need the updated
entrypoint
([#2677](#2677)), by
@SaKaNa-Y.
- `vp upgrade` installs its dependencies correctly when the installation
directory is inside a pnpm workspace
([#2644](#2644)), by
@fengmk2.
- Nested package-manager commands retain the selected Node runtime and
package-manager versions
([#2631](#2631)), by
@lyzno1.
- Built-in tools reuse the Node executable that starts the CLI. Editor
lint and format servers work when `node` is absent from `PATH`
([#2673](#2673)), by
@fengmk2.
- The npm command wrapper enables Node's compile cache before it loads
the CLI, which reduces repeated startup work
([#2648](#2648)), by
@pablog12.
- Package-manager commands suppress pnpm, npm, and supported Yarn update
notices. Yarn 4 daily tips are also hidden
([#2649](#2649),
[#2650](#2650),
[#2651](#2651)), by
@fengmk2.
- Invalid `package.json` errors include the affected file's path
([#2683](#2683)), by
@adamaveray.

### Docs

- The README task example uses the supported `env` field
([#2653](#2653)), by
@SaKaNa-Y.
- Migration guidance tells pnpm users to retain the generated `vite` and
`vitest` dependencies
([#2660](#2660)), by
@naokihaba.
- Lint and format guides explain root configuration and overrides for
monorepos. They clarify that nested configuration is not supported
([#2668](#2668)), by
@liangmiQwQ.

### Chore

- The repository removes unused Babel dependencies and the unused hooks
directory setter
([#2634](#2634),
[#2647](#2647)), by
@jong-kyung.
- CLI snapshot tests run across parallel jobs, and the pnpm 11 workspace
pack test excludes generated archives
([#2657](#2657),
[#2655](#2655)), by
@fengmk2.
- CI removes the unused Graphite optimization and adds Solid 2 ecosystem
coverage ([#2678](#2678),
[#2680](#2680)), by
@fengmk2.
- Release guidance clarifies validation and announcement procedures
([#2633](#2633)), by
@fengmk2.
- The runtime manager refreshes the signing keys for Node.js release
verification
([#2687](#2687)), by
@voidzero-guard[bot].

### Bundled Versions

| Tool | Version | Source |
| --- | --- | --- |
| `vite` | `8.3.0` |
[`434e8e9`](vitejs/vite@434e8e9)
|
| `rolldown` | `1.2.8` |
[`9704b56`](rolldown/rolldown@9704b56)
|
| `tsdown` | `0.23.0` | [npm](https://npmx.dev/package/tsdown/v/0.23.0)
|
| `vitest` | `4.1.11` | [npm](https://npmx.dev/package/vitest/v/4.1.11)
|
| `oxlint` | `1.82.0` | [npm](https://npmx.dev/package/oxlint/v/1.82.0)
|
| `oxlint-tsgolint` | `7.0.2001` |
[npm](https://npmx.dev/package/oxlint-tsgolint/v/7.0.2001) |
| `oxfmt` | `0.67.0` | [npm](https://npmx.dev/package/oxfmt/v/0.67.0) |

### Upgrade

```bash
vp upgrade
```

### New Contributors

@yusuke99, @pablog12, @SaKaNa-Y, @ywenhao, @adamaveray

**Full Changelog**:
v0.3.1...v0.3.2

---

Merging this PR will trigger the release workflow.

---------

Co-authored-by: voidzero-guard[bot] <278573678+voidzero-guard[bot]@users.noreply.github.com>
Co-authored-by: MK (fengmk2) <fengmk2@gmail.com>
fengmk2 added a commit that referenced this pull request Oct 14, 2026
> [!NOTE]
> This PR body was truncated due to platform limits.

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [ast-grep-config](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep) |
workspace.dependencies | minor | `0.40.1` → `0.50.0` |
| [ast-grep-core](https://ast-grep.github.io/)
([source](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep)) |
workspace.dependencies | minor | `0.40.1` → `0.50.0` |
| [ast-grep-language](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep) |
workspace.dependencies | minor | `0.40.1` → `0.50.0` |
| [brush-parser](https://github.com/proxy/redirect.github.com/reubeno/brush) |
workspace.dependencies | minor | `0.3.0` → `0.4.0` |
| [criterion](https://criterion-rs.github.io/book/index.html)
([source](https://github.com/proxy/redirect.github.com/criterion-rs/criterion.rs)) |
workspace.dependencies | minor | `0.7` → `0.8` |
| [css-module-lexer](https://github.com/proxy/redirect.github.com/web-infra-dev/rspack) |
workspace.dependencies | minor | `0.0.15` → `0.102.0` |
| [httpmock](https://github.com/proxy/redirect.github.com/httpmock/httpmock) |
workspace.dependencies | minor | `0.7` → `0.8` |
| [indoc](https://github.com/proxy/redirect.github.com/dtolnay/indoc) |
workspace.dependencies | patch | `2.0.7` → `2.0.8` |
| [js-semver](https://github.com/proxy/redirect.github.com/ryuapp/js-semver) |
workspace.dependencies | patch | `1.0.0` → `1.0.1` |
| [nix](https://github.com/proxy/redirect.github.com/nix-rust/nix) |
workspace.dependencies | minor | `0.30.1` → `0.31.0` |
| [pgp](https://github.com/proxy/redirect.github.com/rpgp/rpgp) | workspace.dependencies
| minor | `0.19.0` → `0.21.0` |
| [sha1](https://github.com/proxy/redirect.github.com/RustCrypto/hashes) |
workspace.dependencies | minor | `0.10.6` → `0.11.0` |
| [sha2](https://github.com/proxy/redirect.github.com/RustCrypto/hashes) |
workspace.dependencies | minor | `0.10.9` → `0.11.0` |
| [string_cache](https://github.com/proxy/redirect.github.com/servo/string-cache) |
workspace.dependencies | minor | `0.9.0` → `0.11.0` |
| [tokio-util](https://tokio.rs)
([source](https://github.com/proxy/redirect.github.com/tokio-rs/tokio)) |
workspace.dependencies | patch | `0.7.19` → `0.7.20` |
| [toml](https://github.com/proxy/redirect.github.com/toml-rs/toml) |
workspace.dependencies | patch | `1.1.6+spec-1.1.0` → `1.1.8` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the warning logs for
more information.

---

### Compatibility Changes

The migration code uses the `brush-parser` `0.4.0` constructor and
rewrites commands inside `coproc` bodies.

The script formatter preserves spaces before redirects after `[[ ...
]]`. This prevents invalid Bash scripts when migration rewrites another
command.

Hash assertions use `hex::encode` because the new `sha1` and `sha2`
digest types do not support `{:x}`.

The musl installer jobs pin Node.js to `24.21.0` because new Node.js
releases can precede their musl builds. A cached release index keeps the
published installer on the same version.

---

### Release Notes

<details>
<summary>ast-grep/ast-grep (ast-grep-config)</summary>

###
[`v0.50.0`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0500)

[Compare
Source](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/compare/0.45.3...0.50.0)

- feat(outline): add Java annotation type and element rules
[`#2955`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2955)
- fix(outline): report Java private/protected fields in the outline
[`#2950`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2950)
- feat(outline): add Java enum member rule
[`#2954`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2954)
- chore(deps): update dependency
[@&#8203;types/node](https://github.com/proxy/redirect.github.com/types/node) to v24.19.1
[`#2983`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2983)
- chore(deps): update dependency dprint to v0.60.1
[`#2984`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2984)
- feat(outline): add Java module declaration rule
[`#2956`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2956)
- chore(deps): update rust crate termimad to v0.35.5
[`#2925`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2925)
- chore(deps): update rust crate napi-derive to v3.6.10
[`#2936`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2936)
- chore(deps): update dependency
[@&#8203;napi-rs/cli](https://github.com/proxy/redirect.github.com/napi-rs/cli) to
v3.10.6
[`#2922`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2922)
- chore(deps): update dependency chalk to v6.0.1
[`#2979`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2979)
- chore(deps): update rust crate tokio to v1.53.2
[`#2981`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2981)
- chore(deps): update rust crate thiserror to v2.0.21
[`#2966`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2966)
- chore(deps): update dependency oxlint to v1.86.0
[`#2967`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2967)
- chore(deps): update rust crate smallvec to v1.16.2
[`#2968`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2968)
- feat(outline): add Java wildcard-import outline rules
[`#2948`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2948)
- fix(outline): capture C/C++ declarator identifier names
[`#2946`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2946)
- feat(cli): add trust and revoke custom language policies
[`#2972`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2972)
- refactor(cli): extract custom language policy
[`#2977`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2977)
- feat(cli): add custom language loading policy
[`#2971`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2971)
- fix(schema): reject null relation fields
[`#2969`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2969)
- chore(deps): update rust crate clap_complete to v4.6.11
[`#2965`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2965)
- chore(deps): update rust crate clap to v4.6.7
[`#2964`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2964)
- chore(deps): update rust crate napi to v3.13.0
[`#2932`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2932)
- chore(deps): update dependency
[@&#8203;types/node](https://github.com/proxy/redirect.github.com/types/node) to v24.13.6
[`#2941`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2941)
- feat(language): add Zig support
[`#2942`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2942)
- fix: require opt-in for custom language libraries
[`#2960`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2960)
- refactor: parse default run through app
[`#2962`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2962)
- feat(outline): add Java record_declaration rule
[`#2945`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2945)
- chore(deps): update rust crate toml_edit to v0.25.15
[`#2937`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2937)
- chore(deps): update rust crate smallvec to v1.16.1
[`#2920`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2920)
- chore(deps): update dependency
[@&#8203;types/node](https://github.com/proxy/redirect.github.com/types/node) to v24.13.4
[`#2931`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2931)
- chore(deps): update dependency dprint to v0.57.4
[`#2926`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2926)
- chore(deps): update dependency oxlint to v1.82.0
[`#2928`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2928)
- chore(deps): update dependency oxlint to v1.81.0
[`#2919`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2919)
- chore(deps): update rust crate termimad to v0.35.3
[`#2921`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2921)
- chore(deps): update dependency dprint to v0.57.1
[`#2923`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2923)
- chore(deps): update dependency
[@&#8203;ast-grep/napi](https://github.com/proxy/redirect.github.com/ast-grep/napi) to
v0.45.3
[`#2918`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2918)
- feat(outline): add Java record_declaration rule
([#&#8203;2945](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2945))
[`#2944`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2944)

###
[`v0.45.3`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0453)

[Compare
Source](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/compare/0.45.2...0.45.3)

> 30 August 2026

- chore(deps): update dependency dprint to v0.57.0
[`#2916`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2916)
- feat: add min-severity cli
[`#2917`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2917)
- fix(outline): anchor fallback signatures to names
[`#2913`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2913)
- feat(outline): add Markdown heading support
[`#2912`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2912)
- chore(deps): update dependency oxlint to v1.80.0
[`#2908`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2908)
- chore(deps): update dependency
[@&#8203;ast-grep/napi](https://github.com/proxy/redirect.github.com/ast-grep/napi) to
v0.45.2
[`#2906`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2906)
- feat: add min-severity cli
([#&#8203;2917](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2917))
[`#2720`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2720)
- fix: ast-grep-ignore must be at first be the frist alphabet to take
effect
[`#2909`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2909)
- chore: update tree-sitter 0.27
[`bb74529`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/bb745292b5e683822c27612858b5b0edb54e273e)
- fix: fix clippy
[`c6b32d7`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/c6b32d74ad12cea690cb331c88f004764df6e985)

###
[`v0.45.2`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0452)

[Compare
Source](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/compare/0.45.1...0.45.2)

> 23 August 2026

- chore(deps): update astral-sh/setup-uv action to v10
[`#2892`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2892)
- chore(deps): update rust crate terminal-light to v1.9.1
[`#2905`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2905)
- chore(deps): update dependency web-tree-sitter to v0.26.13
[`#2903`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2903)
- chore(deps): update rust crate tree-sitter to v0.26.13
[`#2904`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2904)
- chore(deps): update dependency dprint to v0.56.1
[`#2901`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2901)
- chore(deps): update dependency
[@&#8203;napi-rs/cli](https://github.com/proxy/redirect.github.com/napi-rs/cli) to v3.8.6
[`#2882`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2882)
- fix(deps): update rust-wasm-bindgen monorepo
[`#2878`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2878)
- chore(deps): update dependency dprint to v0.56.0
[`#2896`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2896)
- chore(deps): update dependency oxlint to v1.79.0
[`#2897`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2897)
- chore(deps): update dependency
[@&#8203;ast-grep/napi](https://github.com/proxy/redirect.github.com/ast-grep/napi) to
v0.45.1
[`#2876`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2876)
- chore(deps): update dependency web-tree-sitter to v0.26.12
[`#2880`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2880)
- fix: exit quietly on broken pipe instead of erroring
[`#2887`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2887)
- feat(outline): extract embedded language symbols
[`#2883`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2883)
- chore(deps): update dependency oxlint to v1.78.0
[`#2888`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2888)
- feat: add namedChildren support to wasm
[`#2893`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2893)
- feat: add namedChildren to napi
[`#2893`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2893)
- feat: add named_children to pyo3
[`4dc0d36`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/4dc0d3605ac027e45f5feb811966fe7b8220d246)
- fix: bump down napi
[`61f1b98`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/61f1b98cc2379b9a6d37173257612b5aac3473da)
- chore: bump deps
[`912da32`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/912da3272afd258ec464ee8c2e52d19059a620e4)

###
[`v0.45.1`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0451)

[Compare
Source](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/compare/0.45.0...0.45.1)

> 7 August 2026

- fix: match root metavariables against comments
[`#2868`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2868)
- feat(outline): add C# multiline member signatures
[`#2861`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2861)
- chore(deps): update rust crate ignore to v0.4.32
[`#2864`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2864)
- chore(deps): update dependency oxlint to v1.77.0
[`#2865`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2865)
- chore(deps): update dependency typescript to v7
[`#2833`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2833)
- chore(deps): update astral-sh/setup-uv action to v9
[`#2839`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2839)
- chore(deps): update dependency smol-toml to v1.7.1
[`#2848`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2848)
- chore(deps): update dependency
[@&#8203;napi-rs/cli](https://github.com/proxy/redirect.github.com/napi-rs/cli) to v3.8.2
[`#2854`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2854)
- chore(deps): update dependency chalk to v6
[`#2849`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2849)
- chore(deps): update rust crate clap to v4.6.5
[`#2860`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2860)
- chore(deps): update rust crate clap_complete to v4.6.8
[`#2850`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2850)
- chore(deps): update rust crate schemars to v1.2.2
[`#2851`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2851)
- chore(deps): update dependency oxlint to v1.76.0
[`#2852`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2852)
- chore(deps): update rust crate napi to v3.12.0
[`#2855`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2855)
- chore(deps): update rust crate napi-derive to v3.6.2
[`#2853`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2853)
- Use `std::io::IsTerminal` over `atty`
[`#2857`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2857)
- chore(deps): update dependency
[@&#8203;ast-grep/napi](https://github.com/proxy/redirect.github.com/ast-grep/napi) to
v0.45.0
[`#2844`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2844)
- chore: bump deps
[`2ac18ca`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/2ac18ca571a5d6a50dd549d7bf9b0cb704f0dd87)

###
[`v0.45.0`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0450)

[Compare
Source](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/compare/0.44.1...0.45.0)

> 23 July 2026

- feat: deprecate the sg command
[`#2843`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2843)
- fix: avoid Defender false positive for Windows sg
[`#2842`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2842)
- chore(deps): update dependency
[@&#8203;napi-rs/cli](https://github.com/proxy/redirect.github.com/napi-rs/cli) to v3.7.4
[`#2834`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2834)
- chore(deps): update dependency oxlint to v1.75.0
[`#2838`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2838)
- chore(deps): update actions/setup-node action to v7
[`#2810`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2810)
- chore(deps): update actions/setup-python action to v7
[`#2829`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2829)
- fix: specify correct MSRV in Cargo.toml
[`#2837`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2837)
- Revert "chore(deps): update dependency typescript to v7
([#&#8203;2795](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2795))"
[`#2831`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2831)
- chore(deps): update astral-sh/setup-uv action to v8.3.2
[`#2790`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2790)
- chore(deps): update dependency typescript to v7
[`#2795`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2795)
- chore(deps): update rust crate thiserror to v2.0.19
[`#2819`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2819)
- chore(deps): update dependency
[@&#8203;napi-rs/cli](https://github.com/proxy/redirect.github.com/napi-rs/cli) to v3.7.3
[`#2801`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2801)
- chore(deps): update dependency web-tree-sitter to v0.26.11
[`#2802`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2802)
- chore(deps): update rust crate target-triple to v1.0.1
[`#2817`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2817)
- chore(deps): update dependency oxlint to v1.74.0
[`#2809`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2809)
- chore(deps): update dependency dprint to v0.55.2
[`#2808`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2808)
- chore(deps): update dependency
[@&#8203;ast-grep/napi](https://github.com/proxy/redirect.github.com/ast-grep/napi) to
v0.44.1
[`#2789`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2789)
- chore(deps): update dependency oxlint to v1.73.0
[`#2793`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2793)
- chore(deps): update dependency
[@&#8203;types/node](https://github.com/proxy/redirect.github.com/types/node) to v24.13.3
[`#2794`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2794)
- chore(deps): update rust crate bit-set to 0.11.0
[`#2791`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2791)
- fix: use is_extra instead of comment heuristic
[`#2821`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2821)
- fix: stop using ignore files outside rule_dirs
[`#2803`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2803)
- chore: update dependencies
[`b24ca85`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/b24ca85a7aa5aa3e0925da575e8800209f918421)
- feat(outline): support ambient TypeScript modules
[`4f75c21`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/4f75c214094e46d0d3f026674027036459840d61)
- chore: bump versions
[`82eb291`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/82eb2916782ae5ed572813272f5845214b5aa321)

###
[`v0.44.1`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0441)

[Compare
Source](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/compare/0.44.0...0.44.1)

> 4 July 2026

- chore(deps): update rust crate napi to v3.10.3
[`#2786`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2786)
- chore(deps): update rust crate napi-derive to v3.5.9
[`#2785`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2785)
- chore(deps): update dependency oxlint to v1.72.0
[`#2780`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2780)
- chore(deps): update rust crate terminal-light to v1.9.0
[`#2781`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2781)
- chore(deps): update rust crate clap_complete to v4.6.7
[`#2783`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2783)
- chore(deps): update rust crate ignore to v0.4.27
[`#2784`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2784)
- fix(cli): bound outline file queue
[`#2787`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2787)
- chore(deps): update rust crate clap_complete to v4.6.6
[`#2782`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2782)
- chore(deps): update dependency
[@&#8203;ast-grep/napi](https://github.com/proxy/redirect.github.com/ast-grep/napi) to
v0.44.0
[`#2764`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2764)
- chore(deps): update rust crate tree-sitter to v0.26.10
[`#2779`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2779)
- chore(deps): update dependency web-tree-sitter to v0.26.10
[`#2778`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2778)
- chore(deps): update dependency dprint to v0.55.1
[`#2776`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2776)
- chore(deps): update dependency
[@&#8203;napi-rs/cli](https://github.com/proxy/redirect.github.com/napi-rs/cli) to v3.7.2
[`#2667`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2667)
- chore(deps): update rust crate napi to v3.9.4
[`#2696`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2696)
- chore(deps): update rust crate napi-derive to v3.5.7
[`#2768`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2768)
- chore(deps): update rust crate anyhow to v1.0.103
[`#2774`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2774)
- feat: load custom language outline rules from config
[`#2777`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2777)
- fix(deps): update rust-wasm-bindgen monorepo
[`#2775`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2775)
- chore(deps): update actions/cache action to v6
[`#2767`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2767)
- feat: Support \*.bazel files in python
[`#2771`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2771)
- chore(deps): update oxlint monorepo
[`#2765`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2765)
- feat: add outline rules for more builtin languages
[`07778fb`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/07778fb326765363557811d5b24e901399bfbdec)
- fix: update pyo3 deps
[`1713e86`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/1713e86fd5960accbe59532eafaf307c6330b303)

###
[`v0.44.0`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0440)

[Compare
Source](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/compare/0.43.0...0.44.0)

> 21 June 2026

- chore: move outline docs and benchmarks out of repo
[`#2763`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2763)
- chore(deps): update dependency smol-toml to v1.7.0
[`#2762`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2762)
- Add JavaScript outline rules and stream JSON files
[`#2761`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2761)
- fix: reject root multi-metavariable patterns
[`#2727`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2727)
- fix: don't leak metavar bindings across siblings in nthChild ofRule
[`#2677`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2677)
- fix: extract python from-import modules in outline
[`#2758`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2758)
- fix: match go outline types by declaration
[`#2759`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2759)
- fix: skip empty files in outline
[`#2757`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2757)
- feat: mark duplicate outline names
[`#2756`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2756)
- refactor: inline outline member kind lookup
[`#2755`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2755)
- refactor: make outline extract return iterator
[`#2754`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2754)
- refactor: stream outline extraction items
[`#2753`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2753)
- perf: use single traversal for outline extraction
[`#2751`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2751)
- perf: cache transform replace regexes
[`#2750`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2750)
- fix: don't leak metavar bindings from a negated `not` rule
[`#2676`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2676)
- refactor: fold outline extract options into extractors
[`#2749`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2749)
- refactor: split outline extract options and style
[`#2748`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2748)
- refactor: map outline cli to core options
[`#2747`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2747)
- feat: apply outline extractor options
[`#2746`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2746)
- feat: add outline extractor options
[`#2745`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2745)
- fix: simplify some code
[`#2744`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2744)
- fix: trailing ast-grep-ignore on a multi-line statement suppresses it
[`#2678`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2678)
- chore(deps): update actions/checkout action to v7
[`#2731`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2731)
- fix: cover async rust outline rules
[`#2743`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2743)
- feat: add bundled outline rules for more languages
[`#2739`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2739)
- feat: add outline CLI command
[`#2738`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2738)
- perf: use cursor-backed outline traversal
[`#2737`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2737)
- feat: run outline extractors
[`#2729`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2729)
- chore(deps): update oxlint monorepo to v1.70.0
[`#2726`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2726)
- refactor: split fixer variable validation
[`#2724`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2724)
- refactor: validate rule core directly
[`#2723`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2723)
- test: move matcher tests to rule core
[`#2722`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2722)
- refactor: wrap rewriter config errors
[`#2721`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2721)
- test: validate global rule fix vars via rule config
[`#2719`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2719)
- fix: check undefined meta var in fix
[`#2718`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2718)
- **Breaking change:** fix: remove fix from SerializableCore
[`#2717`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2717)
- fix: preserve unused suppression fixer
[`#2716`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2716)
- **Breaking change:** refactor: move optional fixer to RuleConfig
[`#2715`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2715)
- fix: add fixer var check
[`#2714`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2714)
- Refactor rule config
[`#2713`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2713)
- **Breaking change:** refactor: mvoe rewriters into
SerializableRuleCore
[`#2711`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2711)
- refactor: move rewriter out
[`#2712`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2712)
- feat: add outline rule schema
[`#2710`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2710)
- docs: remove outline target alias fields
[`#2709`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2709)
- chore(deps): update rust crate smallvec to v1.15.2
[`#2701`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2701)
- fix(deps): update rust-wasm-bindgen monorepo
[`#2704`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2704)
- fix: remove unused trait/methods
[`#2708`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2708)
- feat: add outline entry model
[`#2703`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2703)
- refactor: remove legacy outline placeholders
[`#2702`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2702)
- feat: add outline CLI shell
[`#2700`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2700)
- fix(deps): update rust-wasm-bindgen monorepo
[`#2693`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2693)
- chore(deps): update oxlint monorepo to v1.69.0
[`#2692`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2692)
- chore(deps): update rust crate regex to v1.12.4
[`#2694`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2694)
- chore(deps): update dependency
[@&#8203;types/node](https://github.com/proxy/redirect.github.com/types/node) to v24.13.2
[`#2698`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2698)
- doc: design outline command
[`#2699`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2699)
- Outline first builtin rule
[`#2695`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2695)
- chore(deps): update rust crate tree-sitter-swift to v0.7.3
[`#2672`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2672)
- chore(deps): update astral-sh/setup-uv action to v8.2.0
[`#2680`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2680)
- feat: add outline rule definition
[`#2691`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2691)
- feat: add outline item model
[`#2690`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2690)
- chore(deps): update codecov/codecov-action action to v7
[`#2686`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2686)
- feat: add outline command stub
[`#2689`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2689)
- chore(deps): update dependency
[@&#8203;types/node](https://github.com/proxy/redirect.github.com/types/node) to v24.13.1
[`#2682`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2682)
- chore(deps): update rust crate ignore to v0.4.26
[`#2683`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2683)
- fix: remove all impl, start from scratch
[`#2688`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2688)
- fix: remove all impl, start from scratch
[`#2687`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2687)
- fix: report unfixable scan hits with update-all
[`#2684`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2684)
- Fix typos in comments and grammar in --help text
[`#2674`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2674)
- chore(deps): update dependency oxlint to v1.68.0
[`#2673`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2673)
- fix: don't leak metavar bindings from ellipsis-end lookahead
[`#2670`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2670)
- refactor: collapse nested ifs with let chains
[`#2671`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2671)
- chore(deps): update rust crate toml_edit to v0.25.12
[`#2666`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2666)
- chore(deps): update dependency oxlint to v1.67.0
[`#2665`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2665)
- chore(deps): update dependency
[@&#8203;ast-grep/napi](https://github.com/proxy/redirect.github.com/ast-grep/napi) to
v0.43.0
[`#2664`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2664)
- add benchmark
[`b488bd3`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/b488bd3ea1fbd62e354831ab3b6bf71439e6e004)
- vibe
[`6f89a3d`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/6f89a3d8b9260666908b68007dff487b599d1a95)
- fix: update outline rule loading
[`202d8b8`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/202d8b89ddadaa6e1d30eefcc0136b83d98b5222)

###
[`v0.43.0`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0430)

[Compare
Source](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/compare/0.42.3...0.43.0)

> 25 May 2026

- chore(deps): update dependency
[@&#8203;types/node](https://github.com/proxy/redirect.github.com/types/node) to v24.12.4
[`#2636`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2636)
- chore(deps): update rust crate assert_cmd to v2.2.2
[`#2632`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2632)
- chore(deps): update rust crate similar to v3.1.1
[`#2662`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2662)
- fix(lsp): initialize tracing subscriber to surface tower-lsp errors
[`#2639`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2639)
- fix(deps): update rust-wasm-bindgen monorepo
[`#2660`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2660)
- chore(deps): update rust crate tree-sitter to v0.26.9
[`#2656`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2656)
- chore(deps): update rust crate serde_json to v1.0.150
[`#2659`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2659)
- chore(deps): update rust crate clap_complete to v4.6.5
[`#2634`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2634)
- chore(deps): update dependency
[@&#8203;ast-grep/napi](https://github.com/proxy/redirect.github.com/ast-grep/napi) to
v0.42.3
[`#2653`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2653)
- chore(deps): update dependency oxlint to v1.66.0
[`#2651`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2651)
- chore(deps): update dependency web-tree-sitter to v0.26.9
[`#2654`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2654)
- fix: strip trailing comment artifact in comment suppression
[`#2644`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2644)
- feat: support ESQuery style selector in run command
[`#2663`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2663)
- feat: add --follow arg for sg test
[`#2657`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2657)
- test: add test for run --kind
[`d0d0b30`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/d0d0b3003e19593c16dd91c9e26d77567971e477)
- feat: add markdown support
[`beacc9e`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/beacc9e40c81e33bb3f94298e4a5b6cb046c0d56)
- fix: use Rule instead of pattern in run
[`2759fda`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/2759fdaeb9e15264276b8671a565d591d93e8e36)

###
[`v0.42.3`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0423)

[Compare
Source](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/compare/0.42.2...0.42.3)

> 19 May 2026

- feat: support nth-last-child esquery
[`#2631`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2631)
- chore(deps): update rust crate dashmap to v6.2.1
[`#2645`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2645)
- chore(deps): update dependency oxlint to v1.65.0
[`#2635`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2635)
- chore(deps): update rust crate napi-derive to v3.5.6
[`#2642`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2642)
- chore(deps): update rust crate napi-build to v2.3.2
[`#2641`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2641)
- chore(deps): update rust crate napi to v3.9.0
[`#2643`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2643)
- chore(deps): update dependency
[@&#8203;ast-grep/napi](https://github.com/proxy/redirect.github.com/ast-grep/napi) to
v0.42.2
[`#2630`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2630)
- fix: fix windows installation
[`4021ae0`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/4021ae076f15ae6833d6e69f6429555071b4eac8)

###
[`v0.42.2`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0422)

[Compare
Source](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/compare/0.42.1...0.42.2)

> 10 May 2026

- chore(deps): update rust crate tokio to v1.52.3
[`#2620`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2620)
- fix(deps): update rust-wasm-bindgen monorepo
[`#2623`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2623)
- chore(deps): update rust crate clap_complete to v4.6.4
[`#2627`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2627)
- chore(deps): update dependency
[@&#8203;types/node](https://github.com/proxy/redirect.github.com/types/node) to v24.12.3
[`#2624`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2624)
- chore(deps): update rust crate tree-sitter-swift to v0.7.2
[`#2619`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2619)
- chore(deps): update dependency oxlint to v1.63.0
[`#2621`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2621)
- fix: replace postinstall script with binary resolution in ast-grep
[`#2595`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2595)
- fix(lsp): use cwd instead of config dir as workspace fallback
[`#2600`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2600)
- fix(deps): update rust-wasm-bindgen monorepo
[`#2613`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2613)
- chore(deps): update rust crate napi-derive to v3.5.5
[`#2615`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2615)
- chore(deps): update rust crate napi to v3.8.6
[`#2614`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2614)
- chore(deps): update rust crate clap_complete to v4.6.3
[`#2610`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2610)
- chore(deps): update dependency oxlint to v1.62.0
[`#2611`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2611)
- chore(deps): update astral-sh/setup-uv action to v8
[`#2604`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2604)
- chore(deps): update rust crate tree-sitter-c to v0.24.2
[`#2608`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2608)
- fix(deps): update rust crate tree-sitter-dart to 0.2.0
[`#2609`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2609)
- chore(deps): update robinraju/release-downloader action to v1.13
[`#2606`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2606)
- fix(lsp): report unused suppressions without rules
[`#2607`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2607)
- chore(deps): update rust crate clap_complete to v4.6.2
[`#2589`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2589)
- chore(deps): update dependency oxlint to v1.61.0
[`#2605`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2605)
- chore(deps): update rust crate similar to v3.1.0
[`#2587`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2587)
- fix(deps): update rust crate tree-sitter-scala to 0.26.0
[`#2602`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2602)
- chore(deps): update rust crate tree-sitter-scala to v0.25.1
[`#2601`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2601)
- chore(deps): update rust crate tree-sitter-c-sharp to v0.23.5
[`#2591`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2591)
- chore(deps): update dependency oxlint to v1.60.0
[`#2588`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2588)
- chore(deps): update rust crate assert_cmd to v2.2.1
[`#2599`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2599)
- chore(deps): update dependency typescript to v6.0.3
[`#2598`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2598)
- chore(deps): update dependency
[@&#8203;napi-rs/cli](https://github.com/proxy/redirect.github.com/napi-rs/cli) to v3.6.2
[`#2593`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2593)
- chore(deps): update rust crate napi-derive to v3.5.4
[`#2597`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2597)
- chore(deps): update rust crate napi to v3.8.5
[`#2596`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2596)
- chore(deps): update rust crate tokio to v1.52.1
[`#2592`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2592)
- chore(deps): update rust crate clap to v4.6.1
[`#2594`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2594)
- chore(deps): update pyo3/maturin-action action to v1.51.0
[`#2510`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2510)
- fix(deps): update rust-wasm-bindgen monorepo
[`#2568`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2568)
- chore(deps): update dependency
[@&#8203;napi-rs/cli](https://github.com/proxy/redirect.github.com/napi-rs/cli) to v3.6.1
[`#2583`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2583)
- chore(deps): update dependency
[@&#8203;ast-grep/napi](https://github.com/proxy/redirect.github.com/ast-grep/napi) to
v0.42.1
[`#2580`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2580)
- chore(deps): update dependency oxlint to v1.59.0
[`#2581`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2581)
- chore(deps): update rust crate toml_edit to v0.25.11
[`#2582`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2582)
- chore(deps): update rust crate tokio to v1.51.1
[`#2584`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2584)
- chore(deps): update dependency dprint to v0.54.0
[`#2585`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2585)
- chore(deps): update rust crate clap_complete to v4.6.1
[`#2586`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2586)
- chore(deps): update dependency
[@&#8203;types/node](https://github.com/proxy/redirect.github.com/types/node) to v24.12.2
[`#2579`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2579)
- fix: enable npx install fallback but still keep postinstall
[`fbc5b9b`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/fbc5b9b67d7f7f4e86406a7fcf491cbfab327098)
- chore: bump kotlin version
[`6f09a5b`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/6f09a5b02dc95ab083b614b4d972059b9afe3a23)
- fix: solve linting
[`945328a`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/945328aa3157370ce8fcc207358e29490d257fb6)

###
[`v0.42.1`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0421)

[Compare
Source](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/compare/0.42.0...0.42.1)

> 4 April 2026

- feat: Support Dart again
[`#2534`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2534)
- chore(deps): update dependency oxlint to v1.58.0
[`#2569`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2569)
- chore(deps): update rust crate toml_edit to v0.25.10
[`#2571`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2571)
- fix(deps): update rust crate similar to v3
[`#2574`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2574)
- chore(deps): update rust crate tokio to v1.51.0
[`#2578`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2578)
- chore(deps): update dependency web-tree-sitter to v0.26.8
[`#2570`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2570)
- chore(deps): update rust crate tree-sitter to v0.26.8
[`#2572`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2572)
- chore(deps): update dependency dprint to v0.53.2
[`#2573`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2573)
- chore(deps): update rust crate bit-set to 0.10.0
[`#2566`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2566)
- fix(deps): update rust-wasm-bindgen monorepo
[`#2561`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2561)
- chore(deps): update dependency smol-toml to v1.6.1
[`#2556`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2556)
- chore(deps): update rust crate napi to v3.8.4
[`#2562`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2562)
- chore(deps): update rust crate toml_edit to v0.25.8
[`#2552`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2552)
- chore(deps): update rust crate napi-derive to v3.5.3
[`#2563`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2563)
- chore(deps): update codecov/codecov-action action to v6
[`#2560`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2560)
- chore(deps): update rust crate tree-sitter-rust to v0.24.2
[`#2554`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2554)
- chore(deps): update dependency
[@&#8203;napi-rs/cli](https://github.com/proxy/redirect.github.com/napi-rs/cli) to v3.6.0
[`#2564`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2564)
- chore(deps): update dependency dprint to v0.53.1
[`#2559`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2559)
- chore(deps): update dependency oxlint to v1.57.0
[`#2549`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2549)
- chore(deps): update dependency typescript to v6
[`#2557`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2557)
- Added a license field to package.json so scanners can pick it up more
easily
[`#2558`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2558)
- feat: add --color flag to test command
[`#2555`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2555)
- chore(deps): update dependency
[@&#8203;ast-grep/napi](https://github.com/proxy/redirect.github.com/ast-grep/napi) to
v0.42.0
[`#2548`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2548)
- feat: add new built in rule no-suppress-all
[`#2575`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2575)
- fix: fix SIGSEGV caused by SharedReference stackoverflow
[`#2553`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2553)
- fix: update ts
[`7fa0e3f`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/7fa0e3f3fc4cb2a6a9daca48ddc132ef0310a773)
- refactor: use more concise style object to manage test output
[`a017fd5`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/a017fd5133982dc725ef817c8ef0fe80eaafa6b5)
- refactor: some code clean up for no-suppress
[`ef7fc1a`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/ef7fc1a91843c8061eda21d50bc88157e89576aa)

###
[`v0.42.0`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0420)

[Compare
Source](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/compare/0.41.1...0.42.0)

> 15 March 2026

- chore(deps): update dependency dprint to v0.53.0
[`#2547`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2547)
- chore(deps): update rust crate tree-sitter to v0.26.7
[`#2541`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2541)
- chore(deps): update dependency web-tree-sitter to v0.26.7
[`#2540`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2540)
- chore(deps): update dependency
[@&#8203;types/node](https://github.com/proxy/redirect.github.com/types/node) to v24.12.0
[`#2518`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2518)
- fix(deps): update rust crate tree-sitter-lua to 0.5.0
[`#2506`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2506)
- chore(deps): update rust crate clap to v4.6.0
[`#2538`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2538)
- fix(deps): update rust crate tree-sitter-scala to 0.25.0
[`#2536`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2536)
- chore(deps): update dependency oxlint to v1.55.0
[`#2533`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2533)
- chore(deps): update rust crate clap_complete to v4.6.0
[`#2539`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2539)
- chore(deps): update rust crate bit-set to v0.9.1
[`#2537`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2537)
- chore(deps): update rust crate bit-set to 0.9.0
[`#2527`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2527)
- chore(deps): update rust crate assert_cmd to v2.2.0
[`#2529`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2529)
- chore(deps): update rust crate tempfile to v3.27.0
[`#2531`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2531)
- fix(lsp): scan injected languages for diagnostics
[`#2528`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2528)
- chore(deps): update dependency
[@&#8203;ast-grep/napi](https://github.com/proxy/redirect.github.com/ast-grep/napi) to
v0.41.1
[`#2526`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2526)
- chore(deps): update dependency oxlint to v1.52.0
[`#2524`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2524)
- feat: support nth-child esquery
[`#2546`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2546)
- feat: support :is selector
[`#2545`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2545)
- feat: support :not selector
[`#2544`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2544)
- feat: support :has rule
[`#2543`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2543)
- fix(lsp): scan injected languages for diagnostics
([#&#8203;2528](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2528))
[`#2522`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2522)
- feat: add parameterized util
[`3d90372`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/3d903727c2fad6f7ed24cc4852f66b3adc45c7a2)
- refactor: limit parameterized utils to globals
[`2d69a34`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/2d69a3425b9917653a01f4d56aff9332b0c86538)
- refactor: move parameterized_util
[`c77e38d`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/c77e38d84281e3bbbe3e5828dd9989d8e721a8a1)

###
[`v0.41.1`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0411)

[Compare
Source](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/compare/0.41.0...0.41.1)

> 10 March 2026

- fix: lsp on change encounter deadlock
[`#2511`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2511)
- chore(deps): update dependency oxlint to v1.51.0
[`#2512`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2512)
- chore(deps): update rust crate tempfile to v3.26.0
[`#2497`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2497)
- chore(deps): update rust crate inquire to v0.9.4
[`#2498`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2498)
- chore(deps): update dependency
[@&#8203;types/node](https://github.com/proxy/redirect.github.com/types/node) to v24.11.0
[`#2502`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2502)
- chore(deps): update dependency dprint to v0.52.0
[`#2499`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2499)
- fix: override severity on `rule` & `inline-rules` flags
[`#2505`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2505)
- chore(deps): update github artifact actions
[`#2507`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2507)
- chore(deps): update rust crate tree-sitter to v0.26.6
[`#2501`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2501)
- chore(deps): update dependency web-tree-sitter to v0.26.6
[`#2500`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2500)
- chore(deps): update dependency ava to v7
[`#2508`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2508)
- chore(deps): update dependency oxlint to v1.50.0
[`#2495`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2495)
- chore(deps): update dependency
[@&#8203;ast-grep/napi](https://github.com/proxy/redirect.github.com/ast-grep/napi) to
v0.41.0
[`#2494`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2494)
- fix: bump ls-types version
[`#2525`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/issues/2525)
- refactor: change versioned ast work
[`a86b2ab`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/a86b2abe5dc4997c892274017f40c7a75c7df354)
- fix: bump wasm-bindgen
[`d23e334`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/d23e3344df921bbfe9ef1fa84ee9aeceeb543038)
- fix: fix wasm package
[`0b92e94`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/0b92e941ef54d3c1810283b5471282ad2793f8d5)

###
[`v0.41.0`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0410)

[Compare
Source](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/compare/0.40.5...0.41.0)

> 22 February 2026

- chore(deps): update pyo3/maturin-action action to v1.50.0
[`#2465`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2465)
- fix(deps): update rust-wasm-bindgen monorepo
[`#2491`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2491)
- chore(deps): update rust crate toml_edit to v0.25.3
[`#2469`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2469)
- chore(deps): update dependency web-tree-sitter to ^0.26.0
[`#2492`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2492)
- refactor: addr_of_mut to OnceLock
[`#2486`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2486)
- feat: support ast-grep-wasm
[`#2484`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2484)
- chore(deps): update rust crate clap to v4.5.60
[`#2483`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2483)
- chore(deps): update rust crate anyhow to v1.0.102
[`#2489`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2489)
- chore(deps): update dependency oxlint to v1.49.0
[`#2488`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2488)
- feat: make default rule id to filename
[`#2482`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2482)
- chore(deps): update dependency oxlint to v1.48.0
[`#2481`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2481)
- chore(deps): update rust crate napi-derive to v3.5.2
[`#2475`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2475)
- chore(deps): update rust crate napi to v3.8.3
[`#2474`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2474)
- chore(deps): update rust crate futures to v0.3.32
[`#2476`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2476)
- chore(deps): update rust crate clap to v4.5.58
[`#2470`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2470)
- fix: parse each language injection region as independent tree
[`#2479`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2479)
- chore(deps): update dependency
[@&#8203;types/node](https://github.com/proxy/redirect.github.com/types/node) to
v24.10.13
[`#2467`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2467)
- chore(deps): update rust crate clap_complete to v4.5.66
[`#2471`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2471)
- chore(deps): update rust crate predicates to v3.1.4
[`#2472`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2472)
- chore(deps): update dependency oxlint to v1.47.0
[`#2468`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2468)
- chore(deps): update rust crate tempfile to v3.25.0
[`#2466`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2466)
- fix(deps): update rust crate toml_edit to 0.25.0
[`#2473`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2473)
- chore(deps): update rust crate tree-sitter to v0.26.5
[`#2458`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2458)
- chore(deps): update dependency
[@&#8203;types/node](https://github.com/proxy/redirect.github.com/types/node) to
v24.10.12
[`#2438`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2438)
- chore(deps): update rust crate schemars to v1.2.1
[`#2457`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2457)
- chore(deps): update rust crate clap to v4.5.57
[`#2455`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2455)
- chore(deps): update rust crate anyhow to v1.0.101
[`#2462`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2462)
- chore(deps): update rust crate inquire to v0.9.3
[`#2463`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2463)
- chore(deps): update dependency oxlint to v1.43.0
[`#2459`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2459)
- chore(deps): update rust crate regex to v1.12.3
[`#2461`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2461)
- chore(deps): update rust crate clap to v4.5.55
[`#2454`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2454)
- chore(deps): update dependency oxlint to v1.42.0
[`#2452`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2452)
- chore(deps): update dependency oxlint to v1.41.0
[`#2447`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2447)
- chore(deps): update rust crate assert_cmd to v2.1.2
[`#2437`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2437)
- chore(deps): update rust crate thiserror to v2.0.18
[`#2446`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2446)
- chore(deps): update dependency oxlint to v1.39.0
[`#2442`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2442)
- chore(deps): update rust crate inquire to v0.9.2
[`#2445`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/pull/2445)
- fix: improve max diagnostic impl to use one atomic op
[`781ec81`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/781ec81cb4eba2678c3785a1e322f953dbb5a8d8)
- fix: udpate schema
[`e645fdf`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/e645fdfa1af85fc5c69ed167bce2eb123dbeb1cc)
- fix: move dumping to core crate
[`0b2acb9`](https://github.com/proxy/redirect.github.com/ast-grep/ast-grep/commit/0b2acb96bc8862d8baa657c724402a5b181033e2)

</details>

<details>
<summary>reubeno/brush (brush-parser)</summary>

###
[`v0.4.0`](https://github.com/proxy/redirect.github.com/reubeno/brush/blob/HEAD/CHANGELOG.md#040---2026-05-02)

[Compare
Source](https://github.com/proxy/redirect.github.com/reubeno/brush/compare/brush-parser-v0.3.0...brush-parser-v0.4.0)

##### 🚀 Features

- *(parser)* Add official `serde` feature to `brush-parser` for AST
serialization
([#&#8203;783](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/783))
- *(parser)* \[**breaking**] Replace ParsingNearToken with ParsingNear
([#&#8203;1022](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/1022))
- Introduce notion of marking errors as fatal
([#&#8203;770](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/770))
- Expose key bindings for hint acceptance
([#&#8203;802](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/802))
- Add 'serde' feature to `brush-core`
([#&#8203;831](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/831))
- Enable using word expander without command substs
([#&#8203;877](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/877))
- Enable session leading config
([#&#8203;904](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/904))
- Implement \l sequence in prompt expansion
([#&#8203;913](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/913))
- *(windows)* Various path fixes for windows platform
([#&#8203;1075](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/1075))
- Implement fatal error propagation
([#&#8203;773](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/773))
- Implement `set -u` semantics
([#&#8203;774](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/774))
- Source tracking improvements
([#&#8203;805](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/805))
- Support asynchronous builtin execution
([#&#8203;810](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/810))
- *(builtins)* Implement caller builtin
([#&#8203;812](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/812))
- Implement "compgen -A binding"
([#&#8203;814](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/814))
- Emulate `exec` in subshell
([#&#8203;823](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/823))
- Experimental builtin for serializing full shell state
([#&#8203;835](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/835))
- Expand tilde expansion support
([#&#8203;842](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/842))
- Implement `set -e` (a.k.a. `errexit`) + `pipefail` semantics
([#&#8203;852](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/852))
- Experimental shell/terminal integration
([#&#8203;872](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/872))
- *(hooks)* Experimental `zsh`-style preexec/precmd hooks
([#&#8203;652](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/652))
- Rudimentary readline macro support
([#&#8203;880](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/880))
- Optional TOML-based config file for brush-shell
([#&#8203;895](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/895))
- *(read)* Fill out more of `read` builtin
([#&#8203;914](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/914))
- Add convenience cmd line option to set up xtrace
([#&#8203;915](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/915))
- Scaffolding for winnow parser
([#&#8203;974](https://github.com/proxy/redirect.github.com/reubeno/brush/pull/974))
- *(completion)* 

> [!IMPORTANT]
> ✂ PR body was truncated to here.


</details>

---

### Configuration

📅 **Schedule**: (in timezone Asia/Shanghai)

- Branch creation
  - "before 10am on monday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

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

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://github.com/proxy/redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/voidzero-dev/vite-plus).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDkuNCIsInVwZGF0ZWRJblZlciI6IjQ0LjE1NS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: voidzero-guard[bot] <278573678+voidzero-guard[bot]@users.noreply.github.com>
Co-authored-by: MK <fengmk2@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

preview-build Publish this PR's commits to the registry bridge as preview builds test: create-e2e Run `vp create` e2e tests test: e2e Auto run e2e tests test: install-e2e run vite install e2e test test: sfw

Projects

None yet

2 participants