Skip to content

perf(json): optimize lexer and parser hot paths - #2146

Merged
ya7010 merged 1 commit into
tombi-toml:mainfrom
ya7010:perf/json-parser-hot-paths
Aug 29, 2026
Merged

ya7010 merged 1 commit into
tombi-toml:mainfrom
ya7010:perf/json-parser-hot-paths

Conversation

@ya7010

@ya7010 ya7010 commented Aug 29, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • replace regex-based JSON number lexing with an allocation-free byte scanner while preserving the previous accepted language
  • scan long ordinary ASCII strings with AArch64 NEON and retain the existing scalar/memchr fallback elsewhere
  • carry escape metadata from the lexer into the parser and avoid rescanning unescaped strings
  • use the map entry API to avoid hashing object keys twice
  • cover number compatibility and 15/16/31/32/33-byte string scanner boundaries with the existing declarative lexer test macros

Performance

Parse-only release AB/BA benchmarks against 70b90cf9ff7b7437b3eab51a86ffa7fc5d8afe5a on Apple M2 Max used 31 paired samples per case, alternating order, with about 30 ms per side. Repeated forward/reverse measurements showed stable improvements for the primary synthetic workloads:

  • tiny JSON: 18.6–21.9% faster
  • long strings: 83.5–84.0% faster
  • numeric-heavy: 72.8–75.1% faster
  • object-heavy: 36.3–38.8% faster

Short strings, Unicode, escaped strings, and the representative Cargo/Tombi/pyproject schemas showed order-sensitive results in the final exact-tree reruns, so this PR makes no improvement claim for those workloads. Non-AArch64 fallback performance was not measured; its build paths were checked separately.

Validation

  • cargo fmt --all --check
  • cargo test -p tombi-json-lexer -p tombi-json --locked (107 tests)
  • cargo test -p tombi-schema-store --locked (75 tests; pre-existing dead-code warnings)
  • cargo clippy --workspace --all-targets --locked -- -D warnings
  • cargo check --workspace --all-targets --locked
  • cargo check -p tombi-json --target wasm32-unknown-unknown --locked
  • cargo check -p tombi-json --target x86_64-pc-windows-msvc --locked
  • cargo check -p tombi-json --target x86_64-unknown-illumos --locked
  • git diff --cached --check

Review

  • independent read-only pre-PR review: no actionable findings
  • reviewed fingerprint: 70b90cf9ff7b7437b3eab51a86ffa7fc5d8afe5a:a8e8d7882b580db5cf7089c2355f567904b5281eb9acd38333ad3dafa4bc6c1e
  • residual risk: non-AArch64 runtime performance remains unmeasured

Copilot AI lite review requested due to automatic review settings August 29, 2026 00:09
@ya7010 ya7010 added the rust Pull requests that update rust code label Aug 29, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

tombi の JSON lexer / parser のホットパスを最適化し、特に数値トークン判定・長い ASCII 文字列スキャン・オブジェクトキー処理のオーバーヘッドを削減する PR です。lexer 側で「文字列に escape が含まれるか」をメタデータとして保持し、parser 側の再スキャンを避けることで、全体としてパース処理のスループット改善を狙っています。

Changes:

  • JSON 数値 lexing を regex から allocation-free なバイトスキャナに置き換え、従来互換の受理範囲をテストで固定
  • 長い通常 ASCII 文字列の prefix スキャンを AArch64 NEON で高速化し、非 AArch64 は memchr + scalar にフォールバック
  • lexer の contains_escape を parser へ伝搬し、未エスケープ文字列の unescape 処理を回避+オブジェクトキー挿入を entry API で 1 回ハッシュに

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated no comments.

Show a summary per file
File Description
crates/tombi-json/src/parser.rs contains_escape による unescape 回避と、object properties の entry 挿入でキー重複検出+二重ハッシュ回避
crates/tombi-json/Cargo.toml memchr 依存を削除(parser 側で不要化)
crates/tombi-json-lexer/tests/test_lexer.rs contains_escape を考慮した期待トークン生成へ更新し、数値互換・文字列境界のテストを追加
crates/tombi-json-lexer/src/token.rs Token に contains_escape を追加し、new_string / accessor を提供
crates/tombi-json-lexer/src/scanner.rs 通常 ASCII 文字列 prefix の SIMD/非 SIMD 実装を ordinary_ascii_prefix に集約し、AArch64 で NEON を使用
crates/tombi-json-lexer/src/lib.rs regex ベース数値判定を json_number_len に置換し、文字列トークンで contains_escape を設定
crates/tombi-json-lexer/src/cursor.rs regex 用の peek_with_current_while を削除(不要な String 生成を排除)
crates/tombi-json-lexer/Cargo.toml tombi-regex 依存を削除
Cargo.lock 依存関係の追従更新(memchr/tombi-regex の削除反映)

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@ya7010
ya7010 merged commit e735f81 into tombi-toml:main Aug 29, 2026
29 checks passed
jylenhof pushed a commit to jylenhof/mise-en-place-resources that referenced this pull request Sep 1, 2026
Automated mise tool upgrades from local config.

mise-managed 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 (6 tools)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `editorconfig-checker` | `3.11.1` → `3.11.2` | `3.11.1` → `3.11.2` |
| `prek` | `0.4.14` → `0.5.0` | `0.4.14` → `0.5.0` |
| `rumdl` | `0.2.60` → `0.2.62` | `0.2.60` → `0.2.62` |
| `shfmt` | `3.13.1` → `3.14.0` | `3.13.1` → `3.14.0` |
| `tombi` | `1.4.1` → `1.5.0` | `1.4.1` → `1.5.0` |
| `uv` | `0.12.5` → `0.12.7` | `0.12.5` → `0.12.7` |

</details>

<details>
<summary>Release notes (6 tools)</summary>

<details>
<summary>editorconfig-checker: `3.11.1` → `3.11.2` (editorconfig-checker/editorconfig-checker)</summary>

### v3.11.2

## editorconfig-checker v3.11.2 (2026-08-25T21:11:31Z)

Welcome to this new release of editorconfig-checker!

## Changelog
### Others
* b0a550a82df22ed8bbc48156d3d6fa9bf20c975c: upgrade go to v1.27 to mitigate #613 (@​klaernie)

## Thanks!

Those were the changes on v3.11.2!

</details>
<details>
<summary>prek: `0.4.14` → `0.5.0` (j178/prek)</summary>

### v0.5.0

## Release Notes

Released on 2026-08-27.

### Highlights

#### Choose where hook toolchains come from

`language_version` now accepts a source `preference` alongside the version
`request`, letting you control where prek looks for a compatible toolchain when
it creates a hook environment. Use `managed` (the default) or `system` to choose
which source prek tries first while still allowing fallback and downloads. Use
`only-managed` or `only-system` to require one source.

For example, this local Ruff hook requires a Python 3.12 toolchain managed by
prek:

```yaml
repos:
  - repo: local
    hooks:
      - id: ruff
        name: ruff
        language: python
        entry: ruff check
        additional_dependencies: [ruff]
        language_version:
          request: "3.12"
          preference: only-managed
```

With `only-managed`, prek reuses a compatible toolchain from its managed store
or downloads one when needed. It never falls back to Python from `PATH`, an OS
package manager, or a version manager, so toolchain selection does not depend on
the developer or CI machine's external environment.

Existing scalar values such as `language_version: "3.12"` continue to work. See
[toolchain management and `language_version`](https://prek.j178.dev/0.5.0/languages/#toolchain-management-and-language_version)
for the full source-selection behavior. ([#2613](j178/prek#2613))

### Breaking changes

The breaking changes in this release are mostly small cleanups, and most users should not be affected.

- Group names can no longer start with `@`. This prefix is now reserved for special group selectors such as the new `@​ungrouped` selector. ([#2617](j178/prek#2617))
- `PREK_MAX_CONCURRENCY` has been removed. Use `PREK_CONCURRENT_HOOKS` and `PREK_CONCURRENT_BATCHES` to control hook and per-hook batch concurrency separately. ([#2620](j178/prek#2620))
- The top-level `prek init-template-dir` command… (truncated)

</details>
<details>
<summary>rumdl: `0.2.60` → `0.2.62` (rvben/rumdl)</summary>

### v0.2.61

### Added

- **cli**: add `--stdin-batch` for NUL-framed multi-document linting and `--stdin-batch-closed-world` for supplied-document-only link resolution

## Downloads

| File | Platform | Checksum |
|------|----------|----------|
| [rumdl-v0.2.61-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-x86_64-unknown-linux-gnu.tar.gz.sha256) |
| [rumdl-v0.2.61-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-x86_64-unknown-linux-musl.tar.gz.sha256) |
| [rumdl-v0.2.61-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-aarch64-unknown-linux-gnu.tar.gz.sha256) |
| [rumdl-v0.2.61-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-aarch64-unknown-linux-musl.tar.gz.sha256) |
| [rumdl-v0.2.61-x86_64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-x86_64-apple-darwin.tar.gz) | macOS x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-x86_64-apple-darwin.tar.gz.sha256) |
| [rumdl-v0.2.61-aarch64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-aarch64-apple-darwin.tar.gz) | macOS ARM64 (Apple Silicon) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-aarch64-a… (truncated)

### v0.2.62

### Added

- **flavor**: add support for Markdown with Gherkin (MDG) ([db62377](rvben/rumdl@db62377))

## Downloads

| File | Platform | Checksum |
|------|----------|----------|
| [rumdl-v0.2.62-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-x86_64-unknown-linux-gnu.tar.gz.sha256) |
| [rumdl-v0.2.62-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-x86_64-unknown-linux-musl.tar.gz.sha256) |
| [rumdl-v0.2.62-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-aarch64-unknown-linux-gnu.tar.gz.sha256) |
| [rumdl-v0.2.62-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-aarch64-unknown-linux-musl.tar.gz.sha256) |
| [rumdl-v0.2.62-x86_64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-x86_64-apple-darwin.tar.gz) | macOS x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-x86_64-apple-darwin.tar.gz.sha256) |
| [rumdl-v0.2.62-aarch64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-aarch64-apple-darwin.tar.gz) | macOS ARM64 (Apple Silicon) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-aarc… (truncated)

</details>
<details>
<summary>shfmt: `3.13.1` → `3.14.0` (mvdan/sh)</summary>

### v3.14.0

This release drops support for Go 1.25 and includes many enhancements, particularly in the interpreter, which implements more shell features and fixes many divergences from Bash.

- **cmd/shfmt**
  - Add `--detect` to find shell files by executable bit or shebang - #944
- **syntax**
  - Add `Preorder`, an iterator over all nodes, complementing `Walk`
  - Add `encoding.TextUnmarshaler` implementations for each operator type
  - Support `${ foo;}` and `${|foo;}` inside double quotes - #1368
  - Support array elements in `{varname}` redirects, like `exec {fds[3]}>&-` - #719
  - Backslashes inside backquotes within double quotes escape double quotes - #1083
  - Allow pound signs in associative array keys like `${args[cmd,#]}` - #1285
  - Don't treat `#` as the start of a comment inside `[[ ]]` tests - #1326
  - Don't join `then` or `do` with a semicolon when heredocs are pending - #1047
  - Print a space after `!` in arithmetic expressions, avoiding history expansion - #987
  - Space nested closing parentheses like the opening ones - #876
  - Make `SplitBraces` reject malformed sequences and skip backslash escapes - #1330
  - Zsh: support the `${=name}`, `${~name}`, and `${^name}` prefixes - #1238
  - Zsh: support the `;|` case terminator and leading parentheses for globs - #1293, #1279
  - Zsh: parse subscript flag arguments as patterns, and allow `[` globs in arrays - #1278, #1322
- **syntax/typedjson**
  - Encode operators as their syntax form, such as `">>"`, rather than integers - #1321
  - Return errors rather than panicking on malformed input
- **interp**
  - Add `BashOpts` to set Bash options like `shopt` - #962
  - Add `AccessHandler` to control file access checks, used by `-r` and `cd` - #1318
  - Add `HandlerContext.LastExitStatus`, and provide a `HandlerContext` to stat handlers
  - Implement the `help` and `times` builtins, as well as `$-` - #1398
  - Implement the `;&` and `;;&` case terminators - #1391
  - Implemen… (truncated)

</details>
<details>
<summary>tombi: `1.4.1` → `1.5.0` (tombi-toml/tombi)</summary>

### v1.5.0

<!-- Release notes generated using configuration in .github/release.yml at v1.5.0 -->

## What's Changed
Tombi v1.5.0 is a major performance and architecture release.

We redesigned the parser and AST around a compact, source-backed syntax tape, replacing the previous red-green syntax tree.
The new architecture is optimized for Tombi’s lossless, long-lived editor and LSP workloads: it improves memory locality and reduces allocation and pointer-chasing overhead while preserving comments, punctuation, incomplete syntax, and diagnostics.
The AST and document-tree interfaces are now also separated from their syntax-backed implementations.

We also optimized hot paths throughout the parser, JSON Schema processing, linter, formatter, and stdin-based CLI workflows.
In our Apple M2 Max benchmarks, long ASCII comment lexing was approximately 2.3× faster, selected JSON parsing workloads improved by up to 84%, and repository-wide lint time decreased from approximately 355 ms to 81 ms.

### 🚨 Breaking Changes
* perf(parser): replace syntax tree with compact tape by @​ya7010 in tombi-toml/tombi#2140

### 🐝 Bug Fixes
* fix(lsp): preserve composite schema metadata by @​ya7010 in tombi-toml/tombi#2139

### 🛠️ Other Changes
* Improve minimal-change guidance for agents by @​ya7010 in tombi-toml/tombi#2137
* perf(parser): accelerate long comment scanning by @​ya7010 in tombi-toml/tombi#2141
* perf: speed up lint and format by @​ya7010 in tombi-toml/tombi#2142
* perf: reduce stdin runtime overhead by @​ya7010 in tombi-toml/tombi#2143
* perf(json): accelerate long string parsing by @​ya7010 in tombi-toml/tombi#2145
* perf(json): optimize lexer and parser hot paths by @​ya7010 in tombi-toml/tombi#2146

**Full Changelog**: https://github.com/tombi-toml/tomb… (truncated)

</details>
<details>
<summary>uv: `0.12.5` → `0.12.7` (astral-sh/uv)</summary>

### 0.12.6

## Release Notes

Released on 2026-08-25.

### Python

- Update CPython to use OpenSSL 3.5.8 and libffi 3.4.8 [#21295](astral-sh/uv#21295))
### Enhancements

- Report cache-cleaning space savings from filesystem block allocation and avoid double-counting hard links ([#21261](astral-sh/uv#21261))
- Limit warnings about unbounded `uv_build` requirements to source-distribution builds ([#21078](astral-sh/uv#21078))
- Display byte counts below 1 KiB without a fractional part ([#21237](astral-sh/uv#21237))

### Preview features

- Add `uv workspace metadata --sync --exact` to remove packages outside the selected resolution ([#21117](astral-sh/uv#21117))
- Add the `artifact-hash-filtering` preview feature to make `uv pip compile --generate-hashes` honor `--only-binary` and `--no-binary` ([#21235](astral-sh/uv#21235))
- Respect package-specific `exclude-newer` cutoffs when `uv check` selects its `ty` executable ([#21227](astral-sh/uv#21227))
- Preserve virtual-environment hints from `tar-codec` source-distribution errors when the base interpreter is outside a `bin` directory ([#21146](astral-sh/uv#21146))

### Performance

- Enable profile-guided optimization for Linux x86-64 release binaries ([#21001](astral-sh/uv#21001))
- Enable profile-guided optimization for Windows x86-64 release binaries ([#21003](astral-sh/uv#21003))
- Enable profile-guided optimization for macOS ARM64 release binaries ([#21002](astral-sh/uv#21002))
- Enable profile-guided optimization for Linux ARM64 release binaries ([#21004](astral-sh/uv#21004))
- Speed up syncing projects with many activated conflict items by reusing their encoded representation ([#21148](https://github.com/astral-sh/uv/pull/21148))… (truncated)

### 0.12.7

## Release Notes

Released on 2026-08-27.

### Python

- Replace managed Python installations when upgrading to a newer build of the same version ([#21323](astral-sh/uv#21323))

### Enhancements

- Support Linux `s390x`, `ppc64le`, and `loongarch64` targets for cross-platform dependency resolution ([#21313](astral-sh/uv#21313))
- Retry downloads with configured credentials when Azure Storage denies anonymous access to an endpoint configured via `UV_AZURE_ENDPOINT_URL` ([#21318](astral-sh/uv#21318))

### Preview features

- Use content-based directory hashes to deduplicate extracted wheels in the cache with the `content-addressed-cache` preview feature ([#19693](astral-sh/uv#19693))

### Bug fixes

- Reject source archives with hash mismatches before persisting their extracted contents to the cache ([#21248](astral-sh/uv#21248))

### Other changes

- remove pyx specific features ([#21182](astral-sh/uv#21182), [#21183](astral-sh/uv#21183), [#21184](astral-sh/uv#21184), [#21185](astral-sh/uv#21185), [#21186](astral-sh/uv#21186))

## Install uv 0.12.7

### Install prebuilt binaries via shell script

```sh
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.12.7/uv-installer.sh | sh
```

### Install prebuilt binaries via powershell script

```sh
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.12.7/uv-installer.ps1 | iex"
```

## Download uv 0.12.7

|  File  | Platform | Checksum |
|--------|----------|----------|
| [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.7/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0… (truncated)

</details>

</details>

Modified files:
- `.mise.toml`

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
jylenhof pushed a commit to jylenhof/mise-update-tool that referenced this pull request Sep 1, 2026
Automated mise tool upgrades from local config.

mise-managed tools:
- `action-validator`
- `actionlint`
- `aube`
- `editorconfig-checker`
- `ghalint`
- `pinact`
- `pipx:gh-action-pulse`
- `prek`
- `rumdl`
- `shellcheck`
- `shfmt`
- `tombi`
- `uv`
- `yamlfmt`
- `yamllint`
- `zizmor`

Command: `mise upgrade --bump --local action-validator actionlint aube editorconfig-checker ghalint pinact pipx:gh-action-pulse prek rumdl shellcheck shfmt tombi uv yamlfmt yamllint zizmor`

<details>
<summary>Version changelog (7 tools)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `aube` | `latest` → `latest` | `2.1.0` → `2.2.0` |
| `editorconfig-checker` | `3.11.1` → `3.11.2` | `3.11.1` → `3.11.2` |
| `prek` | `0.4.14` → `0.5.0` | `0.4.14` → `0.5.0` |
| `rumdl` | `0.2.60` → `0.2.62` | `0.2.60` → `0.2.62` |
| `shfmt` | `3.13.1` → `3.14.0` | `3.13.1` → `3.14.0` |
| `tombi` | `1.4.1` → `1.5.0` | `1.4.1` → `1.5.0` |
| `uv` | `0.12.5` → `0.12.7` | `0.12.5` → `0.12.7` |

</details>

<details>
<summary>Release notes (7 tools)</summary>

<details>
<summary>aube: `2.1.0` → `2.2.0` (jdx/aube)</summary>

### v2.2.0

A small release that gives standalone aube a bundled package-extensions compatibility catalog and exposes its node-gyp bootstrap through the public embedding facade.

## Added

- **Embeddable node-gyp bootstrap** ([#1365](aubepkg/aube#1365) by @​jdx) — aube's locked, in-process node-gyp bootstrap is now available through the stable embedding facade and returns the resolved executable path. This lets embedders (e.g. mise) service aube's lazy shim command without an ambient `npm` or a separately installed `aube` binary, while aube keeps ownership of the node-gyp version, cache layout, npmrc propagation, and cross-process locking. Standalone aube's hidden `__node-gyp-bootstrap` command now routes through the same API, and binary lookup uses `is_file()` across platform names so Windows `.exe`/`.cmd` caches resolve correctly.

## Fixed

- **Bundled curated package extensions** ([#1369](aubepkg/aube#1369) by @​jdx) — Standalone aube now ships a bundled compatibility catalog (~161 curated rules from Yarn's `@​yarnpkg/extensions@2.0.7` plus pnpm's Rust CLI additions) that repairs missing or incompatible peer/optional dependencies across common ecosystems (Angular, Nuxt, React, Vue, Gatsby, GraphQL, Webpack, Parcel, and more). The phantom rules removed upstream by pnpm are excluded. These defaults are applied at the lowest precedence — user and project `packageExtensions` always win — and are kept out of `packageExtensionsChecksum`, so catalog updates never invalidate existing lockfiles or break `--frozen-lockfile`. Set `ignoreCompatibilityDb=true` to opt out of the bundled repairs; malformed bundled entries are skipped with a `WARN_AUBE_INVALID_BUNDLED_PACKAGE_EXTENSION` warning rather than failing the install.

**Full Changelog**: aubepkg/aube@v2.1.0...v2.2.0

## 💚 Sponsor aube

aube is maintained by [@​jdx](https://github.com/jdx), an open source developer for [**entire.io**](https://entire.io),… (truncated)

</details>
<details>
<summary>editorconfig-checker: `3.11.1` → `3.11.2` (editorconfig-checker/editorconfig-checker)</summary>

### v3.11.2

## editorconfig-checker v3.11.2 (2026-08-25T21:11:31Z)

Welcome to this new release of editorconfig-checker!

## Changelog
### Others
* b0a550a82df22ed8bbc48156d3d6fa9bf20c975c: upgrade go to v1.27 to mitigate #613 (@​klaernie)

## Thanks!

Those were the changes on v3.11.2!

</details>
<details>
<summary>prek: `0.4.14` → `0.5.0` (j178/prek)</summary>

### v0.5.0

## Release Notes

Released on 2026-08-27.

### Highlights

#### Choose where hook toolchains come from

`language_version` now accepts a source `preference` alongside the version
`request`, letting you control where prek looks for a compatible toolchain when
it creates a hook environment. Use `managed` (the default) or `system` to choose
which source prek tries first while still allowing fallback and downloads. Use
`only-managed` or `only-system` to require one source.

For example, this local Ruff hook requires a Python 3.12 toolchain managed by
prek:

```yaml
repos:
  - repo: local
    hooks:
      - id: ruff
        name: ruff
        language: python
        entry: ruff check
        additional_dependencies: [ruff]
        language_version:
          request: "3.12"
          preference: only-managed
```

With `only-managed`, prek reuses a compatible toolchain from its managed store
or downloads one when needed. It never falls back to Python from `PATH`, an OS
package manager, or a version manager, so toolchain selection does not depend on
the developer or CI machine's external environment.

Existing scalar values such as `language_version: "3.12"` continue to work. See
[toolchain management and `language_version`](https://prek.j178.dev/0.5.0/languages/#toolchain-management-and-language_version)
for the full source-selection behavior. ([#2613](j178/prek#2613))

### Breaking changes

The breaking changes in this release are mostly small cleanups, and most users should not be affected.

- Group names can no longer start with `@`. This prefix is now reserved for special group selectors such as the new `@​ungrouped` selector. ([#2617](j178/prek#2617))
- `PREK_MAX_CONCURRENCY` has been removed. Use `PREK_CONCURRENT_HOOKS` and `PREK_CONCURRENT_BATCHES` to control hook and per-hook batch concurrency separately. ([#2620](j178/prek#2620))
- The top-level `prek init-template-dir` command… (truncated)

</details>
<details>
<summary>rumdl: `0.2.60` → `0.2.62` (rvben/rumdl)</summary>

### v0.2.61

### Added

- **cli**: add `--stdin-batch` for NUL-framed multi-document linting and `--stdin-batch-closed-world` for supplied-document-only link resolution

## Downloads

| File | Platform | Checksum |
|------|----------|----------|
| [rumdl-v0.2.61-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-x86_64-unknown-linux-gnu.tar.gz.sha256) |
| [rumdl-v0.2.61-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-x86_64-unknown-linux-musl.tar.gz.sha256) |
| [rumdl-v0.2.61-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-aarch64-unknown-linux-gnu.tar.gz.sha256) |
| [rumdl-v0.2.61-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-aarch64-unknown-linux-musl.tar.gz.sha256) |
| [rumdl-v0.2.61-x86_64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-x86_64-apple-darwin.tar.gz) | macOS x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-x86_64-apple-darwin.tar.gz.sha256) |
| [rumdl-v0.2.61-aarch64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-aarch64-apple-darwin.tar.gz) | macOS ARM64 (Apple Silicon) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.61/rumdl-v0.2.61-aarch64-a… (truncated)

### v0.2.62

### Added

- **flavor**: add support for Markdown with Gherkin (MDG) ([db62377](rvben/rumdl@db62377))

## Downloads

| File | Platform | Checksum |
|------|----------|----------|
| [rumdl-v0.2.62-x86_64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-x86_64-unknown-linux-gnu.tar.gz) | Linux x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-x86_64-unknown-linux-gnu.tar.gz.sha256) |
| [rumdl-v0.2.62-x86_64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-x86_64-unknown-linux-musl.tar.gz) | Linux x86_64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-x86_64-unknown-linux-musl.tar.gz.sha256) |
| [rumdl-v0.2.62-aarch64-unknown-linux-gnu.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-aarch64-unknown-linux-gnu.tar.gz.sha256) |
| [rumdl-v0.2.62-aarch64-unknown-linux-musl.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-aarch64-unknown-linux-musl.tar.gz.sha256) |
| [rumdl-v0.2.62-x86_64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-x86_64-apple-darwin.tar.gz) | macOS x86_64 | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-x86_64-apple-darwin.tar.gz.sha256) |
| [rumdl-v0.2.62-aarch64-apple-darwin.tar.gz](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-aarch64-apple-darwin.tar.gz) | macOS ARM64 (Apple Silicon) | [checksum](https://github.com/rvben/rumdl/releases/download/v0.2.62/rumdl-v0.2.62-aarc… (truncated)

</details>
<details>
<summary>shfmt: `3.13.1` → `3.14.0` (mvdan/sh)</summary>

### v3.14.0

This release drops support for Go 1.25 and includes many enhancements, particularly in the interpreter, which implements more shell features and fixes many divergences from Bash.

- **cmd/shfmt**
  - Add `--detect` to find shell files by executable bit or shebang - #944
- **syntax**
  - Add `Preorder`, an iterator over all nodes, complementing `Walk`
  - Add `encoding.TextUnmarshaler` implementations for each operator type
  - Support `${ foo;}` and `${|foo;}` inside double quotes - #1368
  - Support array elements in `{varname}` redirects, like `exec {fds[3]}>&-` - #719
  - Backslashes inside backquotes within double quotes escape double quotes - #1083
  - Allow pound signs in associative array keys like `${args[cmd,#]}` - #1285
  - Don't treat `#` as the start of a comment inside `[[ ]]` tests - #1326
  - Don't join `then` or `do` with a semicolon when heredocs are pending - #1047
  - Print a space after `!` in arithmetic expressions, avoiding history expansion - #987
  - Space nested closing parentheses like the opening ones - #876
  - Make `SplitBraces` reject malformed sequences and skip backslash escapes - #1330
  - Zsh: support the `${=name}`, `${~name}`, and `${^name}` prefixes - #1238
  - Zsh: support the `;|` case terminator and leading parentheses for globs - #1293, #1279
  - Zsh: parse subscript flag arguments as patterns, and allow `[` globs in arrays - #1278, #1322
- **syntax/typedjson**
  - Encode operators as their syntax form, such as `">>"`, rather than integers - #1321
  - Return errors rather than panicking on malformed input
- **interp**
  - Add `BashOpts` to set Bash options like `shopt` - #962
  - Add `AccessHandler` to control file access checks, used by `-r` and `cd` - #1318
  - Add `HandlerContext.LastExitStatus`, and provide a `HandlerContext` to stat handlers
  - Implement the `help` and `times` builtins, as well as `$-` - #1398
  - Implement the `;&` and `;;&` case terminators - #1391
  - Implemen… (truncated)

</details>
<details>
<summary>tombi: `1.4.1` → `1.5.0` (tombi-toml/tombi)</summary>

### v1.5.0

<!-- Release notes generated using configuration in .github/release.yml at v1.5.0 -->

## What's Changed
Tombi v1.5.0 is a major performance and architecture release.

We redesigned the parser and AST around a compact, source-backed syntax tape, replacing the previous red-green syntax tree.
The new architecture is optimized for Tombi’s lossless, long-lived editor and LSP workloads: it improves memory locality and reduces allocation and pointer-chasing overhead while preserving comments, punctuation, incomplete syntax, and diagnostics.
The AST and document-tree interfaces are now also separated from their syntax-backed implementations.

We also optimized hot paths throughout the parser, JSON Schema processing, linter, formatter, and stdin-based CLI workflows.
In our Apple M2 Max benchmarks, long ASCII comment lexing was approximately 2.3× faster, selected JSON parsing workloads improved by up to 84%, and repository-wide lint time decreased from approximately 355 ms to 81 ms.

### 🚨 Breaking Changes
* perf(parser): replace syntax tree with compact tape by @​ya7010 in tombi-toml/tombi#2140

### 🐝 Bug Fixes
* fix(lsp): preserve composite schema metadata by @​ya7010 in tombi-toml/tombi#2139

### 🛠️ Other Changes
* Improve minimal-change guidance for agents by @​ya7010 in tombi-toml/tombi#2137
* perf(parser): accelerate long comment scanning by @​ya7010 in tombi-toml/tombi#2141
* perf: speed up lint and format by @​ya7010 in tombi-toml/tombi#2142
* perf: reduce stdin runtime overhead by @​ya7010 in tombi-toml/tombi#2143
* perf(json): accelerate long string parsing by @​ya7010 in tombi-toml/tombi#2145
* perf(json): optimize lexer and parser hot paths by @​ya7010 in tombi-toml/tombi#2146

**Full Changelog**: https://github.com/tombi-toml/tomb… (truncated)

</details>
<details>
<summary>uv: `0.12.5` → `0.12.7` (astral-sh/uv)</summary>

### 0.12.6

## Release Notes

Released on 2026-08-25.

### Python

- Update CPython to use OpenSSL 3.5.8 and libffi 3.4.8 [#21295](astral-sh/uv#21295))
### Enhancements

- Report cache-cleaning space savings from filesystem block allocation and avoid double-counting hard links ([#21261](astral-sh/uv#21261))
- Limit warnings about unbounded `uv_build` requirements to source-distribution builds ([#21078](astral-sh/uv#21078))
- Display byte counts below 1 KiB without a fractional part ([#21237](astral-sh/uv#21237))

### Preview features

- Add `uv workspace metadata --sync --exact` to remove packages outside the selected resolution ([#21117](astral-sh/uv#21117))
- Add the `artifact-hash-filtering` preview feature to make `uv pip compile --generate-hashes` honor `--only-binary` and `--no-binary` ([#21235](astral-sh/uv#21235))
- Respect package-specific `exclude-newer` cutoffs when `uv check` selects its `ty` executable ([#21227](astral-sh/uv#21227))
- Preserve virtual-environment hints from `tar-codec` source-distribution errors when the base interpreter is outside a `bin` directory ([#21146](astral-sh/uv#21146))

### Performance

- Enable profile-guided optimization for Linux x86-64 release binaries ([#21001](astral-sh/uv#21001))
- Enable profile-guided optimization for Windows x86-64 release binaries ([#21003](astral-sh/uv#21003))
- Enable profile-guided optimization for macOS ARM64 release binaries ([#21002](astral-sh/uv#21002))
- Enable profile-guided optimization for Linux ARM64 release binaries ([#21004](astral-sh/uv#21004))
- Speed up syncing projects with many activated conflict items by reusing their encoded representation ([#21148](https://github.com/astral-sh/uv/pull/21148))… (truncated)

### 0.12.7

## Release Notes

Released on 2026-08-27.

### Python

- Replace managed Python installations when upgrading to a newer build of the same version ([#21323](astral-sh/uv#21323))

### Enhancements

- Support Linux `s390x`, `ppc64le`, and `loongarch64` targets for cross-platform dependency resolution ([#21313](astral-sh/uv#21313))
- Retry downloads with configured credentials when Azure Storage denies anonymous access to an endpoint configured via `UV_AZURE_ENDPOINT_URL` ([#21318](astral-sh/uv#21318))

### Preview features

- Use content-based directory hashes to deduplicate extracted wheels in the cache with the `content-addressed-cache` preview feature ([#19693](astral-sh/uv#19693))

### Bug fixes

- Reject source archives with hash mismatches before persisting their extracted contents to the cache ([#21248](astral-sh/uv#21248))

### Other changes

- remove pyx specific features ([#21182](astral-sh/uv#21182), [#21183](astral-sh/uv#21183), [#21184](astral-sh/uv#21184), [#21185](astral-sh/uv#21185), [#21186](astral-sh/uv#21186))

## Install uv 0.12.7

### Install prebuilt binaries via shell script

```sh
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.12.7/uv-installer.sh | sh
```

### Install prebuilt binaries via powershell script

```sh
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/uv/releases/download/0.12.7/uv-installer.ps1 | iex"
```

## Download uv 0.12.7

|  File  | Platform | Checksum |
|--------|----------|----------|
| [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.7/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0… (truncated)

</details>

</details>

Modified files:
- `.mise.toml`

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
jylenhof pushed a commit to jylenhof/mise-en-place-tips that referenced this pull request Sep 1, 2026
Automated mise tool upgrades from local config.

mise-managed tools:
- `tombi`

Command: `mise upgrade --bump --local tombi`

<details>
<summary>Version changelog (tombi)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `tombi` | `1.4.1` → `1.5.0` | `1.4.1` → `1.5.0` |

</details>

<details>
<summary>Release notes (1 tools)</summary>

<details>
<summary>tombi: `1.4.1` → `1.5.0` (tombi-toml/tombi)</summary>

### v1.5.0

<!-- Release notes generated using configuration in .github/release.yml at v1.5.0 -->

## What's Changed
Tombi v1.5.0 is a major performance and architecture release.

We redesigned the parser and AST around a compact, source-backed syntax tape, replacing the previous red-green syntax tree.
The new architecture is optimized for Tombi’s lossless, long-lived editor and LSP workloads: it improves memory locality and reduces allocation and pointer-chasing overhead while preserving comments, punctuation, incomplete syntax, and diagnostics.
The AST and document-tree interfaces are now also separated from their syntax-backed implementations.

We also optimized hot paths throughout the parser, JSON Schema processing, linter, formatter, and stdin-based CLI workflows.
In our Apple M2 Max benchmarks, long ASCII comment lexing was approximately 2.3× faster, selected JSON parsing workloads improved by up to 84%, and repository-wide lint time decreased from approximately 355 ms to 81 ms.

### 🚨 Breaking Changes
* perf(parser): replace syntax tree with compact tape by @​ya7010 in tombi-toml/tombi#2140

### 🐝 Bug Fixes
* fix(lsp): preserve composite schema metadata by @​ya7010 in tombi-toml/tombi#2139

### 🛠️ Other Changes
* Improve minimal-change guidance for agents by @​ya7010 in tombi-toml/tombi#2137
* perf(parser): accelerate long comment scanning by @​ya7010 in tombi-toml/tombi#2141
* perf: speed up lint and format by @​ya7010 in tombi-toml/tombi#2142
* perf: reduce stdin runtime overhead by @​ya7010 in tombi-toml/tombi#2143
* perf(json): accelerate long string parsing by @​ya7010 in tombi-toml/tombi#2145
* perf(json): optimize lexer and parser hot paths by @​ya7010 in tombi-toml/tombi#2146

**Full Changelog**: https://github.com/tombi-toml/tomb… (truncated)

</details>

</details>

Modified files:
- `.mise.toml`
jylenhof pushed a commit to jylenhof/github-actions-resources that referenced this pull request Sep 1, 2026
Automated mise tool upgrades from local config.

mise-managed tools:
- `tombi`

Command: `mise upgrade --bump --local tombi`

<details>
<summary>Version changelog (tombi)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `tombi` | `1.4.1` → `1.5.0` | `1.4.1` → `1.5.0` |

</details>

<details>
<summary>Release notes (1 tools)</summary>

<details>
<summary>tombi: `1.4.1` → `1.5.0` (tombi-toml/tombi)</summary>

### v1.5.0

<!-- Release notes generated using configuration in .github/release.yml at v1.5.0 -->

## What's Changed
Tombi v1.5.0 is a major performance and architecture release.

We redesigned the parser and AST around a compact, source-backed syntax tape, replacing the previous red-green syntax tree.
The new architecture is optimized for Tombi’s lossless, long-lived editor and LSP workloads: it improves memory locality and reduces allocation and pointer-chasing overhead while preserving comments, punctuation, incomplete syntax, and diagnostics.
The AST and document-tree interfaces are now also separated from their syntax-backed implementations.

We also optimized hot paths throughout the parser, JSON Schema processing, linter, formatter, and stdin-based CLI workflows.
In our Apple M2 Max benchmarks, long ASCII comment lexing was approximately 2.3× faster, selected JSON parsing workloads improved by up to 84%, and repository-wide lint time decreased from approximately 355 ms to 81 ms.

### 🚨 Breaking Changes
* perf(parser): replace syntax tree with compact tape by @​ya7010 in tombi-toml/tombi#2140

### 🐝 Bug Fixes
* fix(lsp): preserve composite schema metadata by @​ya7010 in tombi-toml/tombi#2139

### 🛠️ Other Changes
* Improve minimal-change guidance for agents by @​ya7010 in tombi-toml/tombi#2137
* perf(parser): accelerate long comment scanning by @​ya7010 in tombi-toml/tombi#2141
* perf: speed up lint and format by @​ya7010 in tombi-toml/tombi#2142
* perf: reduce stdin runtime overhead by @​ya7010 in tombi-toml/tombi#2143
* perf(json): accelerate long string parsing by @​ya7010 in tombi-toml/tombi#2145
* perf(json): optimize lexer and parser hot paths by @​ya7010 in tombi-toml/tombi#2146

**Full Changelog**: https://github.com/tombi-toml/tomb… (truncated)

</details>

</details>

Modified files:
- `.mise.toml`
jylenhof pushed a commit to jylenhof/mise-en-place-tips that referenced this pull request Sep 1, 2026
Automated mise tool upgrades from local config.

mise-managed tools:
- `tombi`

Command: `mise upgrade --bump --local tombi`

<details>
<summary>Version changelog (tombi)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `tombi` | `1.4.1` → `1.5.0` | `1.4.1` → `1.5.0` |

</details>

<details>
<summary>Release notes (1 tools)</summary>

<details>
<summary>tombi: `1.4.1` → `1.5.0` (tombi-toml/tombi)</summary>

### v1.5.0

<!-- Release notes generated using configuration in .github/release.yml at v1.5.0 -->

## What's Changed
Tombi v1.5.0 is a major performance and architecture release.

We redesigned the parser and AST around a compact, source-backed syntax tape, replacing the previous red-green syntax tree.
The new architecture is optimized for Tombi’s lossless, long-lived editor and LSP workloads: it improves memory locality and reduces allocation and pointer-chasing overhead while preserving comments, punctuation, incomplete syntax, and diagnostics.
The AST and document-tree interfaces are now also separated from their syntax-backed implementations.

We also optimized hot paths throughout the parser, JSON Schema processing, linter, formatter, and stdin-based CLI workflows.
In our Apple M2 Max benchmarks, long ASCII comment lexing was approximately 2.3× faster, selected JSON parsing workloads improved by up to 84%, and repository-wide lint time decreased from approximately 355 ms to 81 ms.

### 🚨 Breaking Changes
* perf(parser): replace syntax tree with compact tape by @​ya7010 in tombi-toml/tombi#2140

### 🐝 Bug Fixes
* fix(lsp): preserve composite schema metadata by @​ya7010 in tombi-toml/tombi#2139

### 🛠️ Other Changes
* Improve minimal-change guidance for agents by @​ya7010 in tombi-toml/tombi#2137
* perf(parser): accelerate long comment scanning by @​ya7010 in tombi-toml/tombi#2141
* perf: speed up lint and format by @​ya7010 in tombi-toml/tombi#2142
* perf: reduce stdin runtime overhead by @​ya7010 in tombi-toml/tombi#2143
* perf(json): accelerate long string parsing by @​ya7010 in tombi-toml/tombi#2145
* perf(json): optimize lexer and parser hot paths by @​ya7010 in tombi-toml/tombi#2146

**Full Changelog**: https://github.com/tombi-toml/tomb… (truncated)

</details>

</details>

Modified files:
- `.mise.toml`

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
jylenhof pushed a commit to jylenhof/github-actions-resources that referenced this pull request Sep 1, 2026
Automated mise tool upgrades from local config.

mise-managed tools:
- `tombi`

Command: `mise upgrade --bump --local tombi`

<details>
<summary>Version changelog (tombi)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `tombi` | `1.4.1` → `1.5.0` | `1.4.1` → `1.5.0` |

</details>

<details>
<summary>Release notes (1 tools)</summary>

<details>
<summary>tombi: `1.4.1` → `1.5.0` (tombi-toml/tombi)</summary>

### v1.5.0

<!-- Release notes generated using configuration in .github/release.yml at v1.5.0 -->

## What's Changed
Tombi v1.5.0 is a major performance and architecture release.

We redesigned the parser and AST around a compact, source-backed syntax tape, replacing the previous red-green syntax tree.
The new architecture is optimized for Tombi’s lossless, long-lived editor and LSP workloads: it improves memory locality and reduces allocation and pointer-chasing overhead while preserving comments, punctuation, incomplete syntax, and diagnostics.
The AST and document-tree interfaces are now also separated from their syntax-backed implementations.

We also optimized hot paths throughout the parser, JSON Schema processing, linter, formatter, and stdin-based CLI workflows.
In our Apple M2 Max benchmarks, long ASCII comment lexing was approximately 2.3× faster, selected JSON parsing workloads improved by up to 84%, and repository-wide lint time decreased from approximately 355 ms to 81 ms.

### 🚨 Breaking Changes
* perf(parser): replace syntax tree with compact tape by @​ya7010 in tombi-toml/tombi#2140

### 🐝 Bug Fixes
* fix(lsp): preserve composite schema metadata by @​ya7010 in tombi-toml/tombi#2139

### 🛠️ Other Changes
* Improve minimal-change guidance for agents by @​ya7010 in tombi-toml/tombi#2137
* perf(parser): accelerate long comment scanning by @​ya7010 in tombi-toml/tombi#2141
* perf: speed up lint and format by @​ya7010 in tombi-toml/tombi#2142
* perf: reduce stdin runtime overhead by @​ya7010 in tombi-toml/tombi#2143
* perf(json): accelerate long string parsing by @​ya7010 in tombi-toml/tombi#2145
* perf(json): optimize lexer and parser hot paths by @​ya7010 in tombi-toml/tombi#2146

**Full Changelog**: https://github.com/tombi-toml/tomb… (truncated)

</details>

</details>

Modified files:
- `.mise.toml`

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
jylenhof pushed a commit to jylenhof/gh-action-pulse that referenced this pull request Sep 11, 2026
Automated mise tool upgrades from local config.

mise-managed tools:
- `tombi`

Command: `mise upgrade --bump --local tombi`

<details>
<summary>Version changelog (tombi)</summary>

| Tool | Requested | Installed |
|------|-----------|-----------|
| `tombi` | `1.4.1` → `1.5.4` | `1.4.1` → `1.5.4` |

</details>

<details>
<summary>Release notes (1 tools)</summary>

<details>
<summary>tombi: `1.4.1` → `1.5.4` (tombi-toml/tombi)</summary>

### v1.5.0

<!-- Release notes generated using configuration in .github/release.yml at v1.5.0 -->

## What's Changed
Tombi v1.5.0 is a major performance and architecture release.

We redesigned the parser and AST around a compact, source-backed syntax tape, replacing the previous red-green syntax tree.
The new architecture is optimized for Tombi’s lossless, long-lived editor and LSP workloads: it improves memory locality and reduces allocation and pointer-chasing overhead while preserving comments, punctuation, incomplete syntax, and diagnostics.
The AST and document-tree interfaces are now also separated from their syntax-backed implementations.

We also optimized hot paths throughout the parser, JSON Schema processing, linter, formatter, and stdin-based CLI workflows.
In our Apple M2 Max benchmarks, long ASCII comment lexing was approximately 2.3× faster, selected JSON parsing workloads improved by up to 84%, and repository-wide lint time decreased from approximately 355 ms to 81 ms.

### 🚨 Breaking Changes
* perf(parser): replace syntax tree with compact tape by @​ya7010 in tombi-toml/tombi#2140

### 🐝 Bug Fixes
* fix(lsp): preserve composite schema metadata by @​ya7010 in tombi-toml/tombi#2139

### 🛠️ Other Changes
* Improve minimal-change guidance for agents by @​ya7010 in tombi-toml/tombi#2137
* perf(parser): accelerate long comment scanning by @​ya7010 in tombi-toml/tombi#2141
* perf: speed up lint and format by @​ya7010 in tombi-toml/tombi#2142
* perf: reduce stdin runtime overhead by @​ya7010 in tombi-toml/tombi#2143
* perf(json): accelerate long string parsing by @​ya7010 in tombi-toml/tombi#2145
* perf(json): optimize lexer and parser hot paths by @​ya7010 in tombi-toml/tombi#2146

**Full Changelog**: https://github.com/tombi-toml/tomb… (truncated)

### v1.5.1

<!-- Release notes generated using configuration in .github/release.yml at v1.5.1 -->

## What's Changed
### 🐝 Bug Fixes
* fix(linter): suppress false strict warnings for ref siblings by  @​kjanat in tombi-toml/tombi#2152
* test(lexer): cover CRLF after basic string escape and simplify test macro by  @​kjanat in tombi-toml/tombi#2150
* fix(lexer): reject newline following escaped quote or backslash in basic string by @​lxl66566 in tombi-toml/tombi#2149

### 🛠️ Other Changes
* fix: tombi lint by @​ya7010 in tombi-toml/tombi#2147
* perf: enable gzip compression for reqwest by @​lxl66566 in tombi-toml/tombi#2148

## New Contributors
* @​lxl66566 made their first contribution in tombi-toml/tombi#2148

**Full Changelog**: tombi-toml/tombi@v1.5.0...v1.5.1

### v1.5.2

<!-- Release notes generated using configuration in .github/release.yml at v1.5.2 -->

## What's Changed
### 🐝 Bug Fixes
* fix(json-lexer): accept standalone CR as whitespace by @​lxl66566 in tombi-toml/tombi#2162
### 📦 Dependencies
* fix: update vulnerable npm dependencies by @​xtqqczze in tombi-toml/tombi#2157
* chore(deps): update Cargo.lock by @​xtqqczze in tombi-toml/tombi#2161
### 🛠️ Other Changes
* fix(deps): disable default features for zip package by @​xtqqczze in tombi-toml/tombi#2156

**Full Changelog**: tombi-toml/tombi@v1.5.1...v1.5.2

### v1.5.3

<!-- Release notes generated using configuration in .github/release.yml at v1.5.3 -->

## What's Changed
### 🐝 Bug Fixes
* test(parser): preserve key after escaped multiline string by @​ya7010 in tombi-toml/tombi#2168
* fix(lsp): respect ignore files in watcher updates by @​ya7010 in tombi-toml/tombi#2169
### 🛠️ Other Changes
* ci: submit WinGet updates from organization fork by @​ya7010 in tombi-toml/tombi#2163
* fix(lexer): close multi-line string after escaped backslash by @​MaxFreedomPollard in tombi-toml/tombi#2167

## New Contributors
* @​MaxFreedomPollard made their first contribution in tombi-toml/tombi#2167

**Full Changelog**: tombi-toml/tombi@v1.5.2...v1.5.3

### v1.5.4

<!-- Release notes generated using configuration in .github/release.yml at v1.5.4 -->

## What's Changed
### 🛠️ Other Changes
* fix(lsp): stop triggering completions on newline by @​ya7010 in tombi-toml/tombi#2172

**Full Changelog**: tombi-toml/tombi@v1.5.3...v1.5.4

</details>

</details>

Modified files:
- `.mise.toml`

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
social4hyq pushed a commit to social4hyq/homebrew-core that referenced this pull request Sep 20, 2026
tombi 1.5.0

Created-by: HarmonybrewBot
Commit-by: HarmonybrewBot
Merged-by: HarmonybrewBot
Description: Created by `brew bump`

---

Created with `brew bump-formula-pr`.<details>
  <summary>release notes</summary>
  <pre><!-- Release notes generated using configuration in .github/release.yml at v1.5.0 -->

## What's Changed
Tombi v1.5.0 is a major performance and architecture release.

We redesigned the parser and AST around a compact, source-backed syntax tape, replacing the previous red-green syntax tree.
The new architecture is optimized for Tombi’s lossless, long-lived editor and LSP workloads: it improves memory locality and reduces allocation and pointer-chasing overhead while preserving comments, punctuation, incomplete syntax, and diagnostics.
The AST and document-tree interfaces are now also separated from their syntax-backed implementations.

We also optimized hot paths throughout the parser, JSON Schema processing, linter, formatter, and stdin-based CLI workflows.
In our Apple M2 Max benchmarks, long ASCII comment lexing was approximately 2.3× faster, selected JSON parsing workloads improved by up to 84%, and repository-wide lint time decreased from approximately 355 ms to 81 ms.

### 🚨 Breaking Changes
* perf(parser): replace syntax tree with compact tape by @ya7010 in tombi-toml/tombi#2140

### 🐝 Bug Fixes
* fix(lsp): preserve composite schema metadata by @ya7010 in tombi-toml/tombi#2139

### 🛠️ Other Changes
* Improve minimal-change guidance for agents by @ya7010 in tombi-toml/tombi#2137
* perf(parser): accelerate long comment scanning by @ya7010 in tombi-toml/tombi#2141
* perf: speed up lint and format by @ya7010 in tombi-toml/tombi#2142
* perf: reduce stdin runtime overhead by @ya7010 in tombi-toml/tombi#2143
* perf(json): accelerate long string parsing by @ya7010 in tombi-toml/tombi#2145
* perf(json): optimize lexer and parser hot paths by @ya7010 in tombi-toml/tombi#2146


**Full Changelog**: https://github.com/tombi-toml/tombi/compare/v1.4.1...v1.5.0</pre>
  <p>View the full release notes at <a href="https://github.com/tombi-toml/tombi/releases/tag/v1.5.0">https://github.com/tombi-toml/tombi/releases/tag/v1.5.0</a>.</p>
</details>
<hr>

See merge request: Harmonybrew/homebrew-core!18085
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants