346 Commits

Author SHA1 Message Date
Maximilian Roos 946e360447 Release v0.70.0 (#3640)
Cuts 0.70.0 — version bump plus the changelog for the 45 commits since
v0.69.2.

**Minor bump, not patch.** `cargo semver-checks` reports 6 breaking
library changes (`set_command_timeout` and `ListConfig::task_timeout_ms`
removed, `WorkingTree::stage` arity changed, three enum variants added
to exhaustive enums). Worktrunk ships breaking library changes freely,
but semver still puts a break at minor while pre-1.0.

## Release validation

- Local gate green on the release commit: 4631 tests, lints, doctests.
- `nightly` dispatched on the cut-from tip (`a27cbd42`) for the full
cross-platform suite — `full-tests` green on linux, macOS, and Windows,
plus minimal-versions, nix-flake, crate-build, and the release targets.

## Data-loss surface review

The cumulative diff was audited against the deletion surface. One
deliberate widening, signed off for this release with follow-ups to
file:

- **#3602** removes the content check from `wt config shell install`'s
legacy cleanup, so `conf.d/{cmd}.fish` and the stranded nushell
`{cmd}.nu` are now deleted by path, unread. Only that exact filename is
touched and each removal is reported, but the deletion is absent from
both `--dry-run` and the confirmation prompt, and the already-configured
path skips the prompt entirely.

Also noted, none blocking:

- The `!path.exists()` check precedes the lock guard on the
`Path`/`Current` removal arm, so a locked worktree whose directory is
absent loses its branch. This already governed the branch-targeted route
in v0.69.2; #3533 unified the other arms onto it. The FAQ's "Neither
`git worktree remove` nor `wt remove` (even with `--force`) will delete
them" is absolute where the behavior isn't.
- On the default background removal path, `ensure_clean` and
`stop_fsmonitor_daemon` swapped order, so the safety gate is now
answered by the live fsmonitor daemon rather than a full re-stat.
Bounded by trash staging with 24-hour retention, and the foreground and
picker paths were already daemon-served.

Net *improvements* to the same surface: shared-branch retention across
remove/prune/merge (#3533), outcome-accurate removal reporting (#3633,
#3637), and the removal of the thread-local command timeout that could
kill in-flight git commands on worker threads (#3615).

## Changelog accuracy

Entries were verified against the actual diffs rather than commit
messages, which corrected several drafts: the prune figures were one PR
stale (~2.9 s → the real ~0.6 s), `wt merge` takes no worktree argument
so it only gained the retention half of #3533, the Azure DevOps report
is behind `--full`, #3608 never touched `nightly.yaml`, and #3601
inverted what the FAQ change actually said. Two omissions were added —
the `install-statusline` foreign-statusline fix (#3595) and the shipped
`/wt-switch-create` skill change (#3636).

> _This was written by Claude Code on behalf of Maximilian_
2026-07-28 18:48:00 -07:00
dependabot[bot] 21ea6d6f1a chore: bump skim from 5.1.0 to 5.5.0 (#3626) 2026-07-27 22:33:38 -07:00
Maximilian Roos 6b29c2802b Release v0.69.2 (#3590)
Cuts v0.69.2, and fixes the Windows code-signing path it depends on.

## The signing fix

v0.69.1 shipped an unsigned `wt.exe` under a green run and a
**Completed** SignPath signing request. `archive: false` (#3566) had
already made the GitHub artifact name
`worktrunk-x86_64-pc-windows-msvc.zip`, and SignPath names its download
after the artifact — so with `output-artifact-directory: target/distrib`
the signed zip landed at `worktrunk-x86_64-pc-windows-msvc.zip.zip`,
beside the untouched unsigned build. The checksum step and the release
upload both kept reading the original. Confirmed by parsing the
published asset's PE certificate table: `size=0`.

The download now goes to a scratch directory and whatever single file
lands there replaces the built zip, so SignPath's naming isn't
load-bearing.

## Verification, because this failure is invisible

Signing is `continue-on-error` by design (self-signed test certificate
pending SignPath's OSS review), so nothing in the logs distinguishes
"signed" from "silently unsigned" — which is how it slipped through
twice, two different ways. `.github/verify-windows-signature.py` reads
the zip's PE certificate tables directly, and runs at two points with
distinct jobs:

- **before the overwrite** — an unsigned release is tolerable while the
certificate is a test one; a corrupt one never is, so the replacement
has to verify before it can clobber a good build.
- **after** — reports what the release actually ships, which is the
question the logs never answered.

## Rehearsed before landing

The signing path only runs on a tag, so each question about it used to
cost a release. This chain was instead run on a Windows runner against
the already-published v0.69.1 zip (identical bytes, no build):

```
saved to …\target\signpath\worktrunk-x86_64-pc-windows-msvc.zip.zip
git-wt.exe: certificate table 8480 bytes
wt.exe:     certificate table 8472 bytes
→ mv → target/distrib/worktrunk-x86_64-pc-windows-msvc.zip
target/distrib/worktrunk-x86_64-pc-windows-msvc.zip: all 2 executables signed
worktrunk-x86_64-pc-windows-msvc.zip: OK   (checksum matches)
```

That also settled the open question behind #3556: SignPath returns the
signed zip itself, not a wrapper, so `skip-decompress: true` is correct
— the extract mode does explode it into loose files.

## Release contents

`wt remove`'s fsmonitor sweep (#3581), the troubleshooting doc trim, and
this fix. The two refactors in range (#3582, #3584) are
behavior-preserving and omitted per convention.

Local gate green (4547 passed). Changelog entries verified against the
diffs by subagent; two claims corrected (the doc entry's rationale, and
an overclaim attributing v0.69.0's unsigned binary to this bug rather
than the separate upload failure #3566 fixed). Data-loss surface
reviewed across the cumulative diff.

> _This was written by Claude Code on behalf of max_
2026-07-24 20:02:13 -07:00
Maximilian Roos bd3ebaffde Release v0.69.1 (#3577)
Release v0.69.1.

A patch release: the Windows code-signing upload fix (`archive: false`,
so SignPath receives the real zip rather than a zip-of-a-zip), crates.io
publishing via trusted publishing (OIDC), a `wt switch` picker
correctness fix after a deleted-CWD recovery, and a statusline
dev-server URL dim. See CHANGELOG.md for the full list.

> _This was written by Claude Code on behalf of max_
2026-07-24 17:15:12 -07:00
Maximilian Roos 7b2e0705a1 Release v0.69.0 (#3559)
Highlights: clickable CI and dev-server-URL statusline segments in Claude Code (#3550), `wt merge --no-rebase` accepting merge-shaped fast-forward histories (#3509), a faster and lower-CPU `wt switch` picker (#3544, #3534), and SignPath code signing for the Windows release binary (#3553). Full details in CHANGELOG.md.

> _This was written by Claude Code on behalf of max_
2026-07-23 18:08:29 -07:00
Maximilian Roos a7c4a7a120 refactor(wt-perf): place fixtures under target/wt-perf, not the cache dir (#3547)
## What

Move every `wt-perf` on-disk fixture out of the per-user cache dir and
under the cargo target dir at `<target>/wt-perf/`, resolved by a renamed
`wt_perf_fixture_dir()`:

- `setup <config>` fixtures → `<target>/wt-perf/<config>` (was
`~/.cache/wt-perf/<config>`).
- The rust-lang/rust clone and `prune-real` fixtures →
`<target>/wt-perf/bench-repos/` (was `~/.cache/wt-perf/bench-repos/`).
- `wt_perf_cache_dir()` → `wt_perf_fixture_dir()`. The target dir is
derived from the **running executable's own path** (it lives inside
whichever dir cargo built into — `<target>/debug/wt-perf`,
`<target>/release/deps/<bench>`), so it honors `CARGO_TARGET_DIR`, a
config-file `build.target-dir`, and cargo-llvm-cov's
`target/llvm-cov-target/` — none of which a bare `CARGO_TARGET_DIR` env
read covers. Falls back to `<workspace>/target` if the binary isn't
under a recognizable profile dir. The `etcetera` dependency is dropped.
- The `WT_PERF_CACHE_DIR` env override (and the empty-value guard it
required) is removed; the benchmarks workflow now caches the
deterministic `target/wt-perf/bench-repos` path directly.
- In-process throwaway fixtures (`create_repo`) are unchanged — they
keep using `tempfile::TempDir`.

This reverses the location decision from #3542, which had moved these
into `~/.cache/wt-perf`.

## Why

`target/` is the conventional home for build/test-generated artifacts —
gitignored, reaped by `cargo clean`, and already where criterion writes
(`target/criterion`). Keeping every wt-perf fixture there gives one
predictable location under the repo that `cargo clean` fully resets.
Deriving the target dir from the running binary (rather than assuming
`<workspace>/target`) keeps that property intact even when the target
dir is relocated.

## Tradeoff (accepted)

`target/` is **not** shared across git worktrees (worktrees don't share
it) and is wiped by `cargo clean`. So the ~15 GiB `prune-real` rust
clone re-clones per worktree and after every `cargo clean` — the cost
#3542 avoided by using the cache dir. This is deliberate and documented
on `wt_perf_fixture_dir`; it's cheap for the synthetic `setup` fixtures,
which rebuild in seconds.

## Testing

- `cargo build -p wt-perf --all-targets`, `cargo test -p wt-perf` —
clean.
- New unit test `target_dir_from_exe_finds_cargo_target` covers the
resolution logic (relocated `CARGO_TARGET_DIR`, bench binary under
`release/deps/`, cargo-llvm-cov's nested target, closest-profile-wins,
and the outside-any-target fallback).
- `pre-commit run --all-files` (fmt, clippy, yaml, typos, cargo-lock,
custom hooks) — clean.
- Smoke-tested end-to-end: `setup branches-2` lands at
`<worktree>/target/wt-perf/branches-2` and writes nothing to
`~/.cache/`; a copy of the binary run from a fake `<dir>/debug/wt-perf`
correctly resolves fixtures to `<dir>/wt-perf/`, proving a relocated
target dir is honored.

> _This was written by Claude Code on behalf of Maximilian_

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 13:44:50 -07:00
Maximilian Roos 4121dc979c refactor(wt-perf): cache fixtures in the platform cache dir, not /tmp or target/ (#3542)
## What

Move `wt-perf`'s benchmark/debug fixture repos out of
`std::env::temp_dir()` and `target/bench-repos/` into the per-user cache
dir, resolved by a new `wt_perf_cache_dir()`:

- `$WT_PERF_CACHE_DIR` if set, else `<cache>/wt-perf` via
`etcetera::choose_base_strategy().cache_dir()` — `~/.cache/wt-perf` (or
`$XDG_CACHE_HOME/wt-perf`) on Linux **and** macOS. This matches
worktrunk's own base-dir convention (`src/config/user/path.rs` resolves
user config through the same XDG-on-macOS strategy).
- `setup <config>` fixtures → `<cache>/<config>` (was
`temp_dir()/wt-perf-<config>`). `--path` still overrides.
- Real cloned fixtures (`prune-real`, the rust-lang/rust clone) →
`<cache>/bench-repos/` (was `target/bench-repos/`).
- In-process throwaway fixtures (`create_repo`) are unchanged — they
keep using `tempfile::TempDir`.

## Why

Both old homes were wrong for a *reused* fixture (these are given stable
names, persist between runs, and are referenced from docs and `-C
<path>` — that's a cache, not a temp file):

- **A fixed name in a shared `/tmp` (Linux)** collides across users:
`/tmp` is sticky (`1777`), so a second user's `setup` hits
`remove_dir_all().unwrap()` on a dir they don't own → `EPERM` → panic.
It's also a predictable-path/TOCTOU hazard, and `systemd-tmpfiles` reaps
`/tmp` per-file at 10 days by `max(atime,mtime,ctime)` — on a `noatime`
mount an actively-*read* fixture still loses cold
`.git/objects/pack/*.pack` mid-use → silent git corruption.
- **On macOS**, `temp_dir()` is already `/var/folders/.../T` (per-user,
`0700`), so the docs' `/tmp/wt-perf-*` paths were simply wrong there.
- **`target/`** is per-worktree (git worktrees don't share it) and wiped
by `cargo clean`, so the ~15 GiB rust clone was re-cloned per worktree —
worst for the most expensive fixture, in a worktree-heavy workflow.

The cache dir is per-user (no collision, no TOCTOU), stable and
discoverable (docs/`-C` references still work), shared across worktrees
(clone once per machine), and survives `cargo clean` — matching sccache,
cargo, rustup, Go, Bazel, and Hugging Face, which all place large
reusable caches there rather than in `/tmp`.

## Migration notes

- First bench/setup run after this rebuilds the cache under the new
location (the old `target/bench-repos/` is no longer read). Existing
fixtures can be dropped with `rm -rf target/bench-repos`.
- `.github/workflows/benchmarks.yaml` sets `WT_PERF_CACHE_DIR` and
caches `$WT_PERF_CACHE_DIR/bench-repos`, so the cached path and the path
wt-perf writes stay pinned together (no drift if a runner sets
`$XDG_CACHE_HOME`); key unchanged.
- Docs (`benches/CLAUDE.md`, `src/commands/CLAUDE.md`) updated to the
new paths, noting that `wt-perf setup` prints the exact path.

## Testing

- `cargo build --workspace --all-targets`, `cargo clippy --workspace
--all-targets --features shell-integration-tests -- -D warnings` —
clean.
- `cargo test -p wt-perf` — passes.
- Smoke-tested default resolution (`~/.cache/wt-perf/…` on macOS),
`$WT_PERF_CACHE_DIR` override, and the `prune-real --path` rejection
(now names the resolved cache path).

> _This was written by Claude Code on behalf of Maximilian_

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 03:05:10 -07:00
Maximilian Roos bf9e603ccd build(deps): hold skim at 5.1.0 — 5.3.1 breaks the picker on legacy Windows (#3538)
## Problem

skim 5.3.1 breaks the picker on the legacy Windows console. Every picker
PTY test on `test (windows)` fails with:

```
✗ interactive picker failed: Keyboard progressive enhancement not implemented for the legacy Windows API.
```

That is a crossterm keyboard-enhancement error: the picker (via skim
5.3.1) drives keyboard-enhancement handling that the legacy Windows
console API doesn't support, crashing the picker at runtime. ~40
`switch_picker` tests fail as a result.

## Evidence it's skim 5.3.1

- **#3526 (bump skim 5.1.0 → 5.3.1) merged with its own `full-tests
(windows)` already red** — the regression landed on main unnoticed.
- **main at skim 5.1.0 (`0958a365b`) was green on `test (windows)` the
same day.** The only relevant change between that green run and the
failures is the skim bump.
- The failure is a picker runtime crash, unrelated to any picker source
change — no `switch_picker` code moved.

Since it's on main, it reddens Windows CI for every open PR (e.g.
#3346), not just one branch.

## Fix

Pin `skim = "=5.1.0"` in `Cargo.toml` — the last Windows-green release —
with a comment naming the regression.

`Cargo.toml` specified `skim = "5.0"` (a caret range that `5.3.1`
satisfies), so #3526 changed **only** the lockfile. A lock-only revert
would silently drift back to 5.3.1 on the next `cargo update`, so the
hold has to live in the manifest. The lockfile downgrade (skim 5.3.1 →
5.1.0, frizbee 0.11.0 → 0.10.0 and the deps that pulls) follows from the
pin.

Unpin once skim's keyboard-enhancement path is guarded for the legacy
Windows console (upstream fix, or a worktrunk-side guard before enabling
enhancement).

## Testing

- `cargo run -- hook pre-merge --yes` — full suite green locally (4475
passed, 1 skipped), including the `switch_picker` tests that fail on
Windows at 5.3.1.
- CI will confirm `test (windows)` returns to green.

> _This was written by Claude Code on behalf of Maximilian Roos_

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 01:46:12 -07:00
dependabot[bot] 87715c305b chore: bump skim from 5.1.0 to 5.3.1 (#3526)
Bumps [skim](https://github.com/skim-rs/skim) from 5.1.0 to 5.3.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/skim-rs/skim/releases">skim's
releases</a>.</em></p>
<blockquote>
<h2>5.3.1 - 2026-07-19</h2>
<h2>Release Notes</h2>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>Ignore KeyEventState (<a
href="https://redirect.github.com/skim-rs/skim/issues/1127">#1127</a>)</li>
</ul>
<h2>Install skim 5.3.1</h2>
<h3>Install prebuilt binaries via shell script</h3>
<pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf
https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-installer.sh
| sh
</code></pre>
<h3>Install prebuilt binaries via powershell script</h3>
<pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c &quot;irm
https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-installer.ps1
| iex&quot;
</code></pre>
<h2>Download skim 5.3.1</h2>
<table>
<thead>
<tr>
<th>File</th>
<th>Platform</th>
<th>Checksum</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-aarch64-apple-darwin.tar.xz">skim-aarch64-apple-darwin.tar.xz</a></td>
<td>Apple Silicon macOS</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-aarch64-apple-darwin.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-x86_64-apple-darwin.tar.xz">skim-x86_64-apple-darwin.tar.xz</a></td>
<td>Intel macOS</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-x86_64-apple-darwin.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-x86_64-pc-windows-msvc.zip">skim-x86_64-pc-windows-msvc.zip</a></td>
<td>x64 Windows</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-x86_64-pc-windows-msvc.msi">skim-x86_64-pc-windows-msvc.msi</a></td>
<td>x64 Windows</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-x86_64-pc-windows-msvc.msi.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-aarch64-unknown-linux-gnu.tar.xz">skim-aarch64-unknown-linux-gnu.tar.xz</a></td>
<td>ARM64 Linux</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-aarch64-unknown-linux-gnu.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-x86_64-unknown-linux-gnu.tar.xz">skim-x86_64-unknown-linux-gnu.tar.xz</a></td>
<td>x64 Linux</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-x86_64-unknown-linux-gnu.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-aarch64-unknown-linux-musl.tar.xz">skim-aarch64-unknown-linux-musl.tar.xz</a></td>
<td>ARM64 MUSL Linux</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-aarch64-unknown-linux-musl.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-x86_64-unknown-linux-musl.tar.xz">skim-x86_64-unknown-linux-musl.tar.xz</a></td>
<td>x64 MUSL Linux</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.3.1/skim-x86_64-unknown-linux-musl.tar.xz.sha256">checksum</a></td>
</tr>
</tbody>
</table>
<h2>5.3.0 - 2026-07-19</h2>
<h2>Release Notes</h2>
<h3>🚀 Features</h3>
<ul>
<li>Add 'left' and <code>right</code> info display modes (<a
href="https://redirect.github.com/skim-rs/skim/issues/1120">#1120</a>)</li>
<li>Add <code>--hide-nth</code> to hide fields from display but keep
them searchable (<a
href="https://redirect.github.com/skim-rs/skim/issues/1122">#1122</a>)</li>
<li>Add bind and unbind actions (<a
href="https://redirect.github.com/skim-rs/skim/issues/1121">#1121</a>)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>Kitty keyboard protocol</li>
</ul>
<h3>🤖 CI</h3>
<ul>
<li>Add public-api check (<a
href="https://redirect.github.com/skim-rs/skim/issues/1124">#1124</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/skim-rs/skim/blob/master/CHANGELOG.md">skim's
changelog</a>.</em></p>
<blockquote>
<h2>[5.3.1] - 2026-07-19</h2>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>Ignore KeyEventState (<a
href="https://redirect.github.com/skim-rs/skim/issues/1127">#1127</a>)</li>
</ul>
<h2>[5.3.0] - 2026-07-19</h2>
<h3>🚀 Features</h3>
<ul>
<li>Add 'left' and <code>right</code> info display modes (<a
href="https://redirect.github.com/skim-rs/skim/issues/1120">#1120</a>)</li>
<li>Add <code>--hide-nth</code> to hide fields from display but keep
them searchable (<a
href="https://redirect.github.com/skim-rs/skim/issues/1122">#1122</a>)</li>
<li>Add bind and unbind actions (<a
href="https://redirect.github.com/skim-rs/skim/issues/1121">#1121</a>)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>Kitty keyboard protocol</li>
</ul>
<h3>🤖 CI</h3>
<ul>
<li>Add public-api check (<a
href="https://redirect.github.com/skim-rs/skim/issues/1124">#1124</a>)</li>
</ul>
<h2>[5.2.0] - 2026-07-17</h2>
<h3>🚀 Features</h3>
<ul>
<li>Collapsed borders by default and <code>--border-no-collapse</code>
flag (<a
href="https://redirect.github.com/skim-rs/skim/issues/1117">#1117</a>)</li>
<li>Reduce binary size by removing uncommon image formats and color_eyre
(<a
href="https://redirect.github.com/skim-rs/skim/issues/1118">#1118</a>)</li>
</ul>
<h2>[5.1.4] - 2026-07-17</h2>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>Preserve input order with --no-sort (<a
href="https://redirect.github.com/skim-rs/skim/issues/1115">#1115</a>)</li>
</ul>
<h3>New Contributors</h3>
<ul>
<li><a href="https://github.com/juneboku"><code>@​juneboku</code></a>
made their first contribution in <a
href="https://redirect.github.com/skim-rs/skim/pull/1115">#1115</a></li>
</ul>
<h2>[5.1.3] - 2026-07-16</h2>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>Manually resize the Tui when not in fullscreen mode</li>
</ul>
<h3>🤖 CI</h3>
<ul>
<li>Fix fixed viewport resize test in non-interactive env (<a
href="https://redirect.github.com/skim-rs/skim/issues/1114">#1114</a>)</li>
</ul>
<h3>⚙️ Miscellaneous Tasks</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/skim-rs/skim/commit/6dbe37a7fa43f69d906f42b647a5b0221f721bd8"><code>6dbe37a</code></a>
release: v5.3.1 (<a
href="https://redirect.github.com/skim-rs/skim/issues/1128">#1128</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/6f94d80973063e3464ef169afbf27034642cde35"><code>6f94d80</code></a>
fix: ignore KeyEventState (<a
href="https://redirect.github.com/skim-rs/skim/issues/1127">#1127</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/4d093a42e1ebf94c64d7950e2d4817b30089ae05"><code>4d093a4</code></a>
release: v5.3.0 (<a
href="https://redirect.github.com/skim-rs/skim/issues/1123">#1123</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/3c3f26ebc923491031f2728928fd3c18efe46163"><code>3c3f26e</code></a>
fix: kitty keyboard protocol</li>
<li><a
href="https://github.com/skim-rs/skim/commit/ad97bfa7deeee352d743f41ec7cb8bd4b26b4bf6"><code>ad97bfa</code></a>
feat: add bind and unbind actions (<a
href="https://redirect.github.com/skim-rs/skim/issues/1121">#1121</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/ff98133bbd4502633a5b01fcadcadccccef437e0"><code>ff98133</code></a>
ci: add public-api check (<a
href="https://redirect.github.com/skim-rs/skim/issues/1124">#1124</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/dce26d622a7caec4649b2d379c029a64e4fad66e"><code>dce26d6</code></a>
feat: add <code>--hide-nth</code> to hide fields from display but keep
them searchable (...</li>
<li><a
href="https://github.com/skim-rs/skim/commit/55aa7dacd573ccea22f1c3fb655e0a4f91f297a7"><code>55aa7da</code></a>
feat: add 'left' and <code>right</code> info display modes (<a
href="https://redirect.github.com/skim-rs/skim/issues/1120">#1120</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/57a7487323b7f63f28a0e142ba38136b79dca11b"><code>57a7487</code></a>
release: v5.2.0 (<a
href="https://redirect.github.com/skim-rs/skim/issues/1119">#1119</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/bb6c03f3771766a1830e7c48c3abc26af02de97f"><code>bb6c03f</code></a>
feat: reduce binary size by removing uncommon image formats and
color_eyre (#...</li>
<li>Additional commits viewable in <a
href="https://github.com/skim-rs/skim/compare/v5.1.0...v5.3.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=skim&package-manager=cargo&previous-version=5.1.0&new-version=5.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 18:46:06 -07:00
dependabot[bot] 076e09a2e4 chore: bump tokio from 1.52.3 to 1.53.0 (#3525)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.52.3 to 1.53.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tokio/releases">tokio's
releases</a>.</em></p>
<blockquote>
<h2>Tokio v1.53.0</h2>
<h1>1.53.0 (July 17th, 2026)</h1>
<h3>Added</h3>
<ul>
<li>fs: implement <code>From&lt;OwnedFd&gt;</code> and
<code>From&lt;OwnedHandle&gt;</code> for <code>File</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8266">#8266</a>)</li>
<li>metrics: add task schedule latency metric (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7986">#7986</a>)</li>
<li>net: add <code>SocketAddr</code> methods to Unix sockets (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8144">#8144</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>io: add <code>#[inline]</code> to IO trait impls for in-memory types
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8242">#8242</a>)</li>
<li>net: implement UCred::pid on FreeBSD (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8086">#8086</a>)</li>
<li>net: support Nuttx target os (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8259">#8259</a>)</li>
<li>signal: refactor global variables on Windows (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8231">#8231</a>)</li>
<li>sync: <code>mpsc::{Receiver,UnboundedReceiver}</code> now drops
waker on drop, even if there are still senders (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8095">#8095</a>)</li>
<li>taskdump: support taskdumps on s390x (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8192">#8192</a>)</li>
<li>time: add <code>#[track_caller]</code> to <code>timeout_at()</code>
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8077">#8077</a>)</li>
<li>time: consolidate mutex locks on spurious poll (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8124">#8124</a>)</li>
<li>time: defer waker clone on spurious poll (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8107">#8107</a>)</li>
<li>time: move lazy-registration state into <code>Sleep</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8132">#8132</a>)</li>
<li>tracing: remove unnecessary span clone (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8126">#8126</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>io: do not treat zero-length reads as EOF in <code>Chain</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8251">#8251</a>)</li>
<li>net: use getpeereid for QNX peer credentials (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8270">#8270</a>)</li>
<li>runtime: avoid illegal state in <code>FastRand</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8078">#8078</a>)</li>
<li>sync: wake mpsc receiver when a queued <code>reserve[_many]</code>
returns permits (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8260">#8260</a>)</li>
<li>taskdump: skip double wake on
<code>Trace::capture</code>/<code>Trace::trace_with</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8043">#8043</a>)</li>
<li>time: avoid stack overflow in runtime constructor (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8093">#8093</a>)</li>
<li>time (alt timer): ensure timers stay in the same runtime after
<code>.reset()</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8169">#8169</a>)</li>
</ul>
<h3>IO uring (unstable)</h3>
<ul>
<li>fs: use io-uring for <code>fs::try_exists</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8080">#8080</a>)</li>
<li>fs: use io-uring for renaming files (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7800">#7800</a>)</li>
<li>rt: flush io-uring CQE in case of CQE overflow (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8277">#8277</a>)</li>
</ul>
<h3>Documented</h3>
<ul>
<li>docs: clarify cancel safety wording (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8181">#8181</a>)</li>
<li>fs: clarify <code>create_dir_all</code> succeeds if path exists (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8149">#8149</a>)</li>
<li>io: add warning about stdout reordering with multiple handles (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8276">#8276</a>)</li>
<li>net: document pipe <code>try_read*</code>/<code>try_write*</code>
readiness behavior (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8032">#8032</a>)</li>
<li>runtime: document interaction with fork() (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8202">#8202</a>)</li>
<li>sync: clarify broadcast lagging semantics (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8239">#8239</a>)</li>
<li>sync: document memory ordering guarantees for Semaphore (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8119">#8119</a>)</li>
<li>task: explain why <code>yield_now</code> defers its waker (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8254">#8254</a>)</li>
<li>time: add panic docs to <code>timeout_at()</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8077">#8077</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tokio-rs/tokio/commit/be689a35f5ade5a39e507f79d3ec85cdab27806f"><code>be689a3</code></a>
chore: prepare Tokio v1.53.0 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8294">#8294</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/50f76c71ec7203013f7f0cda59deaa9016e93939"><code>50f76c7</code></a>
chore: prepare tokio-macros v2.7.1 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8295">#8295</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/f61fccad3cd598cce743fc511a983364b77af92a"><code>f61fcca</code></a>
Merge 'tokio-1.52.4' into 'master' (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8290">#8290</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/efdba5fcf02c4b93d379114df136b994c3b21445"><code>efdba5f</code></a>
chore: prepare Tokio v1.52.4 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8289">#8289</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/b0ba02e75507518baed6718b0c37105e430f3a93"><code>b0ba02e</code></a>
Merge 'tokio-1.51.4' into 'tokio-1.52.x' (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8288">#8288</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/7bcd2d343d997a658be5bc165520070c997fefbc"><code>7bcd2d3</code></a>
taskdump: remove crate disambiguators from output (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8288">#8288</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/f84b209126a9b0f66dae1025e30e44d217205513"><code>f84b209</code></a>
chore: prepare Tokio v1.51.4 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8286">#8286</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/eacb98e18901fcbe011bfceddbc31853f1bf0c27"><code>eacb98e</code></a>
runtime: don't skip the driver when <code>before_park</code> schedules
work (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8222">#8222</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/5e16ee00faae5b81a58f70b734577b800e0b203b"><code>5e16ee0</code></a>
task: avoid replacing the JoinQueue waker in <code>try_join_next</code>
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8279">#8279</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/88212ab64afd2b2f87deeb073f9eef6aaaad3701"><code>88212ab</code></a>
sync: document memory ordering guarantees for Semaphore (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8119">#8119</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-1.52.3...tokio-1.53.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio&package-manager=cargo&previous-version=1.52.3&new-version=1.53.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 18:46:04 -07:00
dependabot[bot] 0958a365bb chore: bump the patch group with 6 updates (#3524)
Bumps the patch group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [anyhow](https://github.com/dtolnay/anyhow) | `1.0.103` | `1.0.104` |
| [clap](https://github.com/clap-rs/clap) | `4.6.1` | `4.6.2` |
| [serde](https://github.com/serde-rs/serde) | `1.0.228` | `1.0.229` |
| [which](https://github.com/harryfei/which-rs) | `8.0.4` | `8.0.5` |
| [regex](https://github.com/rust-lang/regex) | `1.13.0` | `1.13.1` |
| [ignore](https://github.com/BurntSushi/ripgrep) | `0.4.28` | `0.4.30`
|

Updates `anyhow` from 1.0.103 to 1.0.104
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/anyhow/releases">anyhow's
releases</a>.</em></p>
<blockquote>
<h2>1.0.104</h2>
<ul>
<li>Update <code>syn</code> dev-dependency to version 3</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/dtolnay/anyhow/commit/1dbe1862aae650423e3361fbd20b7d17c5109cc3"><code>1dbe186</code></a>
Release 1.0.104</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/f6479f8e5e10761d7fecde0970cff363dc644d92"><code>f6479f8</code></a>
Update to syn 3</li>
<li>See full diff in <a
href="https://github.com/dtolnay/anyhow/compare/1.0.103...1.0.104">compare
view</a></li>
</ul>
</details>
<br />

Updates `clap` from 4.6.1 to 4.6.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/releases">clap's
releases</a>.</em></p>
<blockquote>
<h2>v4.6.2</h2>
<h2>[4.6.2] - 2026-07-15</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Say <code>alias</code> when there is only one</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's
changelog</a>.</em></p>
<blockquote>
<h2>[4.6.2] - 2026-07-15</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Say <code>alias</code> when there is only one</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/clap-rs/clap/commit/0fe0be302726f4253b9bee27eed48438c92917aa"><code>0fe0be3</code></a>
chore: Release</li>
<li><a
href="https://github.com/clap-rs/clap/commit/480af9d045453f4ab96d9bdd4d4b9f5aab3c272f"><code>480af9d</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/clap-rs/clap/commit/2b3ddd0294a147d1eda917cb303243bcde0c12ee"><code>2b3ddd0</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/6340">#6340</a>
from liskin/fix-completion-escape</li>
<li><a
href="https://github.com/clap-rs/clap/commit/7ffe7399ff032cc247eb0449cf8fcdfbfe55a4ec"><code>7ffe739</code></a>
fix(complete): Do not suggest options after &quot;--&quot;</li>
<li><a
href="https://github.com/clap-rs/clap/commit/d47fc4f8a5e9fcc16d0cae15b51e6eb1a8ed5832"><code>d47fc4f</code></a>
test(complete): Options suggested after escape (<code>--</code>)</li>
<li>See full diff in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.6.1...clap_complete-v4.6.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `serde` from 1.0.228 to 1.0.229
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/serde-rs/serde/releases">serde's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.229</h2>
<ul>
<li>Update to syn 3</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/serde-rs/serde/commit/7fc3b4c30c94f73a96ebd1553f2b090d928fc3a8"><code>7fc3b4c</code></a>
Release 1.0.229</li>
<li><a
href="https://github.com/serde-rs/serde/commit/6d6e9a11101354ce769a3438a088b6b9305c1863"><code>6d6e9a1</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/serde/issues/3085">#3085</a>
from dtolnay/syn3</li>
<li><a
href="https://github.com/serde-rs/serde/commit/6dec3b751126c8338cac0fe8085612d695e4ecf3"><code>6dec3b7</code></a>
Update to syn 3</li>
<li><a
href="https://github.com/serde-rs/serde/commit/cfe669241065984177ff63af8b45058e6e9b499d"><code>cfe6692</code></a>
Resolve mut_mut pedantic clippy lint</li>
<li><a
href="https://github.com/serde-rs/serde/commit/1023d077510b4aef36a41ef56fdb7798568a2654"><code>1023d07</code></a>
Update actions/upload-artifact@v6 -&gt; v7</li>
<li><a
href="https://github.com/serde-rs/serde/commit/dd682c2c86aa7629e77c1ccd93212d3729f4c66d"><code>dd682c2</code></a>
Update actions/checkout@v6 -&gt; v7</li>
<li><a
href="https://github.com/serde-rs/serde/commit/5f0f18b9211732f2d82f73b5a43e4f5ff3701251"><code>5f0f18b</code></a>
Update ui test suite to nightly-2026-06-01</li>
<li><a
href="https://github.com/serde-rs/serde/commit/63a1498f0e7be991ffac5939bdd202ca16e9a23f"><code>63a1498</code></a>
Regenerate stderr with trybuild normalization fixes</li>
<li><a
href="https://github.com/serde-rs/serde/commit/fa7da4a93567ed347ad0735c28e439fca688ef26"><code>fa7da4a</code></a>
Fix unused_features warning</li>
<li><a
href="https://github.com/serde-rs/serde/commit/6b1a17851ea3d86a56aa116ca1cbf428f8d5f22d"><code>6b1a178</code></a>
Unpin CI miri toolchain</li>
<li>Additional commits viewable in <a
href="https://github.com/serde-rs/serde/compare/v1.0.228...v1.0.229">compare
view</a></li>
</ul>
</details>
<br />

Updates `which` from 8.0.4 to 8.0.5
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/harryfei/which-rs/releases">which's
releases</a>.</em></p>
<blockquote>
<h2>8.0.5</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix absolute path lookup when cwd is disabled by <a
href="https://github.com/weifanglab"><code>@​weifanglab</code></a> in <a
href="https://redirect.github.com/harryfei/which-rs/pull/126">harryfei/which-rs#126</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/weifanglab"><code>@​weifanglab</code></a> made
their first contribution in <a
href="https://redirect.github.com/harryfei/which-rs/pull/126">harryfei/which-rs#126</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/harryfei/which-rs/compare/8.0.4...8.0.5">https://github.com/harryfei/which-rs/compare/8.0.4...8.0.5</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/harryfei/which-rs/blob/master/CHANGELOG.md">which's
changelog</a>.</em></p>
<blockquote>
<h2>8.0.5</h2>
<ul>
<li>Bug fix: <a
href="https://redirect.github.com/harryfei/which-rs/pull/126">#126</a>
Do not use current directory for search when provided path is absolute.
Thanks <a
href="https://github.com/weifanglab"><code>@​weifanglab</code></a> for
your contribution to which!</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/harryfei/which-rs/commit/7fba0e04d0674bbe8ccf5bfb4f09b1d00925806f"><code>7fba0e0</code></a>
bump version number, update CHANGELOG.md</li>
<li><a
href="https://github.com/harryfei/which-rs/commit/e28a3bf34e41bcc009b990e6c05b4a6e6b01635f"><code>e28a3bf</code></a>
Fix absolute path lookup when cwd is disabled (<a
href="https://redirect.github.com/harryfei/which-rs/issues/126">#126</a>)</li>
<li>See full diff in <a
href="https://github.com/harryfei/which-rs/compare/8.0.4...8.0.5">compare
view</a></li>
</ul>
</details>
<br />

Updates `regex` from 1.13.0 to 1.13.1
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/regex/blob/master/CHANGELOG.md">regex's
changelog</a>.</em></p>
<blockquote>
<h1>1.13.1 (2026-07-15)</h1>
<p>This is a release that fixes a bug where incorrect regex match
offsets could be
reported. Note that this doesn't impact whether a match occurs or not,
just
where it occurs. The match offsets are still valid for slicing, they
just may
not refer to the correct leftmost-first match. See
<a
href="https://redirect.github.com/rust-lang/regex/pull/1364">#1364</a>
for (many) more details.</p>
<p>Bug fixes:</p>
<ul>
<li><a
href="https://redirect.github.com/rust-lang/regex/issues/1354">#1354</a>:
Fixes previously unsound reverse suffix and inner optimizations.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-lang/regex/commit/2b527599eb9eea0dcc288c704584f242f26a5c61"><code>2b52759</code></a>
1.13.1, redux</li>
<li><a
href="https://github.com/rust-lang/regex/commit/40e98238fff903f3e1ec95bbdb487185dd60504a"><code>40e9823</code></a>
1.13.1</li>
<li><a
href="https://github.com/rust-lang/regex/commit/75fcb962d6ea1c456f6f023c9537a66389413a85"><code>75fcb96</code></a>
changelog: 1.13.1</li>
<li><a
href="https://github.com/rust-lang/regex/commit/64ad0b618e043b791ed5385dd5504a436da1ddae"><code>64ad0b6</code></a>
automata: fix bug in reverse suffix/inner optimization</li>
<li><a
href="https://github.com/rust-lang/regex/commit/fa91c31a4291c9dda6afe19829e6fe2e3bbc2da5"><code>fa91c31</code></a>
automata: fix a bug caught by Codex review</li>
<li><a
href="https://github.com/rust-lang/regex/commit/30390ec3e8889aad830337cdf3a7a01ae195ae73"><code>30390ec</code></a>
automata: formatting tweaks</li>
<li><a
href="https://github.com/rust-lang/regex/commit/821a8eb1ad7860ddc788fe36f495036df63cfc35"><code>821a8eb</code></a>
automata: refactor reverse suffix/inner search slightly</li>
<li><a
href="https://github.com/rust-lang/regex/commit/10afd704d88d00ddfcd10218883a81b3ae5e4831"><code>10afd70</code></a>
automata: expose the extracted literals for inner literal
extraction</li>
<li><a
href="https://github.com/rust-lang/regex/commit/8c34f41d3c5a0e16ce17dfb964587cb48625a8d5"><code>8c34f41</code></a>
automata: avoid reverse suffix optimization for non-leftmost-first</li>
<li><a
href="https://github.com/rust-lang/regex/commit/5524f02430d2d118d5c34fde54136d08376de711"><code>5524f02</code></a>
test: add regression tests for failed reverse suffix/inner
optimizations</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-lang/regex/compare/1.13.0...1.13.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `ignore` from 0.4.28 to 0.4.30
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/227381db0ee83dfa4341f1e27ff9617c0f5ad992"><code>227381d</code></a>
ignore-0.4.30</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/b621e65b4fc8a50b55576b07526f21c5d051ad71"><code>b621e65</code></a>
ignore: add incremental checking</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/c55818fd32d68cf742aea67bce86529f198bc985"><code>c55818f</code></a>
ignore: more pathutil clean-up</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/6e527e9202f85a39ab2c4698636710204eb096e0"><code>6e527e9</code></a>
ignore: add routine for checking if a path is hidden or not</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/626b8951acbced7ff710f4e01624a05f219eec38"><code>626b895</code></a>
ignore: refactor <code>is_hidden</code></li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/0d7054d8e466d6aa0a6bb6cf121e87225d26df44"><code>0d7054d</code></a>
ignore: fix deadlock when visitor panics</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/576005b322c41174bb21d76122b1411e5d983402"><code>576005b</code></a>
grep-searcher-0.1.17</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/432976d69cdff36d5a0d6845b093cf3f67262b43"><code>432976d</code></a>
grep-pcre2-0.1.10</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/41e0ae702bcbd47b093a33ee73f1497aa4ed20d6"><code>41e0ae7</code></a>
grep-matcher-0.1.9</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/40ffc6e0bd990ba6e56702ed1ec519b7ad96a1e7"><code>40ffc6e</code></a>
ignore-0.4.29</li>
<li>Additional commits viewable in <a
href="https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.28...ignore-0.4.30">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 18:46:01 -07:00
Maximilian Roos fd97aa8bc3 Release v0.68.0 (#3484)
Release v0.68.0. Highlights: on-demand picker preview tabs (#3439),
bare-repo project config read from the object store when the default
branch is checked out nowhere (#3462), shell detection via the process
tree (#3455), and `wt config state` flagging a stale default-branch
cache (#3478). Full details in CHANGELOG.md.

> _This was written by Claude Code on behalf of max_
2026-07-15 16:18:23 -07:00
dependabot[bot] 6895ce23e1 chore: bump the patch group with 4 updates (#3445)
Bumps the patch group with 4 updates:
[crossbeam-channel](https://github.com/crossbeam-rs/crossbeam),
[tree-sitter](https://github.com/tree-sitter/tree-sitter),
[tree-sitter-highlight](https://github.com/tree-sitter/tree-sitter) and
[ignore](https://github.com/BurntSushi/ripgrep).

Updates `crossbeam-channel` from 0.5.15 to 0.5.16
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/crossbeam-rs/crossbeam/releases">crossbeam-channel's
releases</a>.</em></p>
<blockquote>
<h2>crossbeam-channel 0.5.16</h2>
<ul>
<li>Improve support for rust-analyzer auto-completion of code inside
<code>select!</code>/<code>select_biased!</code> macro. (<a
href="https://redirect.github.com/crossbeam-rs/crossbeam/issues/1240">#1240</a>)</li>
<li>Make <code>never</code> const. (<a
href="https://redirect.github.com/crossbeam-rs/crossbeam/issues/1250">#1250</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/crossbeam-rs/crossbeam/commit/9b56303b8aa9ff8ec5bbebb9d2da05e034977889"><code>9b56303</code></a>
Prepare for the next release</li>
<li><a
href="https://github.com/crossbeam-rs/crossbeam/commit/a078b17b7319ab49e53720ebeed8fa8a539a8e18"><code>a078b17</code></a>
ci: Sync config with main</li>
<li><a
href="https://github.com/crossbeam-rs/crossbeam/commit/508c29d3c27d7e27791244644dae2169a2f1678a"><code>508c29d</code></a>
Remove crossbeam-skiplist which is not published from this branch from
worksp...</li>
<li><a
href="https://github.com/crossbeam-rs/crossbeam/commit/6a20e57c492da6ba327b587bc5f38c7a4a3067ef"><code>6a20e57</code></a>
tests: Fix mismatched_lifetime_syntaxes</li>
<li><a
href="https://github.com/crossbeam-rs/crossbeam/commit/c2d674f88af9501a0a939d8d4b0d52bdbc453ef9"><code>c2d674f</code></a>
epoch: Fix rustdoc::invalid_rust_codeblocks</li>
<li><a
href="https://github.com/crossbeam-rs/crossbeam/commit/bd6563e2118a5f2e9eec0f9e16006d428b82ffb0"><code>bd6563e</code></a>
Update no_atomic.rs</li>
<li><a
href="https://github.com/crossbeam-rs/crossbeam/commit/d3e1e364093763a40affe7ea3ff8368c7dc25ee9"><code>d3e1e36</code></a>
Make CachePadded&lt;T&gt; have C repr to allow casting to and from T (<a
href="https://redirect.github.com/crossbeam-rs/crossbeam/issues/1270">#1270</a>)</li>
<li><a
href="https://github.com/crossbeam-rs/crossbeam/commit/c0c466e5c3b5f177884e1df5f8f2c8c939c31aab"><code>c0c466e</code></a>
channel: Use non-poison Mutex</li>
<li><a
href="https://github.com/crossbeam-rs/crossbeam/commit/8b3940f1063f2e0795e44d3f5dde973f08e2a50b"><code>8b3940f</code></a>
Add missing word to docs (<a
href="https://redirect.github.com/crossbeam-rs/crossbeam/issues/1208">#1208</a>)</li>
<li><a
href="https://github.com/crossbeam-rs/crossbeam/commit/df6eec0610f91de504a5834c9faa0de40e3aec83"><code>df6eec0</code></a>
docs: Link <code>select_biased!</code> from <code>select!</code> macro
(<a
href="https://redirect.github.com/crossbeam-rs/crossbeam/issues/1202">#1202</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/crossbeam-rs/crossbeam/compare/crossbeam-channel-0.5.15...crossbeam-channel-0.5.16">compare
view</a></li>
</ul>
</details>
<br />

Updates `tree-sitter` from 0.26.10 to 0.26.11
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tree-sitter/tree-sitter/releases">tree-sitter's
releases</a>.</em></p>
<blockquote>
<h2>v0.26.11</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(deps): zig manifest for wasmtime is missing windows hashes by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5720">tree-sitter/tree-sitter#5720</a></li>
<li>fix(xtask): eliminate silent errors in zig fetch by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5724">tree-sitter/tree-sitter#5724</a></li>
<li>fix(query): short-circuit longest-match dedup for disjoint states by
<a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5726">tree-sitter/tree-sitter#5726</a></li>
<li>fix(query): various anchor fixes by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5727">tree-sitter/tree-sitter#5727</a></li>
<li>Fix C++ compilation errors in array macros. by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5735">tree-sitter/tree-sitter#5735</a></li>
<li>fix(rust): address new clippy lints by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5743">tree-sitter/tree-sitter#5743</a></li>
<li>fix(generate): strip non-ASCII case folds by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5744">tree-sitter/tree-sitter#5744</a></li>
<li>fix(ci): re-set executable permission on release artifacts before
zipping by <a href="https://github.com/clason"><code>@​clason</code></a>
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5746">tree-sitter/tree-sitter#5746</a></li>
<li>release v0.26.11 by <a
href="https://github.com/clason"><code>@​clason</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5748">tree-sitter/tree-sitter#5748</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tree-sitter/tree-sitter/compare/v0.26.10...v0.26.11">https://github.com/tree-sitter/tree-sitter/compare/v0.26.10...v0.26.11</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/64402de2857cc197ecc4ca3bc144ea91fda7e72e"><code>64402de</code></a>
release v0.26.11</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/2194ac1a9c9fb8960b8471daade1da07aaeb2b0b"><code>2194ac1</code></a>
fix(ci): re-set executable permission on release artifacts before
zipping</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/a2b8369c4a18373c08a8b7e742fac8b14674eefc"><code>a2b8369</code></a>
fix(generate): strip non-ASCII case folds</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/1ae3cc575388c8429a8991b8c9580946243598a7"><code>1ae3cc5</code></a>
fix(rust): address new clippy lints</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/90dd1a0cfbf6262483a9e5953a35659585129120"><code>90dd1a0</code></a>
fix(templates): generated array macros do not compile with C++</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/fa6222a0d37ecf2bfb4fccd31e857133f3e81930"><code>fa6222a</code></a>
docs(queries): clarify behavior of first child anchor example</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/77b741bb8309d6755797f942bf0ff1a9a74475a4"><code>77b741b</code></a>
docs(queries): specify anchor behavior with quantifiers and groups</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/1c21ff33d688c328a687e37a7f4215136b6e6dc6"><code>1c21ff3</code></a>
fix(query): apply a trailing anchor when its optional node is
skipped</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/5756ced350638708becc00d7ccb2e8d171b4feae"><code>5756ced</code></a>
fix(query): make an anchor after a zero-matched quantifier vacuous</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/eca86a7a6c77c0a7124a59be712661256e361cbd"><code>eca86a7</code></a>
fix(query): forbid an anchor at the end of a group</li>
<li>Additional commits viewable in <a
href="https://github.com/tree-sitter/tree-sitter/compare/v0.26.10...v0.26.11">compare
view</a></li>
</ul>
</details>
<br />

Updates `tree-sitter-highlight` from 0.26.10 to 0.26.11
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tree-sitter/tree-sitter/releases">tree-sitter-highlight's
releases</a>.</em></p>
<blockquote>
<h2>v0.26.11</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(deps): zig manifest for wasmtime is missing windows hashes by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5720">tree-sitter/tree-sitter#5720</a></li>
<li>fix(xtask): eliminate silent errors in zig fetch by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5724">tree-sitter/tree-sitter#5724</a></li>
<li>fix(query): short-circuit longest-match dedup for disjoint states by
<a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5726">tree-sitter/tree-sitter#5726</a></li>
<li>fix(query): various anchor fixes by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5727">tree-sitter/tree-sitter#5727</a></li>
<li>Fix C++ compilation errors in array macros. by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5735">tree-sitter/tree-sitter#5735</a></li>
<li>fix(rust): address new clippy lints by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5743">tree-sitter/tree-sitter#5743</a></li>
<li>fix(generate): strip non-ASCII case folds by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5744">tree-sitter/tree-sitter#5744</a></li>
<li>fix(ci): re-set executable permission on release artifacts before
zipping by <a href="https://github.com/clason"><code>@​clason</code></a>
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5746">tree-sitter/tree-sitter#5746</a></li>
<li>release v0.26.11 by <a
href="https://github.com/clason"><code>@​clason</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5748">tree-sitter/tree-sitter#5748</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tree-sitter/tree-sitter/compare/v0.26.10...v0.26.11">https://github.com/tree-sitter/tree-sitter/compare/v0.26.10...v0.26.11</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/64402de2857cc197ecc4ca3bc144ea91fda7e72e"><code>64402de</code></a>
release v0.26.11</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/2194ac1a9c9fb8960b8471daade1da07aaeb2b0b"><code>2194ac1</code></a>
fix(ci): re-set executable permission on release artifacts before
zipping</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/a2b8369c4a18373c08a8b7e742fac8b14674eefc"><code>a2b8369</code></a>
fix(generate): strip non-ASCII case folds</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/1ae3cc575388c8429a8991b8c9580946243598a7"><code>1ae3cc5</code></a>
fix(rust): address new clippy lints</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/90dd1a0cfbf6262483a9e5953a35659585129120"><code>90dd1a0</code></a>
fix(templates): generated array macros do not compile with C++</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/fa6222a0d37ecf2bfb4fccd31e857133f3e81930"><code>fa6222a</code></a>
docs(queries): clarify behavior of first child anchor example</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/77b741bb8309d6755797f942bf0ff1a9a74475a4"><code>77b741b</code></a>
docs(queries): specify anchor behavior with quantifiers and groups</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/1c21ff33d688c328a687e37a7f4215136b6e6dc6"><code>1c21ff3</code></a>
fix(query): apply a trailing anchor when its optional node is
skipped</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/5756ced350638708becc00d7ccb2e8d171b4feae"><code>5756ced</code></a>
fix(query): make an anchor after a zero-matched quantifier vacuous</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/eca86a7a6c77c0a7124a59be712661256e361cbd"><code>eca86a7</code></a>
fix(query): forbid an anchor at the end of a group</li>
<li>Additional commits viewable in <a
href="https://github.com/tree-sitter/tree-sitter/compare/v0.26.10...v0.26.11">compare
view</a></li>
</ul>
</details>
<br />

Updates `ignore` from 0.4.27 to 0.4.28
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/324f7efe5ce92da0c938291fb69a8027cc2b12a8"><code>324f7ef</code></a>
ignore-0.4.28</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/241b87b3377136659ef0f57948b8e0739e9a691b"><code>241b87b</code></a>
ignore: support <code>GIT_CONFIG_GLOBAL</code> and
<code>GIT_CONFIG_SYSTEM</code> for `core.exclude...</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/b6849daee84a67b42b0844b2f6a91e47c24705b1"><code>b6849da</code></a>
ignore/walk: add <code>WalkBuilder::empty</code> and
<code>WalkBuilder::from_iter</code></li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/8bca2ebfed844bcbbb649a836783c08da110f2e9"><code>8bca2eb</code></a>
doc: fix typo in man page</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/61a9fd82294c155ca00febc948d8d23c9b678367"><code>61a9fd8</code></a>
doc: fix typo</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/e7b0f89e81811b295446404f02ca133fe8434054"><code>e7b0f89</code></a>
lint: use <code>cloned()</code> or <code>copied()</code> when we
can</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/767086db4ccb6abc3e4ce5125da614ea62f7346b"><code>767086d</code></a>
searcher: hint at sequential memory map reading</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/9548e86b14f1aa853911239f439e27a20c10fb69"><code>9548e86</code></a>
ignore/types: add PKGBUILD type</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/bc3ad92b345eeddc48afff3194a5e2385e3d6a3b"><code>bc3ad92</code></a>
ignore/types: add Rocq <code>.v</code> files</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/93acfe2d47d46bc2f92a78f1e64098ad0a7b34b5"><code>93acfe2</code></a>
ignore/types: add <code>proto</code> for filtering to protobuf
files</li>
<li>Additional commits viewable in <a
href="https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.27...ignore-0.4.28">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-13 16:01:47 -07:00
dependabot[bot] 70c9b40b1f chore: bump skim from 5.0.0 to 5.1.0 (#3446)
Bumps [skim](https://github.com/skim-rs/skim) from 5.0.0 to 5.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/skim-rs/skim/releases">skim's
releases</a>.</em></p>
<blockquote>
<h2>5.1.0 - 2026-07-09</h2>
<h2>Release Notes</h2>
<h3>🚀 Features</h3>
<ul>
<li>Bump frizbee to 0.10.0, thread local matcher (<a
href="https://redirect.github.com/skim-rs/skim/issues/1105">#1105</a>)</li>
<li>Add cargo-fuzz targets for hand-rolled text parsers (<a
href="https://redirect.github.com/skim-rs/skim/issues/1106">#1106</a>)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>Less restrictive max pattern in ari matcher</li>
<li>Unknown border values fallback to plain (closes <a
href="https://redirect.github.com/skim-rs/skim/issues/1107">#1107</a>)</li>
</ul>
<h3>🧪 Testing</h3>
<ul>
<li>Fix arinae max pat len test after constant update</li>
</ul>
<h3>New Contributors</h3>
<ul>
<li><a href="https://github.com/saghen"><code>@​saghen</code></a> made
their first contribution in <a
href="https://redirect.github.com/skim-rs/skim/pull/1105">#1105</a></li>
</ul>
<h2>Install skim 5.1.0</h2>
<h3>Install prebuilt binaries via shell script</h3>
<pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf
https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-installer.sh
| sh
</code></pre>
<h3>Install prebuilt binaries via powershell script</h3>
<pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c &quot;irm
https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-installer.ps1
| iex&quot;
</code></pre>
<h2>Download skim 5.1.0</h2>
<table>
<thead>
<tr>
<th>File</th>
<th>Platform</th>
<th>Checksum</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-aarch64-apple-darwin.tar.xz">skim-aarch64-apple-darwin.tar.xz</a></td>
<td>Apple Silicon macOS</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-aarch64-apple-darwin.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-x86_64-apple-darwin.tar.xz">skim-x86_64-apple-darwin.tar.xz</a></td>
<td>Intel macOS</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-x86_64-apple-darwin.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-x86_64-pc-windows-msvc.zip">skim-x86_64-pc-windows-msvc.zip</a></td>
<td>x64 Windows</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-x86_64-pc-windows-msvc.msi">skim-x86_64-pc-windows-msvc.msi</a></td>
<td>x64 Windows</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-x86_64-pc-windows-msvc.msi.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-aarch64-unknown-linux-gnu.tar.xz">skim-aarch64-unknown-linux-gnu.tar.xz</a></td>
<td>ARM64 Linux</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-aarch64-unknown-linux-gnu.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-x86_64-unknown-linux-gnu.tar.xz">skim-x86_64-unknown-linux-gnu.tar.xz</a></td>
<td>x64 Linux</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-x86_64-unknown-linux-gnu.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-aarch64-unknown-linux-musl.tar.xz">skim-aarch64-unknown-linux-musl.tar.xz</a></td>
<td>ARM64 MUSL Linux</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-aarch64-unknown-linux-musl.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-x86_64-unknown-linux-musl.tar.xz">skim-x86_64-unknown-linux-musl.tar.xz</a></td>
<td>x64 MUSL Linux</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v5.1.0/skim-x86_64-unknown-linux-musl.tar.xz.sha256">checksum</a></td>
</tr>
</tbody>
</table>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/skim-rs/skim/blob/master/CHANGELOG.md">skim's
changelog</a>.</em></p>
<blockquote>
<h2>[5.1.0] - 2026-07-09</h2>
<h3>🚀 Features</h3>
<ul>
<li>Bump frizbee to 0.10.0, thread local matcher (<a
href="https://redirect.github.com/skim-rs/skim/issues/1105">#1105</a>)</li>
<li>Add cargo-fuzz targets for hand-rolled text parsers (<a
href="https://redirect.github.com/skim-rs/skim/issues/1106">#1106</a>)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>Less restrictive max pattern in ari matcher</li>
<li>Unknown border values fallback to plain (closes <a
href="https://redirect.github.com/skim-rs/skim/issues/1107">#1107</a>)</li>
</ul>
<h3>🧪 Testing</h3>
<ul>
<li>Fix arinae max pat len test after constant update</li>
</ul>
<h3>New Contributors</h3>
<ul>
<li><a href="https://github.com/saghen"><code>@​saghen</code></a> made
their first contribution in <a
href="https://redirect.github.com/skim-rs/skim/pull/1105">#1105</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/skim-rs/skim/commit/c4bc5e1be48367a7fec8a90b0e2550635eed7f3d"><code>c4bc5e1</code></a>
release: v5.1.0</li>
<li><a
href="https://github.com/skim-rs/skim/commit/ef593397276298af6ad95bdbf2fa9d4a220d991f"><code>ef59339</code></a>
fix: unknown border values fallback to plain (closes <a
href="https://redirect.github.com/skim-rs/skim/issues/1107">#1107</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/1effd9a69d30b1aa5e55dc3aaf8c43ac1101010e"><code>1effd9a</code></a>
test: fix arinae max pat len test after constant update</li>
<li><a
href="https://github.com/skim-rs/skim/commit/0a4d4b2ea040c4435ac206bd15461ad49a8c98af"><code>0a4d4b2</code></a>
fix: less restrictive max pattern in ari matcher</li>
<li><a
href="https://github.com/skim-rs/skim/commit/026a622a9d12c23379442857bf8e98c85c6e4926"><code>026a622</code></a>
feat: add cargo-fuzz targets for hand-rolled text parsers (<a
href="https://redirect.github.com/skim-rs/skim/issues/1106">#1106</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/8a1f2783a864e1e993ec3a59149f1b3f2ee6bd5b"><code>8a1f278</code></a>
feat: bump frizbee to 0.10.0, thread local matcher (<a
href="https://redirect.github.com/skim-rs/skim/issues/1105">#1105</a>)</li>
<li>See full diff in <a
href="https://github.com/skim-rs/skim/compare/v5.0.0...v5.1.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=skim&package-manager=cargo&previous-version=5.0.0&new-version=5.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-13 16:01:43 -07:00
dependabot[bot] f679b6511f chore: bump open from 5.3.6 to 5.4.0 (#3447)
Bumps [open](https://github.com/Byron/open-rs) from 5.3.6 to 5.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Byron/open-rs/releases">open's
releases</a>.</em></p>
<blockquote>
<h2>v5.4.0</h2>
<h3>New Features</h3>
<ul>
<li><code>cargo run</code> now shows the exact commands that were tried
when opening.
This is useful for debugging, mainly.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>
<p>Align WSL PowerShell invocation with Windows
Pass the WSL open target to PowerShell through the OPEN_RS_TARGET
environment variable instead of embedding it in the command string and
escaping it as a single-quoted PowerShell value.</p>
<p>This matches the safer invocation already used by the native Windows
backend. Keeping the PowerShell program fixed ensures that paths and
URLs
are treated purely as data, even when they contain quotes, semicolons,
or
other PowerShell metacharacters. It also removes the need for custom
PowerShell quoting and avoids converting the target through
to_string_lossy() during command construction.</p>
<p>Add -NonInteractive for consistency with the Windows launcher and
update
the WSL tests to verify both the fixed command and the unchanged
environment-variable value.</p>
</li>
<li>
<p>prevent launcher option and shell injection
Opening an attacker-controlled dash-leading path could be interpreted as
launcher options. On Windows, cmd /c start also parsed embedded quotes
and
metacharacters as command language, while the legacy gnome-open fallback
could load a module even after a double-dash separator.</p>
<p>Add command-construction regressions for malicious option-shaped
paths and
Windows shell metacharacters. Use supported separators on macOS and KDE,
and
rewrite dash-leading relative paths for launchers without separator
support.
Keep Windows values out of shell syntax by passing the default target
through
the environment and invoking custom applications directly, with
explorer.exe
as a PowerShell-free fallback.</p>
<p>Exclude cmd-based opening by default, while providing an
explicit insecure Cargo feature for users who need compatibility it
and accept their unsafe handling of untrusted input.</p>
<p>Validated with default and all-feature cargo tests, clippy, and
cross-target
cargo check --tests for aarch64 Linux and Windows.</p>
</li>
</ul>
<h3>Commit Statistics</h3>
<ul>
<li>5 commits contributed to the release.</li>
<li>3 commits were understood as <a
href="https://www.conventionalcommits.org">conventional</a>.</li>
<li>1 unique issue was worked on: <a
href="https://redirect.github.com/Byron/open-rs/issues/124">#124</a></li>
</ul>
<h3>Commit Details</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Byron/open-rs/blob/main/changelog.md">open's
changelog</a>.</em></p>
<blockquote>
<h2>5.4.0 (2026-07-12)</h2>
<h3>New Features</h3>
<ul>
<li><!-- raw HTML omitted --> <code>cargo run</code> now shows the exact
commands that were tried when opening.
This is useful for debugging, mainly.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>
<p><!-- raw HTML omitted --> Align WSL PowerShell invocation with
Windows
Pass the WSL open target to PowerShell through the OPEN_RS_TARGET
environment variable instead of embedding it in the command string and
escaping it as a single-quoted PowerShell value.</p>
<p>This matches the safer invocation already used by the native Windows
backend. Keeping the PowerShell program fixed ensures that paths and
URLs
are treated purely as data, even when they contain quotes, semicolons,
or
other PowerShell metacharacters. It also removes the need for custom
PowerShell quoting and avoids converting the target through
to_string_lossy() during command construction.</p>
<p>Add -NonInteractive for consistency with the Windows launcher and
update
the WSL tests to verify both the fixed command and the unchanged
environment-variable value.</p>
</li>
<li>
<p><!-- raw HTML omitted --> prevent launcher option and shell injection
Opening an attacker-controlled dash-leading path could be interpreted as
launcher options. On Windows, cmd /c start also parsed embedded quotes
and
metacharacters as command language, while the legacy gnome-open fallback
could load a module even after a double-dash separator.</p>
<p>Add command-construction regressions for malicious option-shaped
paths and
Windows shell metacharacters. Use supported separators on macOS and KDE,
and
rewrite dash-leading relative paths for launchers without separator
support.
Keep Windows values out of shell syntax by passing the default target
through
the environment and invoking custom applications directly, with
explorer.exe
as a PowerShell-free fallback.</p>
<p>Exclude cmd-based opening by default, while providing an
explicit insecure Cargo feature for users who need compatibility it
and accept their unsafe handling of untrusted input.</p>
<p>Validated with default and all-feature cargo tests, clippy, and
cross-target
cargo check --tests for aarch64 Linux and Windows.</p>
</li>
</ul>
<h3>Commit Statistics</h3>
<!-- raw HTML omitted -->
<ul>
<li>5 commits contributed to the release.</li>
<li>3 commits were understood as <a
href="https://www.conventionalcommits.org">conventional</a>.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Byron/open-rs/commit/b5c12bd9207a02272570252071d601a5dc44a3c6"><code>b5c12bd</code></a>
Release open v5.4.0</li>
<li><a
href="https://github.com/Byron/open-rs/commit/bdc33978cdbfa1defef31e23659af4ba4a8913b0"><code>bdc3397</code></a>
Merge pull request <a
href="https://redirect.github.com/Byron/open-rs/issues/126">#126</a>
from Byron/fix-wsl</li>
<li><a
href="https://github.com/Byron/open-rs/commit/7265cae8c19180c1022d8b1a7fbec815d0264909"><code>7265cae</code></a>
fix: Align WSL PowerShell invocation with Windows</li>
<li><a
href="https://github.com/Byron/open-rs/commit/407b05879efb2b33c4e51fa15d77b49fa748a241"><code>407b058</code></a>
Merge pull request <a
href="https://redirect.github.com/Byron/open-rs/issues/125">#125</a>
from Byron/open-with-dash-dash</li>
<li><a
href="https://github.com/Byron/open-rs/commit/fd29861355bfb981aecdb94d0915f4e41c2686ee"><code>fd29861</code></a>
fix: prevent launcher option and shell injection (<a
href="https://redirect.github.com/Byron/open-rs/issues/124">#124</a>)</li>
<li><a
href="https://github.com/Byron/open-rs/commit/7c19c0a1a810326b9a9e7542a0992d80adf0a365"><code>7c19c0a</code></a>
feat: <code>cargo run</code> now shows the exact commands that were
tried when opening.</li>
<li>See full diff in <a
href="https://github.com/Byron/open-rs/compare/v5.3.6...v5.4.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=open&package-manager=cargo&previous-version=5.3.6&new-version=5.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-13 16:01:41 -07:00
dependabot[bot] 1ff647bdd6 chore: bump regex from 1.12.4 to 1.13.0 (#3448)
Bumps [regex](https://github.com/rust-lang/regex) from 1.12.4 to 1.13.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/regex/blob/master/CHANGELOG.md">regex's
changelog</a>.</em></p>
<blockquote>
<h1>1.13.0 (2026-07-09)</h1>
<p>This release includes a new API, a <code>regex!</code> macro, for
lazy compilation of
a regex from a string literal. If you use regexes a lot, it's likely
you've
already written one exactly like it. The new macro can be used like
this:</p>
<pre lang="rust"><code>use regex::regex;
<p>fn is_match(line: &amp;str) -&gt; bool {<br />
// The regex will be compiled approximately once and reused
automatically.<br />
// This avoids the footgun of using <code>Regex::new</code> here, which
would<br />
// guarantee that it would be compiled every time this routine is
called.<br />
// This would likely make this routine much slower than it needs to
be.<br />
regex!(r&quot;bar|baz&quot;).is_match(line)<br />
}</p>
<p>let hay = &quot;<br />
path/to/foo:54:Blue Harvest<br />
path/to/bar:90:Something, Something, Something, Dark Side<br />
path/to/baz:3:It's a Trap!<br />
&quot;;</p>
<p>let matches = hay.lines().filter(|line| is_match(line)).count();<br
/>
assert_eq!(matches, 2);<br />
</code></pre></p>
<p>Improvements:</p>
<ul>
<li><a
href="https://redirect.github.com/rust-lang/regex/issues/709">#709</a>:
Add a new <code>regex!</code> macro for efficient and automatic reuse of
a compiled regex.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-lang/regex/commit/926af2e68eca3ce089815790541cf50759ba2c59"><code>926af2e</code></a>
1.13.0</li>
<li><a
href="https://github.com/rust-lang/regex/commit/7d941a93561430cd259bb9ceb84cc66f33ae7be8"><code>7d941a9</code></a>
regex-automata-0.4.15</li>
<li><a
href="https://github.com/rust-lang/regex/commit/e358341229ebd5feb9a78d8cc85b459c3c7b6600"><code>e358341</code></a>
api: add <code>regex!</code> macro for lazy compilation</li>
<li><a
href="https://github.com/rust-lang/regex/commit/c42033379c8760105ef90287f319de73d1572242"><code>c420333</code></a>
automata: disable miri on a couple doc tests</li>
<li><a
href="https://github.com/rust-lang/regex/commit/b9d2cf724f89754ea879b6c223d2292c4d3e2dd3"><code>b9d2cf7</code></a>
github: add FUNDING link</li>
<li><a
href="https://github.com/rust-lang/regex/commit/0858006b1460ba781deda54b8d2b01b3f9f949f7"><code>0858006</code></a>
docs: add AI policy for contributors</li>
<li><a
href="https://github.com/rust-lang/regex/commit/468fc64ecd6493caaca40dbe8319c31c5c08a83d"><code>468fc64</code></a>
automata: reject dense DFA start states that are match states</li>
<li>See full diff in <a
href="https://github.com/rust-lang/regex/compare/1.12.4...1.13.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=regex&package-manager=cargo&previous-version=1.12.4&new-version=1.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-13 16:01:38 -07:00
Worktrunk Bot c3c07a4e5b chore(deps): bump termimad to 0.35.1, drop ragged-table panic workaround (#3422)
Follow-up to #3408, as promised in that thread: [@Canop published
termimad
0.35.1](https://github.com/max-sixty/worktrunk/pull/3408#issuecomment-4945043938)
with the fix for the ragged-table panic
([Canop/termimad#77](https://github.com/Canop/termimad/issues/77)). This
bumps to it and drops the `catch_unwind` workaround.

## What changed

- **`termimad` 0.34.1 → 0.35.1** (pulls transitive `minimad` 0.14 →
0.16).
- **Removed the `catch_unwind` guard** in `render_table_with_termimad` —
the only panic reachable through this path was the `Table::fix_columns`
out-of-bounds on a ragged narrow table, now fixed upstream. (The
broken-pipe panics termimad has had historically live in `print_text`,
an I/O path we don't use — we call `MadSkin::text`, which returns a
`String`.)
- **Regression test kept**, repurposed:
`test_render_table_ragged_narrow_does_not_panic` now guards against
reintroducing the panic via a downgrade rather than asserting the
plain-text fallback.

## Verification

Ran the original reproducer against a clean `termimad = "=0.35.1"`
scratch crate across the full width band — all render, none panic
(16/20/24 previously panicked):

```
width   8: ok    width  20: ok    width  60: ok
width  12: ok    width  24: ok    width 200: ok
width  16: ok    width  30: ok
width  40: ok
```

`md_help` suite (26), picker unit tests (226), and the integration
`test_help` / `test_docs_are_in_sync` snapshots (48) all pass. `cargo
clippy` clean.

## One rendering note

`minimad` 0.16 no longer treats a **single-dash** delimiter row (`| - |
- |`) as a table separator — it renders as cell content. Worktrunk only
ever emits **multi-dash** (`---`) separators (`render_data_table` builds
`| --- | ... |`, and every hand-authored help table uses `-----`), so
real help/list output is byte-for-byte unchanged — the help/docs
snapshot tests didn't move. The one test that used a single-dash input
was artificial; I switched it to the canonical `---` form.

<details><summary>Defense-in-depth tradeoff — your call</summary>

Dropping `catch_unwind` removes a general safety net around rendering
untrusted PR-comment markdown on a rayon worker (where an escaped panic
aborts the whole process). I removed it because (a) the only reachable
panic class here is fixed, and (b) keeping it would leave the fallback
branch untestable and uncovered — no input triggers it anymore, which
trips the coverage gate. If you'd rather retain the guard as
belt-and-suspenders against a future termimad regression, say the word
and I'll restore it with a `#[cfg]`-gated or otherwise coverage-exempt
shape.

</details>

---------

Co-authored-by: worktrunk-bot <254187624+worktrunk-bot@users.noreply.github.com>
2026-07-11 19:56:32 -07:00
Maximilian Roos abf9155546 Release v0.67.0 (#3416)
Release v0.67.0: version bump and changelog.

Highlights since v0.66.0: experimental `wt remove --reap` (#3396), `wt
switch -x` opening the picker (#3394), the termimad panic containment in
the picker's PR-comments preview (#3408), the `wt config show` SIGTTOU
fix (#3327), the `GIT_*` discovery-var scrub for `wt step for-each` and
the `--execute` fallback (#3400), and the `wt list` prompt-reserve fix
(#3409).

Seven commits landed on `main` after the initial cut; `origin/main` is
merged back in and the two user-facing ones (#3394, #3411) plus the BY
CONTEXT profile table (#3403) are folded into the changelog.

Pre-release validation: local pre-merge gate green on the merged tree
(4389 tests); nightly cross-platform suite green on the initial cut
([run
29086956095](https://github.com/max-sixty/worktrunk/actions/runs/29086956095)),
with the seven post-cut commits each validated by their own PR CI;
`cargo semver-checks` reports no breaking changes; data-loss surface
review of the cumulative diff (including the drift commits) found one
new destructive capability (`--reap`, explicit opt-in, adjudicated
acceptable).

> _This was written by Claude Code on behalf of max_
2026-07-10 06:10:26 -07:00
Maximilian Roos 18d2bef84b refactor(perf): canonicalize the benchmark / wt-perf system (#3403)
Implements the design proposal from this branch's first commit
(b22aced85, `design/simplify-bench-perf.md` — reviewable there; dropped
from the merge candidate per the `design/` convention). The perf
tooling's emission side was already canonical; this consolidates the
consumption side around one split: capture/harness work in `wt-perf`,
analysis in `worktrunk::trace` with `wt config state logs profile` as
its one CLI surface.

The seven design items:

1. **`wt-perf cache-check` deleted** — its output was the `cache` field
of `logs profile --format=json`. The tend statusline recipe now uses
`logs profile` (its old pipe also fed human-format stderr into a JSON
parser, so it's now correct as well as canonical).
2. **Timeline renderer moved into `worktrunk::trace`**
(`src/trace/timeline.rs`), sharing
`command_label`/`render_table`/`fmt_dur` with the profile so the two
views can't drift (they already had); drops wt-perf's `tabwriter` and
`insta` deps. Durations now render in the profile's fixed-point format.
3. **`Profile.by_context`** (BY CONTEXT table + JSON array):
per-worktree subprocess totals, the one analysis that previously
required trace_processor SQL. The SQL sections in `benches/CLAUDE.md`
and the `trace` module docs are replaced by a `logs profile` pointer;
Perfetto stays for visual critical-path work.
4. **One warm/cold bench runner** (`wt_perf::bench_wt`) owns the
`BatchSize::PerIteration` rationale once, replacing five inline copies.
All runs now assert child exit status (`benches/list.rs` previously
ignored it).
5. **Bench matrix pruned**: `real_repo` keeps only the 8-worktree
variants (scaling shape stays on synthetic `worktree_scaling`),
`cow_copy` deleted (benchmarked a hand-written serial copy against
production rayon — a settled choice), `remove_e2e/first_output` deleted
(duplicate of `first_output/remove`). Ends three gist series with this
PR as the single discontinuity point; saves roughly 15–20 min of the
~80-min daily bench run.
6. **wt-perf CLI tests moved in-package** (native
`CARGO_BIN_EXE_wt-perf`): the dummy `builds.rs` is gone and the nextest
setup script builds only `mock-stub`. Note `cargo test --test
integration` no longer runs these four tests; full-workspace runs still
do.
7. **`parse_config` returns a `SetupConfig` enum** covering `mixed-W-B`;
the two fixture builders share `init_bench_repo`.

**Merge with main (#3401):** the new prune benches and fixtures landed
mid-flight in exactly these files; the resolution routes them through
the consolidated API — `prune-M-U` is a `SetupConfig::Prune` variant,
the pair parsing is one shared `parse_pair`, and `prune-real` keeps its
own cache-managed path (no `--path`, self-repairing). `benches/prune.rs`
keeps its custom `iter_batched` arms deliberately: every variant asserts
the candidate count from stdout, which `bench_wt`'s shape doesn't
express — the exact carve-out the cache-handling docs describe.

Two review passes (correctness + subtraction) then folded in:
`CacheReport` trimmed to its same-context fields (the dropped six
duplicated `Profile` fields or counted cross-context noise the text
report never showed), `render_table` pads by display width (replacing an
ASCII-only invariant the new BY CONTEXT table violated), the timeline's
instant-event row gained test coverage, and Chrome args dropped the
redundant `duration_ms`.

**Decisions surfaced, not taken** (from the review passes): (a) `wt-perf
setup` could become `--persist`-only, dropping the interactive
Enter-to-cleanup path — a UX preference; (b) whether the daily benchmark
cron's gist time series justifies its remaining ~60 min/day is a
cost/value call. Also deferred: measuring whether `skeleton/cold` adds
signal over `skeleton/warm` before cutting it.

Gate green throughout (4374 tests); `clippy --features
shell-integration-tests` clean; `setup`/`timeline` (warm, cold,
chrome)/`logs profile` (text + JSON)/`trace` all driven end-to-end on a
scratch `mixed-4-8` repo.

> _This was written by Claude Code on behalf of max_

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 03:44:18 -07:00
dependabot[bot] 9f552bbae7 chore: bump skim from 4.10.0 to 5.0.0 (#3378) 2026-07-08 02:16:44 -07:00
Maximilian Roos 696fdc3bc7 Release v0.66.0 (#3385)
Release v0.66.0 — minor bump (semver-checks: `ListConfig` gained a pub
field, so patch is disallowed pre-1.0).

## Changes since v0.65.0

### Improved
- **Opt-in JSON schema 2 for `wt list`** behind the `[list] json-schema`
config key ([#3357](https://github.com/max-sixty/worktrunk/pull/3357))
- **`wt config approvals list` and `clear --stale`**
([#3380](https://github.com/max-sixty/worktrunk/pull/3380))

### Fixed
- **User hooks no longer inherit `wt`'s `GIT_*` discovery vars**
([#3374](https://github.com/max-sixty/worktrunk/pull/3374), thanks
@silvanshade for reporting) — this entry also moves from the 0.65.0
CHANGELOG section (where #3374 misfiled it post-release) into 0.66.0,
which ships it.

### Documentation
- **`/wt-switch-create` always creates a worktree**
([#3356](https://github.com/max-sixty/worktrunk/pull/3356))

## Release validation
- Local pre-merge gate: 4,357 tests green
- Nightly cross-platform run on the cut-from tip (9edf0aa6b): all 12
jobs green
([run](https://github.com/max-sixty/worktrunk/actions/runs/28842962865))
- Data-loss surface review: four independent finders, three candidates
adjudicated acceptable, signed off
- Changelog entries verified against the actual diffs

🤖 Generated with [Claude Code](https://claude.com/claude-code)

> _This was written by Claude Code on behalf of Maximilian Roos_
2026-07-07 20:38:18 -07:00
dependabot[bot] d90d148e73 chore: bump humantime from 2.3.0 to 2.4.0 (#3377)
Bumps [humantime](https://github.com/chronotope/humantime) from 2.3.0 to
2.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/chronotope/humantime/releases">humantime's
releases</a>.</em></p>
<blockquote>
<h2>2.4.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: allow creating Duration in const context by <a
href="https://github.com/ctron"><code>@​ctron</code></a> in <a
href="https://redirect.github.com/chronotope/humantime/pull/70">chronotope/humantime#70</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/chronotope/humantime/commit/fc092817fa8689298eaac28ff49bd8bede4ff605"><code>fc09281</code></a>
chore: prepare release 2.4.0</li>
<li><a
href="https://github.com/chronotope/humantime/commit/8a022cce55a07da2be81721e7deaa5bd071add72"><code>8a022cc</code></a>
feat: allow creating Duration in const context</li>
<li><a
href="https://github.com/chronotope/humantime/commit/27a4f77519a436f4137d1c50ff2f3eb559292cfd"><code>27a4f77</code></a>
Explicitly set rust-version to 1.60</li>
<li><a
href="https://github.com/chronotope/humantime/commit/acc3c19658ecae06cf35467dfe03392a67dbf2b1"><code>acc3c19</code></a>
ci: upgrade to actions/checkout v7</li>
<li><a
href="https://github.com/chronotope/humantime/commit/3acf96bb886ebd16f9e2e8a37d7229e4bd30dd17"><code>3acf96b</code></a>
ci: fix workflow formatting</li>
<li>See full diff in <a
href="https://github.com/chronotope/humantime/compare/v2.3.0...v2.4.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=humantime&package-manager=cargo&previous-version=2.3.0&new-version=2.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-06 19:41:46 -07:00
dependabot[bot] 828aebdee7 chore: bump the patch group with 2 updates (#3376)
Bumps the patch group with 2 updates:
[clap_complete](https://github.com/clap-rs/clap) and
[ignore](https://github.com/BurntSushi/ripgrep).

Updates `clap_complete` from 4.6.5 to 4.6.7
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/clap-rs/clap/commit/d3e59a9ab214910b9dad02921b7ef42c6400de9b"><code>d3e59a9</code></a>
chore: Release</li>
<li><a
href="https://github.com/clap-rs/clap/commit/d997f878c484e02b2935d32a7b67afe990e91227"><code>d997f87</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/clap-rs/clap/commit/fb6058cc38cf6f4b07b8db89c850fc80e059e222"><code>fb6058c</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/6409">#6409</a>
from heaths/pwsh-support</li>
<li><a
href="https://github.com/clap-rs/clap/commit/2310870f7a9fe4c39f5bb5620261a06ac9aaa0b1"><code>2310870</code></a>
test(complete): Add tests for completer_for_path</li>
<li><a
href="https://github.com/clap-rs/clap/commit/5967c17393a09f90112cdc5b2c20a1383f0bd8e4"><code>5967c17</code></a>
refactor(complete): Move shell detection to Shells</li>
<li><a
href="https://github.com/clap-rs/clap/commit/594602bb29f374e49da5029df63e5c740c723ad0"><code>594602b</code></a>
fix(complete): Detect pwsh for PowerShell</li>
<li><a
href="https://github.com/clap-rs/clap/commit/3a4f2d031b5110aaaac40f1cb1d6c0b8ff619df8"><code>3a4f2d0</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/6427">#6427</a>
from clap-rs/renovate/shlex-2.x</li>
<li><a
href="https://github.com/clap-rs/clap/commit/67ebaed4ac95a83d5d7cc22d64ee0fc162ae1db3"><code>67ebaed</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/6426">#6426</a>
from clap-rs/renovate/actions-checkout-7.x</li>
<li><a
href="https://github.com/clap-rs/clap/commit/c968b136d0e6f560c08b06a844a20f2798a00096"><code>c968b13</code></a>
chore(deps): Update Rust crate shlex to v2</li>
<li><a
href="https://github.com/clap-rs/clap/commit/8f247cbf58c582a755ee4dbe62a2390d93b9f8eb"><code>8f247cb</code></a>
chore(deps): Update actions/checkout action to v7</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.6.5...clap_complete-v4.6.7">compare
view</a></li>
</ul>
</details>
<br />

Updates `ignore` from 0.4.26 to 0.4.27
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/48b0c795f4feb37343b2832d991c5c6a3900c08a"><code>48b0c79</code></a>
ignore-0.4.27</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/c10f151e4436da7c37d34359cdfe10d6f5aa0bb4"><code>c10f151</code></a>
ignore: always include depth in errors</li>
<li><a
href="https://github.com/BurntSushi/ripgrep/commit/dfe4a81d2591daca76d25ae4e052c34b26578155"><code>dfe4a81</code></a>
ignore/types: add Hurl</li>
<li>See full diff in <a
href="https://github.com/BurntSushi/ripgrep/compare/ignore-0.4.26...ignore-0.4.27">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-06 19:41:44 -07:00
Maximilian Roos 5175153b39 Release v0.65.0 (#3351)
Release v0.65.0. Version bump plus the 0.65.0 changelog section.

**User-facing changes in this release:**

- **Picker `alt-x` flashes why a worktree wasn't removed** (#3336,
#3350) — the keep/failure reason now appears in the picker header
instead of only draining to stderr on exit.
- **`-vv` diagnostics consolidate on `diagnostic.md`, led by the
performance profile** (#3329). This entry's bullet was previously
misfiled under the already-released `0.63.0` section (the PR merged
after `0.64.0` was tagged); this release moves it into `0.65.0`, where
the change actually ships, and drops a misleading "removed
`profile.txt`" clause for a file that never existed.
- **`wt remove` preserves your subdirectory position** (#3344, closes
#3343, thanks @caillou for reporting).

**Also included:** a fix to the release skill's reporter-finding grep —
`sort -un` on `#`-prefixed lines collapsed the whole issue-reference
list to a single entry (every line sorts as numeric 0), which nearly
dropped @caillou's credit. Now sorts on the numeric field after `#`.

The nightly cross-platform suite (full-tests linux/macos/windows,
feature-powerset, release-target, nix-flake, minimal-versions) passed
green on the cut-from tip before this PR was opened.

> _This was written by Claude Code on behalf of max_

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 22:00:39 -07:00
Maximilian Roos 7f4c9c323a Release v0.64.0 (#3338)
Release v0.64.0. Folds the version bump (`Cargo.toml`, `Cargo.lock`) and
the `CHANGELOG.md` section into one commit.

A small release on top of v0.63.0: a new per-branch git-config template
namespace for `wt list` custom columns, a warm-cache `wt list` speedup,
and a few correctness/safety fixes.

**Improved**: a `{{ git.branch.* }}` template namespace lets custom
columns read a branch's own git config (`branch.<name>.jira`, the
git-native `description`) without re-storing via `wt config state vars
set` (thanks @cazador481 for the request); warm-cache `wt list` re-runs
are ~36% faster after removing redundant per-row git forks (commit→tree
priming, a persistent merge-base cache, and seeded worktree paths).

**Fixed**: refs that look like flags can no longer inject git options
(`--end-of-options` / `--` fencing across diff previews, diffstats, and
branch removal); `wt list statusline` renders untruncated when
`COLUMNS=0` instead of collapsing to an empty line; the watchdog "still
waiting" line uses the hint symbol (`↳`).

The release-process data-loss surface review (four independent finders
over the full `v0.63.0..HEAD` diff) found no data-loss risk introduced.
The one candidate — a new persistent merge-base cache that feeds the
branch-deletion safety verdict — was adjudicated acceptable: the
verdict's direct input (`has-added-changes`) was already a
content-addressed, SHA-keyed persistent cache before this release, so
the merge-base cache extends an accepted pattern rather than introducing
a new risk class.

> _This was written by Claude Code on behalf of max_

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-06-29 23:35:43 -07:00
dependabot[bot] cb8e8beb6d chore: bump open from 5.3.5 to 5.3.6 in the patch group (#3325)
Bumps the patch group with 1 update:
[open](https://github.com/Byron/open-rs).

Updates `open` from 5.3.5 to 5.3.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Byron/open-rs/releases">open's
releases</a>.</em></p>
<blockquote>
<h2>v5.3.6</h2>
<h3>Bug Fixes</h3>
<ul>
<li>
<p>use PowerShell instead of wslview on WSL
WSL users reported that wslu's wslview is discontinued and unavailable
in
some package managers. The regression tests cover the WSL command
builder and
initially failed because the first generated command was still
<code>wslview</code>.</p>
<p>Build the WSL opener as a PowerShell <code>Start-Process
-FilePath</code> script argument
with the target quoted as data, then retain the xdg-open, gio,
gnome-open, and
kde-open fallbacks. Update the user-facing docs and keep the WSL command
builder
testable from host builds without adding dev-dependencies.</p>
</li>
</ul>
<h3>Commit Statistics</h3>
<ul>
<li>2 commits contributed to the release.</li>
<li>48 days passed between releases.</li>
<li>1 commit was understood as <a
href="https://www.conventionalcommits.org">conventional</a>.</li>
<li>1 unique issue was worked on: <a
href="https://redirect.github.com/Byron/open-rs/issues/122">#122</a></li>
</ul>
<h3>Commit Details</h3>
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<ul>
<li><strong><a
href="https://redirect.github.com/Byron/open-rs/issues/122">#122</a></strong>
<ul>
<li>Use PowerShell instead of wslview on WSL (44d1d41)</li>
</ul>
</li>
<li><strong>Uncategorized</strong>
<ul>
<li>Merge pull request <a
href="https://redirect.github.com/Byron/open-rs/issues/123">#123</a>
from Byron/avoid-wslview (41c4cf0)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Byron/open-rs/blob/main/changelog.md">open's
changelog</a>.</em></p>
<blockquote>
<h2>5.3.6 (2026-06-29)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>
<p><!-- raw HTML omitted --> use PowerShell instead of wslview on WSL
WSL users reported that wslu's wslview is discontinued and unavailable
in
some package managers. The regression tests cover the WSL command
builder and
initially failed because the first generated command was still
<code>wslview</code>.</p>
<p>Build the WSL opener as a PowerShell <code>Start-Process
-FilePath</code> script argument
with the target quoted as data, then retain the xdg-open, gio,
gnome-open, and
kde-open fallbacks. Update the user-facing docs and keep the WSL command
builder
testable from host builds without adding dev-dependencies.</p>
</li>
</ul>
<h3>Commit Statistics</h3>
<!-- raw HTML omitted -->
<ul>
<li>2 commits contributed to the release.</li>
<li>48 days passed between releases.</li>
<li>1 commit was understood as <a
href="https://www.conventionalcommits.org">conventional</a>.</li>
<li>1 unique issue was worked on: <a
href="https://redirect.github.com/Byron/open-rs/issues/122">#122</a></li>
</ul>
<h3>Commit Details</h3>
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<ul>
<li><strong><a
href="https://redirect.github.com/Byron/open-rs/issues/122">#122</a></strong>
<ul>
<li>Use PowerShell instead of wslview on WSL (<a
href="https://github.com/Byron/open-rs/commit/44d1d41349fdfd23e5e74e3c0ac4c9aca2ed7282"><code>44d1d41</code></a>)</li>
</ul>
</li>
<li><strong>Uncategorized</strong>
<ul>
<li>Merge pull request <a
href="https://redirect.github.com/Byron/open-rs/issues/123">#123</a>
from Byron/avoid-wslview (<a
href="https://github.com/Byron/open-rs/commit/41c4cf09cab155460c29ac6a8b36ad6ec70b3d81"><code>41c4cf0</code></a>)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Byron/open-rs/commit/cfb39d8c323bc147096ae00b1360cb6633ce4c35"><code>cfb39d8</code></a>
Release open v5.3.6</li>
<li><a
href="https://github.com/Byron/open-rs/commit/41c4cf09cab155460c29ac6a8b36ad6ec70b3d81"><code>41c4cf0</code></a>
Merge pull request <a
href="https://redirect.github.com/Byron/open-rs/issues/123">#123</a>
from Byron/avoid-wslview</li>
<li><a
href="https://github.com/Byron/open-rs/commit/44d1d41349fdfd23e5e74e3c0ac4c9aca2ed7282"><code>44d1d41</code></a>
fix: use PowerShell instead of wslview on WSL (<a
href="https://redirect.github.com/Byron/open-rs/issues/122">#122</a>)</li>
<li>See full diff in <a
href="https://github.com/Byron/open-rs/compare/v5.3.5...v5.3.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=open&package-manager=cargo&previous-version=5.3.5&new-version=5.3.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-29 13:10:07 -07:00
dependabot[bot] 0258993ad8 chore: bump petname from 3.0.1 to 3.1.0 (#3326)
Bumps [petname](https://github.com/allenap/rust-petname) from 3.0.1 to
3.1.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/allenap/rust-petname/commit/051547f28093e70cf7b86e1f77259b5178651267"><code>051547f</code></a>
Bump version to 3.1.0</li>
<li><a
href="https://github.com/allenap/rust-petname/commit/69d5c31e84d3602e2159aafbe8e725374b8103b3"><code>69d5c31</code></a>
Merge pull request <a
href="https://redirect.github.com/allenap/rust-petname/issues/131">#131</a>
from allenap/completions</li>
<li><a
href="https://github.com/allenap/rust-petname/commit/9c9a846ede025b5311ba26045106abb744f893d7"><code>9c9a846</code></a>
Add command-line completion support via a <code>completions</code>
subcommand</li>
<li><a
href="https://github.com/allenap/rust-petname/commit/ce6f2ba938175c8308615b2cfed7ef6c898cb40b"><code>ce6f2ba</code></a>
Build binary releases with <code>--all-features</code></li>
<li><a
href="https://github.com/allenap/rust-petname/commit/2cb888d1feaa0bf90d1889d49ee503af0211b907"><code>2cb888d</code></a>
Upgrade notes from 3.0.0 to 3.0.1</li>
<li>See full diff in <a
href="https://github.com/allenap/rust-petname/compare/v3.0.1...v3.1.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=petname&package-manager=cargo&previous-version=3.0.1&new-version=3.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-29 13:10:04 -07:00
dependabot[bot] 753431d6f8 chore: bump petname-macros from 3.0.1 to 3.1.0 (#3316)
Bumps [petname-macros](https://github.com/allenap/rust-petname) from
3.0.1 to 3.1.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/allenap/rust-petname/commit/051547f28093e70cf7b86e1f77259b5178651267"><code>051547f</code></a>
Bump version to 3.1.0</li>
<li><a
href="https://github.com/allenap/rust-petname/commit/69d5c31e84d3602e2159aafbe8e725374b8103b3"><code>69d5c31</code></a>
Merge pull request <a
href="https://redirect.github.com/allenap/rust-petname/issues/131">#131</a>
from allenap/completions</li>
<li><a
href="https://github.com/allenap/rust-petname/commit/9c9a846ede025b5311ba26045106abb744f893d7"><code>9c9a846</code></a>
Add command-line completion support via a <code>completions</code>
subcommand</li>
<li><a
href="https://github.com/allenap/rust-petname/commit/ce6f2ba938175c8308615b2cfed7ef6c898cb40b"><code>ce6f2ba</code></a>
Build binary releases with <code>--all-features</code></li>
<li><a
href="https://github.com/allenap/rust-petname/commit/2cb888d1feaa0bf90d1889d49ee503af0211b907"><code>2cb888d</code></a>
Upgrade notes from 3.0.0 to 3.0.1</li>
<li>See full diff in <a
href="https://github.com/allenap/rust-petname/compare/v3.0.1...v3.1.0">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-29 11:19:24 -07:00
dependabot[bot] dacf02fa15 chore: bump skim from 4.8.0 to 4.10.0 (#3315)
Bumps [skim](https://github.com/skim-rs/skim) from 4.8.0 to 4.10.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/skim-rs/skim/releases">skim's
releases</a>.</em></p>
<blockquote>
<h2>4.10.0 - 2026-06-28</h2>
<h2>Release Notes</h2>
<h3>🚀 Features</h3>
<ul>
<li><em>(theme)</em> Add a themeable scrollbar color for the item list
(<a
href="https://redirect.github.com/skim-rs/skim/issues/1101">#1101</a>)</li>
</ul>
<h3>🧪 Testing</h3>
<ul>
<li>Improve coverage on matchers &amp; algos (<a
href="https://redirect.github.com/skim-rs/skim/issues/1100">#1100</a>)</li>
</ul>
<h3>New Contributors</h3>
<ul>
<li><a href="https://github.com/max-sixty"><code>@​max-sixty</code></a>
made their first contribution in <a
href="https://redirect.github.com/skim-rs/skim/pull/1101">#1101</a></li>
</ul>
<h2>Install skim 4.10.0</h2>
<h3>Install prebuilt binaries via shell script</h3>
<pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf
https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-installer.sh
| sh
</code></pre>
<h3>Install prebuilt binaries via powershell script</h3>
<pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c &quot;irm
https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-installer.ps1
| iex&quot;
</code></pre>
<h2>Download skim 4.10.0</h2>
<table>
<thead>
<tr>
<th>File</th>
<th>Platform</th>
<th>Checksum</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-aarch64-apple-darwin.tar.xz">skim-aarch64-apple-darwin.tar.xz</a></td>
<td>Apple Silicon macOS</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-aarch64-apple-darwin.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-x86_64-apple-darwin.tar.xz">skim-x86_64-apple-darwin.tar.xz</a></td>
<td>Intel macOS</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-x86_64-apple-darwin.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-x86_64-pc-windows-msvc.zip">skim-x86_64-pc-windows-msvc.zip</a></td>
<td>x64 Windows</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-x86_64-pc-windows-msvc.msi">skim-x86_64-pc-windows-msvc.msi</a></td>
<td>x64 Windows</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-x86_64-pc-windows-msvc.msi.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-aarch64-unknown-linux-gnu.tar.xz">skim-aarch64-unknown-linux-gnu.tar.xz</a></td>
<td>ARM64 Linux</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-aarch64-unknown-linux-gnu.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-x86_64-unknown-linux-gnu.tar.xz">skim-x86_64-unknown-linux-gnu.tar.xz</a></td>
<td>x64 Linux</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-x86_64-unknown-linux-gnu.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-aarch64-unknown-linux-musl.tar.xz">skim-aarch64-unknown-linux-musl.tar.xz</a></td>
<td>ARM64 MUSL Linux</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-aarch64-unknown-linux-musl.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-x86_64-unknown-linux-musl.tar.xz">skim-x86_64-unknown-linux-musl.tar.xz</a></td>
<td>x64 MUSL Linux</td>
<td><a
href="https://github.com/skim-rs/skim/releases/download/v4.10.0/skim-x86_64-unknown-linux-musl.tar.xz.sha256">checksum</a></td>
</tr>
</tbody>
</table>
<h2>4.9.0 - 2026-06-25</h2>
<h2>Release Notes</h2>
<h3>🚀 Features</h3>
<ul>
<li><em>(ci)</em> Upload coverage report to pages for easier browsing
(<a
href="https://redirect.github.com/skim-rs/skim/issues/1096">#1096</a>)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/skim-rs/skim/blob/master/CHANGELOG.md">skim's
changelog</a>.</em></p>
<blockquote>
<h2>[4.10.0] - 2026-06-28</h2>
<h3>🚀 Features</h3>
<ul>
<li><em>(theme)</em> Add a themeable scrollbar color for the item list
(<a
href="https://redirect.github.com/skim-rs/skim/issues/1101">#1101</a>)</li>
</ul>
<h3>🧪 Testing</h3>
<ul>
<li>Improve coverage on matchers &amp; algos (<a
href="https://redirect.github.com/skim-rs/skim/issues/1100">#1100</a>)</li>
</ul>
<h3>New Contributors</h3>
<ul>
<li><a href="https://github.com/max-sixty"><code>@​max-sixty</code></a>
made their first contribution in <a
href="https://redirect.github.com/skim-rs/skim/pull/1101">#1101</a></li>
</ul>
<h2>[4.9.0] - 2026-06-25</h2>
<h3>🚀 Features</h3>
<ul>
<li><em>(ci)</em> Upload coverage report to pages for easier browsing
(<a
href="https://redirect.github.com/skim-rs/skim/issues/1096">#1096</a>)</li>
</ul>
<h3>🐛 Bug Fixes</h3>
<ul>
<li>Refresh preview after mouse selection (<a
href="https://redirect.github.com/skim-rs/skim/issues/1095">#1095</a>)</li>
</ul>
<h3>🧪 Testing</h3>
<ul>
<li>Add unit tests for the shell &amp; manpage generators (<a
href="https://redirect.github.com/skim-rs/skim/issues/1098">#1098</a>)</li>
<li>Improve coverage to 90% (<a
href="https://redirect.github.com/skim-rs/skim/issues/1099">#1099</a>)</li>
</ul>
<h3>⚙️ Miscellaneous Tasks</h3>
<ul>
<li><em>(ci)</em> Use github's coverage (<a
href="https://redirect.github.com/skim-rs/skim/issues/1094">#1094</a>)</li>
</ul>
<h3>New Contributors</h3>
<ul>
<li><a
href="https://github.com/wang-borong"><code>@​wang-borong</code></a>
made their first contribution in <a
href="https://redirect.github.com/skim-rs/skim/pull/1095">#1095</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/skim-rs/skim/commit/aeba919fab2e33822596394a0df7e1461b4ba6da"><code>aeba919</code></a>
release: v4.10.0</li>
<li><a
href="https://github.com/skim-rs/skim/commit/bfec6e198da776a3a28f4f3c4bb16278a56339b4"><code>bfec6e1</code></a>
feat(theme): add a themeable scrollbar color for the item list (<a
href="https://redirect.github.com/skim-rs/skim/issues/1101">#1101</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/5f4798325ac5d78456f9b87976acc132f1b2da74"><code>5f47983</code></a>
tests: improve coverage on matchers &amp; algos (<a
href="https://redirect.github.com/skim-rs/skim/issues/1100">#1100</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/d14407196b3887096b7daa66fe31d0a3f2704b8c"><code>d144071</code></a>
release: v4.9.0</li>
<li><a
href="https://github.com/skim-rs/skim/commit/7d4502201f89a09fc5750881049167e13d8715a2"><code>7d45022</code></a>
fix: refresh preview after mouse selection (<a
href="https://redirect.github.com/skim-rs/skim/issues/1095">#1095</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/7e2cdf3c8e5812baa100e5aa3f85f1bec2b7b39e"><code>7e2cdf3</code></a>
tests: improve coverage to 90% (<a
href="https://redirect.github.com/skim-rs/skim/issues/1099">#1099</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/8187a121969f12f9f76f0274f223ed09eb5d8368"><code>8187a12</code></a>
test: add unit tests for the shell &amp; manpage generators (<a
href="https://redirect.github.com/skim-rs/skim/issues/1098">#1098</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/b56eed4125efa5c81528442afbdd270e9b841aaf"><code>b56eed4</code></a>
feat(ci): upload coverage report to pages for easier browsing (<a
href="https://redirect.github.com/skim-rs/skim/issues/1096">#1096</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/e85cf6b708131f177fb1304eb2c270bc9a97f7d2"><code>e85cf6b</code></a>
chore(ci): use github's coverage (<a
href="https://redirect.github.com/skim-rs/skim/issues/1094">#1094</a>)</li>
<li><a
href="https://github.com/skim-rs/skim/commit/7994e4441279ce35fe2aaf582ccbb337c24320b9"><code>7994e44</code></a>
chore(deps): bump the cargo-prod group with 4 updates (<a
href="https://redirect.github.com/skim-rs/skim/issues/1093">#1093</a>)</li>
<li>See full diff in <a
href="https://github.com/skim-rs/skim/compare/v4.8.0...v4.10.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=skim&package-manager=cargo&previous-version=4.8.0&new-version=4.10.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-29 01:19:00 -07:00
dependabot[bot] 748f82efa3 chore: bump petname from 3.0.0 to 3.0.1 (#3314)
Bumps [petname](https://github.com/allenap/rust-petname) from 3.0.0 to
3.0.1.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/allenap/rust-petname/commit/4a28e9da951537e1b5a8bb953390e4b54dcaa441"><code>4a28e9d</code></a>
Bump version to 3.0.1</li>
<li><a
href="https://github.com/allenap/rust-petname/commit/6641b4fdd151879551b7238cf8d759cec0b880db"><code>6641b4f</code></a>
Capture <code>-h</code> output with <code>--all-features</code></li>
<li><a
href="https://github.com/allenap/rust-petname/commit/47cb39b33bedbe830c36b2df8d47cd8902ffba4c"><code>47cb39b</code></a>
Merge pull request <a
href="https://redirect.github.com/allenap/rust-petname/issues/129">#129</a>
from allenap/dependabot/github_actions/actions/checko...</li>
<li><a
href="https://github.com/allenap/rust-petname/commit/3aff4246f32d19191afd6830c85836c97f371831"><code>3aff424</code></a>
Merge pull request <a
href="https://redirect.github.com/allenap/rust-petname/issues/130">#130</a>
from allenap/install-homebrew-tap</li>
<li><a
href="https://github.com/allenap/rust-petname/commit/65523cd4078c9beba56d6dae77c39c8ef2619764"><code>65523cd</code></a>
Instructions for installing from the <code>allenap/utils</code> Homebrew
tap</li>
<li><a
href="https://github.com/allenap/rust-petname/commit/0474cf2ea400a6861d46aefa58c830ff508391ac"><code>0474cf2</code></a>
Bump actions/checkout from 6 to 7</li>
<li><a
href="https://github.com/allenap/rust-petname/commit/ee3b522af706af405408e9aa04e11184e5082ffa"><code>ee3b522</code></a>
Merge pull request <a
href="https://redirect.github.com/allenap/rust-petname/issues/128">#128</a>
from allenap/lang-turkish</li>
<li><a
href="https://github.com/allenap/rust-petname/commit/2ae3dcba8f5288c5860abc47c108f515a586aa1f"><code>2ae3dcb</code></a>
Update <code>README.md</code></li>
<li><a
href="https://github.com/allenap/rust-petname/commit/7d1fe87a0db8b68cc4179786cbe8481e99bded8f"><code>7d1fe87</code></a>
Add <code>--lang</code> as an alias of <code>--language</code></li>
<li><a
href="https://github.com/allenap/rust-petname/commit/b9021dd2909d7087157c981e010db63d3af08209"><code>b9021dd</code></a>
Check SemVer compatibility</li>
<li>Additional commits viewable in <a
href="https://github.com/allenap/rust-petname/compare/v3.0.0...v3.0.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=petname&package-manager=cargo&previous-version=3.0.0&new-version=3.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: worktrunk-bot <254187624+worktrunk-bot@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2026-06-29 01:18:57 -07:00
dependabot[bot] 6032ee9d89 chore: bump the patch group with 4 updates (#3313)
Bumps the patch group with 4 updates:
[anyhow](https://github.com/dtolnay/anyhow),
[tree-sitter](https://github.com/tree-sitter/tree-sitter),
[tree-sitter-highlight](https://github.com/tree-sitter/tree-sitter) and
[vergen-gitcl](https://github.com/rustyhorde/vergen).

Updates `anyhow` from 1.0.102 to 1.0.103
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/anyhow/releases">anyhow's
releases</a>.</em></p>
<blockquote>
<h2>1.0.103</h2>
<ul>
<li>Fix Stacked Borrows violation (UB) in
<code>Error::downcast_mut</code> (<a
href="https://redirect.github.com/dtolnay/anyhow/issues/451">#451</a>,
<a
href="https://redirect.github.com/dtolnay/anyhow/issues/452">#452</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/dtolnay/anyhow/commit/5bdb0e24db3994be119d42f18fe2d655e1f68f4a"><code>5bdb0e2</code></a>
Release 1.0.103</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/e621bd35ddddcd8b2f39d80b9f5938583571a87d"><code>e621bd3</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/anyhow/issues/452">#452</a>
from dtolnay/downcast</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/6e8c000690151cba99305092024535905b2be162"><code>6e8c000</code></a>
Eliminate pointer-&gt;reference-&gt;pointer during downcast</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/67c4abd7718b6191768193993270abe8dcdd66bb"><code>67c4abd</code></a>
Add regression test for issue 451</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/917a16932009c1957f53c2ea325663948add2153"><code>917a169</code></a>
Update actions/upload-artifact@v6 -&gt; v7</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/d9dc3faf78b8647fdb5b8c5b53abb85e05e13d42"><code>d9dc3fa</code></a>
Update actions/checkout@v6 -&gt; v7</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/841522b2aa09732fecee40804440d2c35c68c480"><code>841522b</code></a>
Raise minimum tested compiler to rust 1.85</li>
<li>See full diff in <a
href="https://github.com/dtolnay/anyhow/compare/1.0.102...1.0.103">compare
view</a></li>
</ul>
</details>
<br />

Updates `tree-sitter` from 0.26.9 to 0.26.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tree-sitter/tree-sitter/releases">tree-sitter's
releases</a>.</em></p>
<blockquote>
<h2>v0.26.10</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(lib): update doc comment for <code>ts_parser_parse</code> by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5642">tree-sitter/tree-sitter#5642</a></li>
<li>fix(lib): use correct TREE_SITTER_HIDE_SYMBOLS macro name in alloc.h
by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5643">tree-sitter/tree-sitter#5643</a></li>
<li>fix(cli): improve soundness of cst range calculation by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5650">tree-sitter/tree-sitter#5650</a></li>
<li>fix(lib): Consider subtree lookahead bytes when determining whether
the parser can reuse a node. by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5656">tree-sitter/tree-sitter#5656</a></li>
<li>fix(cli): display warning to user if parser test corpus dir isn't
found by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5669">tree-sitter/tree-sitter#5669</a></li>
<li>fix: add DESCRIPTION to grammar Makefile template by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5672">tree-sitter/tree-sitter#5672</a></li>
<li>fix(cli): infinite loop in highlight test by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5674">tree-sitter/tree-sitter#5674</a></li>
<li>fix(lib): address strict aliasing violations in
<code>TreeCursor</code> type by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5693">tree-sitter/tree-sitter#5693</a></li>
<li>build(deps): bump wasmtime-c-api to v36.0.12 by <a
href="https://github.com/clason"><code>@​clason</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5709">tree-sitter/tree-sitter#5709</a></li>
<li>fix(dsl): forbid invalid field names by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5710">tree-sitter/tree-sitter#5710</a></li>
<li>Fix issues with queries matching a parent node with anchored
children (siblings) by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5712">tree-sitter/tree-sitter#5712</a></li>
<li>test(query): regression test for anchored siblings inside a parent
by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5716">tree-sitter/tree-sitter#5716</a></li>
<li>release v0.26.10 by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5717">tree-sitter/tree-sitter#5717</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tree-sitter/tree-sitter/compare/v0.26.9...v0.26.10">https://github.com/tree-sitter/tree-sitter/compare/v0.26.9...v0.26.10</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/3fc4cd21bca378f8acf8c823809de4706b1808f6"><code>3fc4cd2</code></a>
release v0.26.10</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/568aee0b7e2e93b6eb7c132c9fafc185203b0661"><code>568aee0</code></a>
test(query): regression test for anchored siblings inside a parent</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/2efce10fe988408a1b02de4527b3f6128bb68d0e"><code>2efce10</code></a>
fix(query): skip passthrough steps when checking for fallible step
splitting</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/e8b96392919aeae84c52678be1489b9d507c568a"><code>e8b9639</code></a>
fix(query): avoid overriding states not seeking immediate match with
states s...</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/576564d25a6944859d70925b6cb693843cafc2c7"><code>576564d</code></a>
fix(query): take anchors between siblings into account for fallible step
spli...</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/fbf3049dc085b01c124308c0d61dba06cdc92a16"><code>fbf3049</code></a>
fix(dsl): forbid invalid field names</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/99bc36b857eccb3cb70d8734aaf7e2a83d672d60"><code>99bc36b</code></a>
build(deps): bump wasmtime-c-api to v36.0.12</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/1ef1048d0567cacc0b74ad1a911b95f3de2b8c47"><code>1ef1048</code></a>
fix(build): use <code>std</code> helper rather than passing
<code>-std=c11</code> flag</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/a61be4ac277bc8cb4ffa8419759faec0562c46f3"><code>a61be4a</code></a>
fix(lib): address strict aliasing violations in <code>TreeCursor</code>
type</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/be8f380ad47333e0df5a7b4f447485a6cd7f0fa7"><code>be8f380</code></a>
fix(cli): highlight test did not properly check for spans on later
rows</li>
<li>Additional commits viewable in <a
href="https://github.com/tree-sitter/tree-sitter/compare/v0.26.9...v0.26.10">compare
view</a></li>
</ul>
</details>
<br />

Updates `tree-sitter-highlight` from 0.26.9 to 0.26.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tree-sitter/tree-sitter/releases">tree-sitter-highlight's
releases</a>.</em></p>
<blockquote>
<h2>v0.26.10</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(lib): update doc comment for <code>ts_parser_parse</code> by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5642">tree-sitter/tree-sitter#5642</a></li>
<li>fix(lib): use correct TREE_SITTER_HIDE_SYMBOLS macro name in alloc.h
by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5643">tree-sitter/tree-sitter#5643</a></li>
<li>fix(cli): improve soundness of cst range calculation by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5650">tree-sitter/tree-sitter#5650</a></li>
<li>fix(lib): Consider subtree lookahead bytes when determining whether
the parser can reuse a node. by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5656">tree-sitter/tree-sitter#5656</a></li>
<li>fix(cli): display warning to user if parser test corpus dir isn't
found by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5669">tree-sitter/tree-sitter#5669</a></li>
<li>fix: add DESCRIPTION to grammar Makefile template by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5672">tree-sitter/tree-sitter#5672</a></li>
<li>fix(cli): infinite loop in highlight test by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5674">tree-sitter/tree-sitter#5674</a></li>
<li>fix(lib): address strict aliasing violations in
<code>TreeCursor</code> type by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5693">tree-sitter/tree-sitter#5693</a></li>
<li>build(deps): bump wasmtime-c-api to v36.0.12 by <a
href="https://github.com/clason"><code>@​clason</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5709">tree-sitter/tree-sitter#5709</a></li>
<li>fix(dsl): forbid invalid field names by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5710">tree-sitter/tree-sitter#5710</a></li>
<li>Fix issues with queries matching a parent node with anchored
children (siblings) by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5712">tree-sitter/tree-sitter#5712</a></li>
<li>test(query): regression test for anchored siblings inside a parent
by <a
href="https://github.com/tree-sitter-ci-bot"><code>@​tree-sitter-ci-bot</code></a>[bot]
in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5716">tree-sitter/tree-sitter#5716</a></li>
<li>release v0.26.10 by <a
href="https://github.com/WillLillis"><code>@​WillLillis</code></a> in <a
href="https://redirect.github.com/tree-sitter/tree-sitter/pull/5717">tree-sitter/tree-sitter#5717</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tree-sitter/tree-sitter/compare/v0.26.9...v0.26.10">https://github.com/tree-sitter/tree-sitter/compare/v0.26.9...v0.26.10</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/3fc4cd21bca378f8acf8c823809de4706b1808f6"><code>3fc4cd2</code></a>
release v0.26.10</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/568aee0b7e2e93b6eb7c132c9fafc185203b0661"><code>568aee0</code></a>
test(query): regression test for anchored siblings inside a parent</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/2efce10fe988408a1b02de4527b3f6128bb68d0e"><code>2efce10</code></a>
fix(query): skip passthrough steps when checking for fallible step
splitting</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/e8b96392919aeae84c52678be1489b9d507c568a"><code>e8b9639</code></a>
fix(query): avoid overriding states not seeking immediate match with
states s...</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/576564d25a6944859d70925b6cb693843cafc2c7"><code>576564d</code></a>
fix(query): take anchors between siblings into account for fallible step
spli...</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/fbf3049dc085b01c124308c0d61dba06cdc92a16"><code>fbf3049</code></a>
fix(dsl): forbid invalid field names</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/99bc36b857eccb3cb70d8734aaf7e2a83d672d60"><code>99bc36b</code></a>
build(deps): bump wasmtime-c-api to v36.0.12</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/1ef1048d0567cacc0b74ad1a911b95f3de2b8c47"><code>1ef1048</code></a>
fix(build): use <code>std</code> helper rather than passing
<code>-std=c11</code> flag</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/a61be4ac277bc8cb4ffa8419759faec0562c46f3"><code>a61be4a</code></a>
fix(lib): address strict aliasing violations in <code>TreeCursor</code>
type</li>
<li><a
href="https://github.com/tree-sitter/tree-sitter/commit/be8f380ad47333e0df5a7b4f447485a6cd7f0fa7"><code>be8f380</code></a>
fix(cli): highlight test did not properly check for spans on later
rows</li>
<li>Additional commits viewable in <a
href="https://github.com/tree-sitter/tree-sitter/compare/v0.26.9...v0.26.10">compare
view</a></li>
</ul>
</details>
<br />

Updates `vergen-gitcl` from 10.0.0 to 10.0.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rustyhorde/vergen/releases">vergen-gitcl's
releases</a>.</em></p>
<blockquote>
<h2>vergen 10.0.1</h2>
<p>Patch release adding a new error-fallback knob, a builder-access API
addition, dependency updates, and a security-audit refresh.</p>
<h3>New features</h3>
<ul>
<li><strong><code>VERGEN_DEFAULT_ON_ERROR</code> fallback</strong> (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/509">#509</a>)
— When building outside a git worktree (or any time an instruction
cannot be generated), the new <code>VERGEN_DEFAULT_ON_ERROR</code> env
var and <code>Emitter::default_on_error()</code> builder method populate
missing instructions with the idempotent default
(<code>VERGEN_IDEMPOTENT_OUTPUT</code>) so
<code>env!(&quot;VERGEN_GIT_SHA&quot;)</code> keeps compiling — while
builds <em>inside</em> a real worktree still emit real values.</li>
<li><strong><code>all()</code> builder accessor</strong> (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/513">#513</a>)
— Exposes <code>Build::all()</code>, <code>Cargo::all()</code>,
<code>Rustc::all()</code>, and <code>Sysinfo::all()</code> as public
methods that return the builder with all instructions enabled, enabling
subtractive modification (turn all on, then selectively disable).</li>
</ul>
<h3>Dependency updates</h3>
<ul>
<li><code>bon</code> 3.9.1 → 3.9.3</li>
<li><code>gix</code> 0.84.0 → 0.85.0</li>
<li><code>regex</code> 1.12.3 → 1.12.4</li>
<li><code>time</code> 0.3.47 → 0.3.51</li>
<li><code>sysinfo</code> 0.39.3 → 0.39.5</li>
<li><code>memmap2</code> 0.9.10 → 0.9.11 (resolves
<strong>RUSTSEC-2026-0186</strong>)</li>
</ul>
<h3>Security audit refresh</h3>
<ul>
<li>Added <code>RUSTSEC-2026-0173</code> ignore
(<code>proc-macro-error2</code> unmaintained, informational only)</li>
<li>Removed <code>RUSTSEC-2025-0055</code> ignore
(<code>tracing-subscriber</code> now resolved to ≥ 0.3.20)</li>
<li>Removed <code>RUSTSEC-2025-0141</code> ignore (<code>bincode</code>
no longer in the dependency tree)</li>
<li><code>cargo audit</code> passes clean</li>
</ul>
<h3>Other</h3>
<ul>
<li>Fixed inaccurate <code>fail_on_error</code> and
<code>idempotent</code> docs (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/509">#509</a>)</li>
<li>Added <code>cargo:rerun-if-changed=VERGEN_DEFAULT_ON_ERROR</code>
rerun directive</li>
<li>Bumped <code>cargo-binstall</code> in CI (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/503">#503</a>)</li>
<li>Parse deprecation fixes (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/505">#505</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rustyhorde/vergen/compare/v10.0.0...10.0.1">https://github.com/rustyhorde/vergen/compare/v10.0.0...10.0.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rustyhorde/vergen/commit/23a615917d339062777d013afd4204e40309fe61"><code>23a6159</code></a>
feat(api): expose all that returns builder for subtractive modification.
(<a
href="https://redirect.github.com/rustyhorde/vergen/issues/513">#513</a>)</li>
<li><a
href="https://github.com/rustyhorde/vergen/commit/b1ee36128a5b1b903722bc7bc6f35b2c9e1cbe7a"><code>b1ee361</code></a>
v10.0.1 enhancements: VERGEN_DEFAULT_ON_ERROR fallback, dependency
updates, a...</li>
<li><a
href="https://github.com/rustyhorde/vergen/commit/a3ffa569e9d0ea5a151813128acb992c09eddffe"><code>a3ffa56</code></a>
Fix parse deprecation issues (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/505">#505</a>)</li>
<li><a
href="https://github.com/rustyhorde/vergen/commit/2bab576a171eb950e67baef81bbae4989535a29b"><code>2bab576</code></a>
chore: version bump for next release (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/504">#504</a>)</li>
<li><a
href="https://github.com/rustyhorde/vergen/commit/ee3edb23bcea7b42373dcd068529c74a2c88a813"><code>ee3edb2</code></a>
Bump cargo-bins/cargo-binstall from 1.19.1 to 1.20.0 (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/503">#503</a>)</li>
<li>See full diff in <a
href="https://github.com/rustyhorde/vergen/compare/v10.0.0...10.0.1">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-29 01:18:54 -07:00
Maximilian Roos 50553be344 Release v0.63.0 (#3300)
Release v0.63.0. Folds the version bump (`Cargo.toml`, `Cargo.lock`) and
the `CHANGELOG.md` section into one commit.

This release is mostly polish and fixes on top of the v0.62.0 picker +
`wt list` overhaul, plus list correctness/perf and safer branch
deletion.

**Improved**: `[list] columns` can force a column on past `--full`;
`Alt-r` refreshes the picker preview panes; a narrowed `wt list` is now
actually faster (thanks @jtaby for reporting); fewer duplicate git calls
in `wt list --full`; picker `comments` tab caches across runs.

**Fixed**: fork diff/ahead-behind columns use the upstream default tip;
integrated branches stop flashing `✗`; atomic CAS branch deletion (a
safety improvement — fails closed when a ref races); Age/Message columns
paint sooner; `Alt-x` cursor flash + `--prs` row preservation; removable
rows stay gray when selected; preview scroll preserved on CI fetch;
summary tab dims when empty; first-run hints show the resolved config
path.

**Internal**: `-vv` trace/profiler accuracy.

The release-process data-loss surface review (four independent finders
over the full `v0.62.0..HEAD` diff) found no data-loss risk introduced;
the CAS branch-deletion change is a net safety improvement.

> _This was written by Claude Code on behalf of max_
2026-06-28 16:45:39 -07:00
Worktrunk Bot 5b83c0f1d8 fix(deps): pin petname-macros to =3.0.0 to fix nightly minimal-versions (#3283) 2026-06-28 08:46:16 -07:00
Maximilian Roos 51f7fe8abb Release v0.62.0 (#3263)
Release v0.62.0 — minor bump (`cargo semver-checks` reports a breaking
library-API change — `ListConfig.columns` added a public field, which
requires at least a minor pre-1.0 — plus many new features).

### Highlights

- **`wt switch --prs`** — browse open PRs/MRs in the interactive picker,
with a live CI/review column and `pr` / `comments` / `log` preview tabs
([#3128](https://github.com/max-sixty/worktrunk/pull/3128)).
[Docs](https://worktrunk.dev/switch/)
- **Interactive picker now runs on Windows**
([#3217](https://github.com/max-sixty/worktrunk/pull/3217)).
- **`main…±` diff column shows by default** in `wt list`; `--full` now
adds only the off-machine columns (CI status, LLM summaries)
([#3236](https://github.com/max-sixty/worktrunk/pull/3236)).
- **`[list] columns`** selects and orders the columns `wt list` renders
([#3141](https://github.com/max-sixty/worktrunk/pull/3141)).
- **`wt config state logs profile`** performance profiler
([#3184](https://github.com/max-sixty/worktrunk/pull/3184)).
- Picker keyboard shortcuts (copy / open / refresh) and the `Alt-x`
removal rework, fish completion-recursion fixes, `CLAUDE_CONFIG_DIR`
support, and more.

**Breaking:** in the picker, remove moved from `Alt-r` to `Alt-x`
(`Alt-r` now refreshes).

Two "Still waiting" entries
([#3178](https://github.com/max-sixty/worktrunk/pull/3178),
[#3183](https://github.com/max-sixty/worktrunk/pull/3183)) were moved
here from 0.61.0 — they landed after the v0.61.0 tag, so they ship in
0.62.0.

The changelog also documents the `Alt-x` removal rework
([#3262](https://github.com/max-sixty/worktrunk/pull/3262)); the tag
will be placed on the `main` tip that includes both this release commit
and #3262.

Full notes in the `CHANGELOG.md` diff. Data-loss surface review of the
cumulative diff in progress; the keyword pass came back clean (the new
`Alt-x` removal uses safe variants — `SafeDelete`, no force,
approval-gated).

> _This was written by Claude Code on behalf of max_
2026-06-26 22:52:51 -07:00
Maximilian Roos de97744718 feat(switch): picker shortcuts — copy, open, refresh, remap remove to alt-x (#3233)
Adds four keyboard shortcuts to the interactive `wt switch` picker: `alt-y` (copy the selected branch), `alt-o` (open the row's PR/MR), `alt-r` (refresh the list), and `alt-x` (remove, remapped from `alt-r`).

`alt-y`/`alt-o` are native skim `Action::Custom` callbacks reading the selected row off `App.item_list` (no reload, so the cursor stays put and `--prs` rows aren't dropped); the row → branch/URL lookup is extracted into `resolve_shortcut_branch`/`resolve_shortcut_url` and unit-tested. `alt-r` refresh re-enters the collect pipeline via a new `PipelineFactory`. `alt-y` no-ops on a detached worktree (no branch). New cross-platform deps: `arboard` (clipboard) and `open` (browser), gated behind the `cli` feature.

Merged over `codecov/patch` (89.76% vs 97.61% target) with explicit approval: the uncovered residual is the picker's clipboard/browser/thread-spawn and skim-`App`-bound closures, which a headless CI runner can't exercise. All required jobs green; reviewed and approved by worktrunk-bot.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 00:21:55 -07:00
dependabot[bot] ae4854cd21 chore: bump minijinja from 2.20.0 to 2.21.0 (#3157)
Bumps [minijinja](https://github.com/mitsuhiko/minijinja) from 2.20.0 to
2.21.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mitsuhiko/minijinja/blob/main/CHANGELOG.md">minijinja's
changelog</a>.</em></p>
<blockquote>
<h2>2.21.0</h2>
<ul>
<li>Fixed a panic when comparing two numbers that have no common
lossless representation, such as a float against an integer that cannot
be represented exactly as <code>f64</code> (for example <code>1.0 &lt;
9007199254740993</code>). <a
href="https://redirect.github.com/mitsuhiko/minijinja/issues/904">#904</a></li>
<li>Fixed a stack overflow caused by repeated sequence concatenation. <a
href="https://redirect.github.com/mitsuhiko/minijinja/issues/907">#907</a></li>
<li>Improved performance of iteration over map items. <a
href="https://redirect.github.com/mitsuhiko/minijinja/issues/906">#906</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mitsuhiko/minijinja/commit/1d3e73d39a7fd4a31c369209dbcb036fcf1a322c"><code>1d3e73d</code></a>
chore: bump version to 2.21.0</li>
<li><a
href="https://github.com/mitsuhiko/minijinja/commit/002351e66910291da837b8b893c19f5a71f1530a"><code>002351e</code></a>
docs(changelog): note stack overflow fix and map iteration perf</li>
<li><a
href="https://github.com/mitsuhiko/minijinja/commit/1183321f92732796d4f5f5fed800eb30949e68c2"><code>1183321</code></a>
Improve performance of iteration over map items (<a
href="https://redirect.github.com/mitsuhiko/minijinja/issues/906">#906</a>)</li>
<li><a
href="https://github.com/mitsuhiko/minijinja/commit/3dd59369682742937ee9cbedbca8bff3dbc301d9"><code>3dd5936</code></a>
fix(value): avoid panic comparing numbers without a common lossless
represent...</li>
<li><a
href="https://github.com/mitsuhiko/minijinja/commit/f8d9cc792ce53c41ece13affd8f1ca779bb97518"><code>f8d9cc7</code></a>
fix: avoid stack overflow on repeated sequence concatenation (<a
href="https://redirect.github.com/mitsuhiko/minijinja/issues/907">#907</a>)</li>
<li><a
href="https://github.com/mitsuhiko/minijinja/commit/3018c2e122ace9070a1048496c97a7e46018bd31"><code>3018c2e</code></a>
chore(ci): use Node 24 for npm publishing</li>
<li>See full diff in <a
href="https://github.com/mitsuhiko/minijinja/compare/minijinja-go/v2.20.0...minijinja-go/v2.21.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=minijinja&package-manager=cargo&previous-version=2.20.0&new-version=2.21.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-24 22:10:04 -07:00
dependabot[bot] 70d6455316 chore: bump the patch group across 1 directory with 4 updates (#3156)
Bumps the patch group with 4 updates in the / directory:
[log](https://github.com/rust-lang/log),
[which](https://github.com/harryfei/which-rs),
[reflink-copy](https://github.com/cargo-bins/reflink-copy) and
[ratatui](https://github.com/ratatui/ratatui).

Updates `log` from 0.4.32 to 0.4.33
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/log/blob/master/CHANGELOG.md">log's
changelog</a>.</em></p>
<blockquote>
<h2>[0.4.33] - 2026-06-20</h2>
<h2>What's Changed</h2>
<ul>
<li>Fixed key comparison by <a
href="https://github.com/matteo-zeggiotti-ok"><code>@​matteo-zeggiotti-ok</code></a>
in <a
href="https://redirect.github.com/rust-lang/log/pull/732">rust-lang/log#732</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/matteo-zeggiotti-ok"><code>@​matteo-zeggiotti-ok</code></a>
made their first contribution in <a
href="https://redirect.github.com/rust-lang/log/pull/732">rust-lang/log#732</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rust-lang/log/compare/0.4.32...0.4.33">https://github.com/rust-lang/log/compare/0.4.32...0.4.33</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-lang/log/commit/f405739f3a15a3f00680c793e1e1fa7e57d26ba4"><code>f405739</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/log/issues/734">#734</a>
from rust-lang/cargo/0.4.33</li>
<li><a
href="https://github.com/rust-lang/log/commit/6a24abf0835cef62e3d882287c97307dd3ecb403"><code>6a24abf</code></a>
prepare for 0.4.33 release</li>
<li><a
href="https://github.com/rust-lang/log/commit/87e062162e051d54bb553aacae3f0c6c4c213e59"><code>87e0621</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/log/issues/732">#732</a>
from matteo-zeggiotti-ok/fix-key-comparison</li>
<li><a
href="https://github.com/rust-lang/log/commit/a9b57119a631249fc8e881c7ef78e2028aacb823"><code>a9b5711</code></a>
Review: fallback to the &amp;str hash</li>
<li><a
href="https://github.com/rust-lang/log/commit/cc89cc6e41190de36892e33fff48e5f48cf57fa9"><code>cc89cc6</code></a>
Review: fixed other comparisons</li>
<li><a
href="https://github.com/rust-lang/log/commit/920e7dc2811c18a228bf78e818196de950659d85"><code>920e7dc</code></a>
Review: fixed comparison on <code>MaybeStaticStr</code></li>
<li><a
href="https://github.com/rust-lang/log/commit/0d71d3c685f2e23b1ad209b48408efe1205b18b0"><code>0d71d3c</code></a>
Fixed key comparison</li>
<li>See full diff in <a
href="https://github.com/rust-lang/log/compare/0.4.32...0.4.33">compare
view</a></li>
</ul>
</details>
<br />

Updates `which` from 8.0.3 to 8.0.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/harryfei/which-rs/releases">which's
releases</a>.</em></p>
<blockquote>
<h2>8.0.4</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: emit NonFatalError on Windows if PATHEXT not populated by <a
href="https://github.com/Xaeroxe"><code>@​Xaeroxe</code></a> in <a
href="https://redirect.github.com/harryfei/which-rs/pull/125">harryfei/which-rs#125</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/harryfei/which-rs/compare/8.0.3...8.0.4">https://github.com/harryfei/which-rs/compare/8.0.3...8.0.4</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/harryfei/which-rs/blob/master/CHANGELOG.md">which's
changelog</a>.</em></p>
<blockquote>
<h2>8.0.4</h2>
<ul>
<li>On Windows we now emit a <code>NonFatalError</code> if the
<code>PATHEXT</code> environment variable is not populated, and the
query did not specify a file extension.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/harryfei/which-rs/commit/c9df5ef4c8e41961a89a8ee2a68de895365bcfb7"><code>c9df5ef</code></a>
feat: emit NonFatalError on Windows if PATHEXT not populated (<a
href="https://redirect.github.com/harryfei/which-rs/issues/125">#125</a>)</li>
<li>See full diff in <a
href="https://github.com/harryfei/which-rs/compare/8.0.3...8.0.4">compare
view</a></li>
</ul>
</details>
<br />

Updates `reflink-copy` from 0.1.29 to 0.1.30
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/cargo-bins/reflink-copy/blob/main/CHANGELOG.md">reflink-copy's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/cargo-bins/reflink-copy/compare/v0.1.29...v0.1.30">0.1.30</a>
- 2026-06-18</h2>
<h3>Other</h3>
<ul>
<li>Fix reflink: copy over permissions (<a
href="https://redirect.github.com/cargo-bins/reflink-copy/pull/174">#174</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/cargo-bins/reflink-copy/commit/897c9ba31abe6cf7863f7b18b7e16b6c34cf9191"><code>897c9ba</code></a>
chore: release v0.1.30 (<a
href="https://redirect.github.com/cargo-bins/reflink-copy/issues/175">#175</a>)</li>
<li><a
href="https://github.com/cargo-bins/reflink-copy/commit/524531078bb28033ce2565765c11b6d5898181b1"><code>5245310</code></a>
Bump samypr100/setup-dev-drive from 3 to 4 (<a
href="https://redirect.github.com/cargo-bins/reflink-copy/issues/147">#147</a>)</li>
<li><a
href="https://github.com/cargo-bins/reflink-copy/commit/8ef7ef4ef492d583c070eff484939de4f32e58d5"><code>8ef7ef4</code></a>
Fix reflink: copy over permissions (<a
href="https://redirect.github.com/cargo-bins/reflink-copy/issues/174">#174</a>)</li>
<li>See full diff in <a
href="https://github.com/cargo-bins/reflink-copy/compare/v0.1.29...v0.1.30">compare
view</a></li>
</ul>
</details>
<br />

Updates `ratatui` from 0.30.1 to 0.30.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui/ratatui/releases">ratatui's
releases</a>.</em></p>
<blockquote>
<h2>ratatui-v0.30.2</h2>
<p><img
src="https://github.com/ratatui/ratatui-website/raw/refs/heads/main/src/assets/a-gift.png"
alt="a gift" /></p>
<p>We are excited to announce the new version of <code>ratatui</code> -
a Rust library that's all about cooking up TUIs 👨‍🍳🐀</p>
<p>✨ <strong>Release highlights</strong>: <a
href="https://ratatui.rs/highlights/v0302/">https://ratatui.rs/highlights/v0302/</a></p>
<p>⚠️ List of breaking changes can be found <a
href="https://github.com/ratatui/ratatui/blob/main/BREAKING-CHANGES.md">here</a>.</p>
<h3>Features</h3>
<ul>
<li>
<p><a
href="https://github.com/ratatui/ratatui/commit/90639c179ddcbe483ea05f21b1ce3fa09767441a">90639c1</a>
<em>(uncategorized)</em> Add Termina backend by <code>@joshka</code> in
<a
href="https://redirect.github.com/ratatui/ratatui/pull/2561">#2561</a></p>
<blockquote>
<h2>Summary</h2>
<ul>
<li>add the <code>ratatui-termina</code> backend crate using the
published <code>termina</code>
crate</li>
<li>expose the backend through the <code>termina</code> feature and
Ratatui
prelude/backend re-exports</li>
<li>add a small Termina event-loop example and wire the backend into CI,
xtask, README generation, and docs</li>
</ul>
<p>Refs <a
href="https://redirect.github.com/ratatui/ratatui/issues/1784">#1784</a></p>
<h2>Validation</h2>
<ul>
<li><code>cargo +nightly fmt</code></li>
<li><code>cargo check -p ratatui-termina --all-features
--all-targets</code></li>
<li><code>cargo check -p ratatui --no-default-features --features
termina</code></li>
<li><code>cargo check -p xtask</code></li>
<li><code>cargo check -p release-header</code></li>
<li><code>cargo xtask check-backend termina</code></li>
<li><code>cargo xtask test-backend termina</code></li>
<li><code>cargo xtask rdme --check</code></li>
<li><code>markdownlint-cli2 ARCHITECTURE.md ratatui-termina/README.md
.github/ISSUE_TEMPLATE/bug_report.md</code></li>
</ul>
<hr />
</blockquote>
</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>
<p><a
href="https://github.com/ratatui/ratatui/commit/fce3c80d53d5cf367e62cadf1d5c819947d23e4c">fce3c80</a>
<em>(widgets)</em> Require thread-safe shadow effects by
<code>@joshka</code> in <a
href="https://redirect.github.com/ratatui/ratatui/pull/2584">#2584</a></p>
<blockquote>
<h2>Summary</h2>
<ul>
<li>require custom shadow effects to preserve the auto traits expected
by
Block-backed widgets</li>
<li>document the CellEffect auto-trait contract</li>
<li>add a public widget regression test for the affected
ratatui::widgets
re-exports</li>
</ul>
</blockquote>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ratatui/ratatui/blob/main/CHANGELOG.md">ratatui's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/ratatui/ratatui/releases/tag/ratatui-v0.30.2">0.30.2</a>
- 2026-06-19</h2>
<p><img
src="https://github.com/ratatui/ratatui-website/raw/refs/heads/main/src/assets/a-gift.png"
alt="a gift" /></p>
<p>We are excited to announce the new version of <code>ratatui</code> -
a Rust library that's all about cooking up TUIs 👨‍🍳🐀</p>
<p>✨ <strong>Release highlights</strong>: <a
href="https://ratatui.rs/highlights/v0302/">https://ratatui.rs/highlights/v0302/</a></p>
<p>⚠️ List of breaking changes can be found <a
href="https://github.com/ratatui/ratatui/blob/main/BREAKING-CHANGES.md">here</a>.</p>
<h3>Features</h3>
<ul>
<li>
<p><a
href="https://github.com/ratatui/ratatui/commit/90639c179ddcbe483ea05f21b1ce3fa09767441a">90639c1</a>
<em>(uncategorized)</em> Add Termina backend by <code>@joshka</code> in
<a
href="https://redirect.github.com/ratatui/ratatui/pull/2561">#2561</a></p>
<blockquote>
<h2>Summary</h2>
<ul>
<li>add the <code>ratatui-termina</code> backend crate using the
published <code>termina</code>
crate</li>
<li>expose the backend through the <code>termina</code> feature and
Ratatui
prelude/backend re-exports</li>
<li>add a small Termina event-loop example and wire the backend into CI,
xtask, README generation, and docs</li>
</ul>
<p>Refs <a
href="https://redirect.github.com/ratatui/ratatui/issues/1784">#1784</a></p>
<h2>Validation</h2>
<ul>
<li><code>cargo +nightly fmt</code></li>
<li><code>cargo check -p ratatui-termina --all-features
--all-targets</code></li>
<li><code>cargo check -p ratatui --no-default-features --features
termina</code></li>
<li><code>cargo check -p xtask</code></li>
<li><code>cargo check -p release-header</code></li>
<li><code>cargo xtask check-backend termina</code></li>
<li><code>cargo xtask test-backend termina</code></li>
<li><code>cargo xtask rdme --check</code></li>
<li><code>markdownlint-cli2 ARCHITECTURE.md ratatui-termina/README.md
.github/ISSUE_TEMPLATE/bug_report.md</code></li>
</ul>
<hr />
</blockquote>
</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>
<p><a
href="https://github.com/ratatui/ratatui/commit/fce3c80d53d5cf367e62cadf1d5c819947d23e4c">fce3c80</a>
<em>(widgets)</em> Require thread-safe shadow effects by
<code>@joshka</code> in <a
href="https://redirect.github.com/ratatui/ratatui/pull/2584">#2584</a></p>
<blockquote>
<h2>Summary</h2>
<ul>
<li>require custom shadow effects to preserve the auto traits expected
by
Block-backed widgets</li>
<li>document the CellEffect auto-trait contract</li>
<li>add a public widget regression test for the affected
ratatui::widgets</li>
</ul>
</blockquote>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ratatui/ratatui/commit/e665c36cb14752a61cd777fbd06dbef8474f2add"><code>e665c36</code></a>
chore(ratatui): unleash the rats v0.30.2 (<a
href="https://redirect.github.com/ratatui/ratatui/issues/2581">#2581</a>)</li>
<li><a
href="https://github.com/ratatui/ratatui/commit/2700b168b57dd88b9e0fb4ea177673c2e95f3090"><code>2700b16</code></a>
docs(changelog): update changelog for 0.30.2 (<a
href="https://redirect.github.com/ratatui/ratatui/issues/2608">#2608</a>)</li>
<li><a
href="https://github.com/ratatui/ratatui/commit/e306ce69df3113d41c00c483e36ba3ecc88f3c79"><code>e306ce6</code></a>
fix(buffer): create updates for &quot;uncovered&quot; cells (<a
href="https://redirect.github.com/ratatui/ratatui/issues/2587">#2587</a>)</li>
<li><a
href="https://github.com/ratatui/ratatui/commit/81e667f354489a809e0db1f95e378efe859dd409"><code>81e667f</code></a>
fix(scrollbar): keep a large thumb within the track at the end (<a
href="https://redirect.github.com/ratatui/ratatui/issues/2594">#2594</a>)</li>
<li><a
href="https://github.com/ratatui/ratatui/commit/c75d7782be5c8157b0c140821090a13fd8cb8eb0"><code>c75d778</code></a>
chore(ci): add cargo-udeps dependency check (<a
href="https://redirect.github.com/ratatui/ratatui/issues/2599">#2599</a>)</li>
<li><a
href="https://github.com/ratatui/ratatui/commit/25314d812972b4cff30f863439021575b7a00217"><code>25314d8</code></a>
build(deps): bump release-plz/action from 0.5.129 to 0.5.130 (<a
href="https://redirect.github.com/ratatui/ratatui/issues/2600">#2600</a>)</li>
<li><a
href="https://github.com/ratatui/ratatui/commit/35340703e8aa2d314870b9022cb75d899cf49b14"><code>3534070</code></a>
build(deps): bump taiki-e/install-action from 2.81.8 to 2.81.10 (<a
href="https://redirect.github.com/ratatui/ratatui/issues/2601">#2601</a>)</li>
<li><a
href="https://github.com/ratatui/ratatui/commit/a798a13b53f865f46c7b7e4e56da8640b354547b"><code>a798a13</code></a>
build(deps): bump tombi-toml/setup-tombi from 1.1.2 to 1.1.3 (<a
href="https://redirect.github.com/ratatui/ratatui/issues/2602">#2602</a>)</li>
<li><a
href="https://github.com/ratatui/ratatui/commit/3ac885038ee6fc2ab043b7421b922f1800159829"><code>3ac8850</code></a>
build(deps): bump octocrab from 0.52.0 to 0.53.1 (<a
href="https://redirect.github.com/ratatui/ratatui/issues/2603">#2603</a>)</li>
<li><a
href="https://github.com/ratatui/ratatui/commit/9c7963341a0479e02bf92091c57fc0ee82ed1f4e"><code>9c79633</code></a>
build(deps): bump time from 0.3.47 to 0.3.49 (<a
href="https://redirect.github.com/ratatui/ratatui/issues/2604">#2604</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ratatui/ratatui/compare/ratatui-v0.30.1...ratatui-v0.30.2">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-24 19:41:51 -07:00
Maximilian Roos e9b822c103 Release v0.61.0 (#3151) 2026-06-21 14:58:08 -07:00
Maximilian Roos 958b9c188a refactor(picker): migrate to skim 4.8 (ratatui), drop vendored skim-tuikit (#3137)
Migrates the `wt switch` picker from skim 0.20.5 (tuikit backend) to
skim 4.8.0 (ratatui/crossterm), removes the `vendor/skim-tuikit/` patch
tree we carried against the old line, and makes the full test suite
green under the new backend.

## Why the vendor tree goes away

We vendored skim-tuikit for two patches: `alt-<digit>` key parsing and
an `Output::flush` `write_all` fix for dropped bytes under PTY pressure.
Both are moot in 4.8. Key parsing is native — `binds.rs` routes every
single character (digits included) through `KeyCode::Char` rather than a
hardcoded `alt-a..alt-z` arm list. The flush fix is subsumed by stdlib
`BufWriter::flush` in the ratatui backend, which loops over partial
writes correctly. So the migration carries zero vendor patches against
skim, and the build machinery that kept the vendored source alive
(Taskfile `vendor-diff`, flake `vendorSrc`/`extraDummyScript`) is
deleted too.

## The picker rewrite

skim 4.x is a different API. `WorktreeSkimItem::display()` now returns
`ratatui::text::Line` instead of an `AnsiString`. alt-r removal rides
skim's `reload(remove {})` token (the selected row's `output()`,
expanded into the reload command) instead of the old
`as_any().downcast_ref` path (which never worked across compilation
units) plus a signal file. Preview-tab switching and the progressive
list redraw are driven by `Skim::event_sender()` +
`Event::Render`/`Event::RunPreview`.

## The regression that motivated the bulk of this

skim 4.x renders on demand. There is no 100ms tuikit heartbeat
re-rendering the frame, so the progressive `wt switch` list rendered
blank while collection ran in the background — the original report. The
fix pokes `Event::Render` from the list-collect callbacks (throttled to
16ms). The same on-demand model surfaced four more regressions, all
fixed here and verified head-to-head against the 0.20 picker in a
terminal: preview-tab lag, current-row highlight, Shift-Tab back-cycle
(crossterm reports Shift-Tab under three distinct `KeyEvent` shapes, so
all three are bound), and alt-r removal (4.x `execute-silent` is
fire-and-forget and raced its reader).

## Help text and the test harness

Two things the integration suite caught that the unit tests did not (the
prior pass ran `--lib --bins` only):

- **Styled help.** skim 0.20 transitively pulled in
`clap/unstable-markdown`, which renders worktrunk's `///` doc-comments
as styled help. skim 4 with `default-features = false` drops it, so help
reverted to raw text (`[experimental]` → `\[experimental\]`). Restored
by depending on `unstable-markdown` explicitly, keeping help output
identical and the `test_help` / `test_step_alias` /
`test_docs_are_in_sync` snapshots passing unchanged.
- **PTY harness.** skim 4.x queries cursor position (`ESC[6n`) at
startup in partial-height mode and blocks in `select()` for the reply;
`portable_pty` is a bare PTY and never answered, so every
`switch_picker` test failed init with "Cursor position detection timed
out." The Unix harness now answers the query, mirroring the existing
ConPTY responder. skim 4.x also draws the list/preview separator one
column left, so the snapshot panel-split columns shifted to match. The
regenerated picker snapshots show two cosmetic changes: the match
counter no longer overlaps the preview tab header, and the HEAD column
shows the full short-SHA instead of a truncated one.

## Minimal-versions CI

The skim 4.8 dep tree pins tighter floors than our manifests declared,
so the nightly `minimal-versions` job needed updating. It now runs `-Z
direct-minimal-versions` — minimize only our own direct deps and let
transitive crates resolve normally — and the manifests raise each
under-specified floor to the minimum the workspace builds against
(largely mirroring skim 4.8's own requirements). Full `-Z
minimal-versions` would instead drag in skim's transitive TUI/image
stack (ansi-to-tui, ratatui's `instability` macro, color-eyre,
ratatui-image → image/avif), whose crates under-declare their floors and
don't compile at the picked versions; direct minimization confines the
check to floors we own, so no transitive pins are needed. Normal
resolution (the committed `Cargo.lock`) is unchanged. Full floor list
and the `signal-hook` libc-pin detail are in the `ci(min-versions)`
commit message.

## Reviewing

Start at `src/commands/picker/mod.rs` (the `run_skim` entry point, the
action keybinds, and `parse_reload_remove_token`), then
`progressive_handler.rs` (the render pokes) and `items.rs` (the
`Line`-based `display()`). Test-harness changes are in
`tests/common/pty.rs` (the `ESC[6n` responder) and
`tests/integration_tests/switch_picker.rs` (the panel-split columns).
The rest is the dependency swap, the vendor and build-machinery
deletions, and regenerated snapshots.

All 3980 tests pass (`cargo run -- hook pre-merge --yes`), including the
`shell-integration-tests` PTY suite that exercises the picker end-to-end
across the list, previews, scroll, create/remove, and accept flows. No
automated test drives a real terminal; the interactive surface was also
checked by hand against the 0.20 picker.

> _This was written by Claude Code on behalf of max_

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 03:41:20 -07:00
Maximilian Roos 4ccbecf884 Release v0.60.0 (#3127)
Release v0.60.0 (minor bump from 0.59.0).

Minor because semver-checks flagged a breaking library-API change and
five new features landed since v0.59.0. The data-loss surface review (4
independent finders) cleared the one change that touches it (relocating
dirty linked worktrees, #3104).

### Improved
- Package installs now complete branch/worktree names via dynamic
registration (#3105, thanks @bendrucker)
- `wt step relocate` moves dirty linked worktrees (#3104, thanks
@lunaynx for reporting)
- `--dry-run` previews print to stdout (#3085)
- Picker gutter distinguishes local (`/`) and remote (`|`) branches
(#3115)
- `wt list --format=json` gains structured `repo`/`ci.repo` metadata
(#3021, thanks @jeremy0dell)
- `wt step eval --format=json` (#3106)
- `--format=claude-code` rejected on `wt list` / `wt config state get`
(#3116)

### Fixed
- `cargo install worktrunk` builds from crates.io again (#3124, fixes
#3123, thanks @kerrickstaley for reporting)
- Tab-completion works in repos with no commits (#3097, closes #3094)
- `wt config state get ci-status --format=json` honors
`[forge].platform` (#3120)

### Documentation
- `wt list --help` example tables fit the terminal (#3125)
- `/wt-switch-create` cross-repo handling reworked (#3118)
- Help-text and web-doc refinements (#3096, #3108, #3110, #3112, #3126)

Full notes in `CHANGELOG.md`.

> _This was written by Claude Code on behalf of max_
2026-06-18 12:15:46 -07:00
Maximilian Roos bd84d7479f Release v0.59.0 (#3100)
Release v0.59.0 (minor). The bump is minor because two
backward-incompatible behavior changes ship: in the `wt switch` picker,
`1`–`5` no longer switch preview tabs (digits now filter; tabs move to
`Alt-1`–`Alt-5` / `Tab`); and `wt step eval --dry-run` is removed in
favor of `-v`. `cargo semver-checks` reports no library API breakage.

### Highlights

- **Improved**: picker frees digit keys for filtering (preview tabs to
`Alt`); squash templates use `commit_details` instead of the deprecated
`commits`; `wt step eval -v` lists template variables.
- **Fixed**: picker no longer freezes on the first keystroke with many
worktrees (#3087, thanks @bendrucker; fixes #2926, thanks @mahume for
reporting); tab-completion covers all hook types; Ctrl-C on a concurrent
alias reports the right exit code.

See `CHANGELOG.md` for the full set.

### Bundled test fix

This PR also carries one non-release commit: `test(ci_status): cover '?'
worker-thread label in snapshot filter`. The
`test_list_full_with_invalid_configured_platform` snapshot filter only
normalized `[a-zA-Z]` worker-thread labels, but `label_for_thread_index`
emits `?` for thread IDs above 52. On high-core machines the rayon pools
span enough threads to hit that, so the gate failed locally (CI's low
core count never triggers it). The filter now covers the full label
alphabet. Test-only; not in the changelog.

> _This was written by Claude Code on behalf of max_

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 19:04:19 -07:00
dependabot[bot] e947b8708a chore: bump vergen-gitcl from 9.1.0 to 10.0.0 (#3083)
Bumps [vergen-gitcl](https://github.com/rustyhorde/vergen) from 9.1.0 to
10.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rustyhorde/vergen/releases">vergen-gitcl's
releases</a>.</em></p>
<blockquote>
<h2>vergen 10.0.0</h2>
<p>Major release of the <code>vergen</code> suite (<code>vergen</code>,
<code>vergen-lib</code>, <code>vergen-git2</code>,
<code>vergen-gitcl</code>, <code>vergen-gix</code>,
<code>vergen-pretty</code>).</p>
<h3>Highlights</h3>
<ul>
<li><strong>MSRV raised to 1.95.0</strong> (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/496">#496</a>,
prior bumps via <a
href="https://redirect.github.com/rustyhorde/vergen/issues/487">#487</a>,
<a
href="https://redirect.github.com/rustyhorde/vergen/issues/440">#440</a>).</li>
<li><strong>Raw Unix-seconds timestamps</strong> — emit build timestamps
as raw Unix seconds (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/444">#444</a>).</li>
<li><strong><code>SOURCE_DATE_EPOCH</code> decoupling</strong> plus a
<code>.cargo_vcs_info.json</code> fallback for reproducible builds when
building from a published crate without a git repo (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/452">#452</a>,
<a
href="https://redirect.github.com/rustyhorde/vergen/issues/448">#448</a>).</li>
<li><strong>Remote URL support</strong> for git functionality (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/459">#459</a>).</li>
<li><strong><code>GIT_DIRTY</code></strong> instruction documented and
dirty-output fixes for <code>vergen-gix</code> (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/465">#465</a>,
<a
href="https://redirect.github.com/rustyhorde/vergen/issues/423">#423</a>).</li>
</ul>
<h3>Internal / maintenance</h3>
<ul>
<li>Replaced <code>getset</code> with hand-written getters in
<code>vergen-lib</code> (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/491">#491</a>).</li>
<li>Removed <code>bincode</code> from <code>vergen-pretty</code> (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/481">#481</a>).</li>
<li>Added a <code>cargo-semver-checks</code> CI job (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/478">#478</a>).</li>
<li>Numerous dependency updates, including <code>gix</code> bumps to
address RUSTSEC advisories (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/473">#473</a>,
<a
href="https://redirect.github.com/rustyhorde/vergen/issues/488">#488</a>,
<a
href="https://redirect.github.com/rustyhorde/vergen/issues/490">#490</a>).</li>
<li>CI: skip coverage jobs for forked PRs (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/492">#492</a>),
pinning + parallelization (<a
href="https://redirect.github.com/rustyhorde/vergen/issues/496">#496</a>).</li>
<li>Lint and doc fixes across the workspace.</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rustyhorde/vergen/compare/vergen_9.0.6...v10.0.0">https://github.com/rustyhorde/vergen/compare/vergen_9.0.6...v10.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/rustyhorde/vergen/commits/v10.0.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vergen-gitcl&package-manager=cargo&previous-version=9.1.0&new-version=10.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: worktrunk-bot <worktrunk-bot@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2026-06-14 20:55:04 -07:00
dependabot[bot] db5e916106 chore: bump insta from 1.47.2 to 1.48.0 (#3082)
Bumps [insta](https://github.com/mitsuhiko/insta) from 1.47.2 to 1.48.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mitsuhiko/insta/releases">insta's
releases</a>.</em></p>
<blockquote>
<h2>1.48.0</h2>
<h2>Release Notes</h2>
<ul>
<li>Add <code>strip_ansi_escape_codes</code> setting which removes ANSI
escape sequences
(color codes, cursor movement, etc.) from snapshot content before
comparison.
Requires the <code>filters</code> feature. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/899">#899</a>
(<a
href="https://github.com/pierluigilenoci"><code>@​pierluigilenoci</code></a>)</li>
<li>Add opt-in support for YAML literal blocks for multiline strings in
snapshot
metadata fields such as <code>description</code> and
<code>expression</code>. Set
<code>INSTA_YAML_BLOCK_STYLE=1</code> to enable. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/851">#851</a>
(<a href="https://github.com/ivov"><code>@​ivov</code></a>)</li>
<li>Setting <code>CI=true</code> normally makes <code>cargo insta
test</code> behave as though <code>--check</code>
was passed. Explicit snapshot handling options such as
<code>--accept</code> now take
precedence over this environment variable, allowing users to override
this
behavior if they want to. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/924">#924</a></li>
<li>Fix <code>cargo insta test --profile</code> being forwarded to
nextest as the nextest
profile instead of the cargo build profile; it now translates to
<code>--cargo-profile</code> for the nextest runner. Add
<code>--nextest-profile</code> to select
the nextest profile. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/910">#910</a></li>
<li>Fix <code>cargo insta pending-snapshots</code> printing unusable
<code>\\?\</code>-prefixed paths
on Windows. The <code>--snapshot</code> filter now also accepts partial
paths: any
trailing path suffix of the snapshot file matches, so a bare
<code>--snapshot my_test.snap</code> works. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/904">#904</a></li>
<li>Accepting a binary snapshot no longer fails with <code>os error
2</code> when its data
file is missing (e.g. gitignored and not committed). <a
href="https://redirect.github.com/mitsuhiko/insta/issues/914">#914</a></li>
</ul>
<h2>Install cargo-insta 1.48.0</h2>
<h3>Install prebuilt binaries via shell script</h3>
<pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf
https://github.com/mitsuhiko/insta/releases/download/1.48.0/cargo-insta-installer.sh
| sh
</code></pre>
<h3>Install prebuilt binaries via powershell script</h3>
<pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c &quot;irm
https://github.com/mitsuhiko/insta/releases/download/1.48.0/cargo-insta-installer.ps1
| iex&quot;
</code></pre>
<h2>Download cargo-insta 1.48.0</h2>
<table>
<thead>
<tr>
<th>File</th>
<th>Platform</th>
<th>Checksum</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.48.0/cargo-insta-aarch64-apple-darwin.tar.xz">cargo-insta-aarch64-apple-darwin.tar.xz</a></td>
<td>Apple Silicon macOS</td>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.48.0/cargo-insta-aarch64-apple-darwin.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.48.0/cargo-insta-x86_64-apple-darwin.tar.xz">cargo-insta-x86_64-apple-darwin.tar.xz</a></td>
<td>Intel macOS</td>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.48.0/cargo-insta-x86_64-apple-darwin.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.48.0/cargo-insta-x86_64-pc-windows-msvc.zip">cargo-insta-x86_64-pc-windows-msvc.zip</a></td>
<td>x64 Windows</td>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.48.0/cargo-insta-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.48.0/cargo-insta-x86_64-unknown-linux-gnu.tar.xz">cargo-insta-x86_64-unknown-linux-gnu.tar.xz</a></td>
<td>x64 Linux</td>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.48.0/cargo-insta-x86_64-unknown-linux-gnu.tar.xz.sha256">checksum</a></td>
</tr>
<tr>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.48.0/cargo-insta-x86_64-unknown-linux-musl.tar.xz">cargo-insta-x86_64-unknown-linux-musl.tar.xz</a></td>
<td>x64 MUSL Linux</td>
<td><a
href="https://github.com/mitsuhiko/insta/releases/download/1.48.0/cargo-insta-x86_64-unknown-linux-musl.tar.xz.sha256">checksum</a></td>
</tr>
</tbody>
</table>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mitsuhiko/insta/blob/master/CHANGELOG.md">insta's
changelog</a>.</em></p>
<blockquote>
<h2>1.48.0</h2>
<ul>
<li>Add <code>strip_ansi_escape_codes</code> setting which removes ANSI
escape sequences
(color codes, cursor movement, etc.) from snapshot content before
comparison.
Requires the <code>filters</code> feature. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/899">#899</a>
(<a
href="https://github.com/pierluigilenoci"><code>@​pierluigilenoci</code></a>)</li>
<li>Add opt-in support for YAML literal blocks for multiline strings in
snapshot
metadata fields such as <code>description</code> and
<code>expression</code>. Set
<code>INSTA_YAML_BLOCK_STYLE=1</code> to enable. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/851">#851</a>
(<a href="https://github.com/ivov"><code>@​ivov</code></a>)</li>
<li>Setting <code>CI=true</code> normally makes <code>cargo insta
test</code> behave as though <code>--check</code>
was passed. Explicit snapshot handling options such as
<code>--accept</code> now take
precedence over this environment variable, allowing users to override
this
behavior if they want to. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/924">#924</a></li>
<li>Fix <code>cargo insta test --profile</code> being forwarded to
nextest as the nextest
profile instead of the cargo build profile; it now translates to
<code>--cargo-profile</code> for the nextest runner. Add
<code>--nextest-profile</code> to select
the nextest profile. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/910">#910</a></li>
<li>Fix <code>cargo insta pending-snapshots</code> printing unusable
<code>\\?\</code>-prefixed paths
on Windows. The <code>--snapshot</code> filter now also accepts partial
paths: any
trailing path suffix of the snapshot file matches, so a bare
<code>--snapshot my_test.snap</code> works. <a
href="https://redirect.github.com/mitsuhiko/insta/issues/904">#904</a></li>
<li>Accepting a binary snapshot no longer fails with <code>os error
2</code> when its data
file is missing (e.g. gitignored and not committed). <a
href="https://redirect.github.com/mitsuhiko/insta/issues/914">#914</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mitsuhiko/insta/commit/7f23d2e4684a789a85c50503004fb38a23c9ea58"><code>7f23d2e</code></a>
Release 1.48.0 (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/925">#925</a>)</li>
<li><a
href="https://github.com/mitsuhiko/insta/commit/ee9cae1eb49cfa80c3d335246b0cfbb6bd006027"><code>ee9cae1</code></a>
Allow <code>CI=true</code> to be overridden by an explicitly passed
<code>--accept</code> CLI flag ...</li>
<li><a
href="https://github.com/mitsuhiko/insta/commit/043cf8268e3be93ca684fbfbf3969ad03ad71046"><code>043cf82</code></a>
fix: translate --profile to --cargo-profile for nextest (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/913">#913</a>)</li>
<li><a
href="https://github.com/mitsuhiko/insta/commit/9c77f137b160e2235a71770d370fc1b4e7b1f456"><code>9c77f13</code></a>
test: cover deep-wildcard redaction through arrays (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/915">#915</a>)</li>
<li><a
href="https://github.com/mitsuhiko/insta/commit/362f432b2d33ca9cdc0fe298a62942b3e13082d2"><code>362f432</code></a>
Fix <code>--snapshot</code> filter on Windows; allow partial paths (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/904">#904</a>)</li>
<li><a
href="https://github.com/mitsuhiko/insta/commit/a436836bb22bd1c857f374c8aea6064120680558"><code>a436836</code></a>
fix: tolerate a missing binary snapshot data file (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/914">#914</a>)</li>
<li><a
href="https://github.com/mitsuhiko/insta/commit/bf5fcdf1646087b717039011ac9a27cff3b4fc02"><code>bf5fcdf</code></a>
fix: regenerate Cargo.lock and guard it with --locked in CI (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/912">#912</a>)</li>
<li><a
href="https://github.com/mitsuhiko/insta/commit/a761a9c937406d8eeab45f23d98d5a2a12105aaf"><code>a761a9c</code></a>
feat: Support YAML literal blocks for multiline strings (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/851">#851</a>)</li>
<li><a
href="https://github.com/mitsuhiko/insta/commit/f9633f3a1251a10b8a96243cb941c7834e91288d"><code>f9633f3</code></a>
ci: pin <code>check-minver</code> to nightly-2026-04-25 (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/905">#905</a>)</li>
<li><a
href="https://github.com/mitsuhiko/insta/commit/c7b98b8d23846130ce769f86ec8c33b0f221d48e"><code>c7b98b8</code></a>
feat: add strip_ansi_escape_codes setting (<a
href="https://redirect.github.com/mitsuhiko/insta/issues/899">#899</a>)</li>
<li>See full diff in <a
href="https://github.com/mitsuhiko/insta/compare/1.47.2...1.48.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=insta&package-manager=cargo&previous-version=1.47.2&new-version=1.48.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-14 20:55:02 -07:00
dependabot[bot] d3c6836bbc chore: bump regex from 1.12.3 to 1.12.4 in the patch group (#3081)
Bumps the patch group with 1 update:
[regex](https://github.com/rust-lang/regex).

Updates `regex` from 1.12.3 to 1.12.4
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/regex/blob/master/CHANGELOG.md">regex's
changelog</a>.</em></p>
<blockquote>
<h1>1.12.4 (2025-06-09)</h1>
<p>This release includes a performance optimization for compilation of
regexes
with very large character classes.</p>
<p>Improvements:</p>
<ul>
<li><a
href="https://redirect.github.com/rust-lang/regex/pull/1308">#1308</a>:
Avoid re-canonicalizing the entire interval set when pushing new class
ranges.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-lang/regex/commit/7b96fdc9d5fe6a0cb4efe30e6689b050493fc1e1"><code>7b96fdc</code></a>
1.12.4</li>
<li><a
href="https://github.com/rust-lang/regex/commit/7b89cf0534aa58ab8a4a6672e14a59b53f08eb2c"><code>7b89cf0</code></a>
deps: update to regex-syntax 0.8.11</li>
<li><a
href="https://github.com/rust-lang/regex/commit/140167995737fa11dfe11b8af8b9aa143b790b4e"><code>1401679</code></a>
regex-syntax-0.8.11</li>
<li><a
href="https://github.com/rust-lang/regex/commit/d7090000b3be51677d8e79c3b8bcc8a4d176bddc"><code>d709000</code></a>
changelog: 1.12.4</li>
<li><a
href="https://github.com/rust-lang/regex/commit/9825c741c8ac1e61e8f78cebc12205cd35e4767f"><code>9825c74</code></a>
syntax: avoid re-canonicalizing the entire IntervalSet on push (<a
href="https://redirect.github.com/rust-lang/regex/issues/1308">#1308</a>)</li>
<li><a
href="https://github.com/rust-lang/regex/commit/a7f2ff6dbc43f40994d7c3d1d968ba4ac92329e1"><code>a7f2ff6</code></a>
docs: clarify regex-lite word boundaries</li>
<li><a
href="https://github.com/rust-lang/regex/commit/2c7b17246da744bb2e1b911d3ddc1369fe3b472a"><code>2c7b172</code></a>
docs: clarify unsupported Anchored::Pattern searches</li>
<li><a
href="https://github.com/rust-lang/regex/commit/839d16bc65b60e2006d3599d20bfa6efc14049d8"><code>839d16b</code></a>
regex-syntax-0.8.10</li>
<li><a
href="https://github.com/rust-lang/regex/commit/c4865a0c8446a701e10b0fd987f19068f5dcc365"><code>c4865a0</code></a>
syntax: fix negation handling in HIR translation</li>
<li><a
href="https://github.com/rust-lang/regex/commit/d8761c00ed25c5899e3dcfb0f17e827b8e41530a"><code>d8761c0</code></a>
cargo: also include <code>benches</code></li>
<li>Additional commits viewable in <a
href="https://github.com/rust-lang/regex/compare/1.12.3...1.12.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=regex&package-manager=cargo&previous-version=1.12.3&new-version=1.12.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-14 20:55:00 -07:00
Maximilian Roos d31663e2fa test: drop env-scrub workaround, bump insta-cmd to 0.7 (#3076)
## What

Removes the `drop_empty_env_entries` snapshot redaction (and its unit
test) now that [insta-cmd 0.7](https://crates.io/crates/insta-cmd/0.7.0)
fixes the underlying problem at the source, and bumps the dev-dependency
`0.6` → `0.7`.

## Why

insta-cmd records a command's environment in the snapshot `info:` block
from `Command::get_envs()`, which yields `None` for a var removed via
`env_remove` and `Some("")` for one deliberately set to empty. Under 0.6
both collapsed to `KEY: ""`, so a removal was indistinguishable from a
real empty — and since `isolate_subprocess_env` removes whichever
`GIT_*` / `WORKTRUNK_*` keys happen to exist in the *parent*
environment, the set of `KEY: ""` markers depended on the host. That
churned regenerated snapshots between machines.

worktrunk worked around it by stripping every empty-valued entry from
the `env:` block. insta-cmd 0.7
([mitsuhiko/insta-cmd#20](https://github.com/mitsuhiko/insta-cmd/pull/20))
instead drops removals at the source and keeps `Some("")` as `KEY: ""`,
so the workaround is no longer needed — and removing it lets deliberate
empties be recorded truthfully.

## Refreshed snapshots

- `list_config_env_override_validation_failure` **gains**
`WORKTRUNK_WORKTREE_PATH: ""` — the var the test sets to empty to
trigger the "worktree-path cannot be empty" warning, now recorded
faithfully instead of dropped.
- Two `step_squash_show_prompt` snapshots **lose** stale
`GIT_DIR`/`GIT_EDITOR`/`GIT_WORK_TREE`/`NO_COLOR`/`SHELL`/`PSModulePath`
(etc.) `env_remove` markers — committed host-dependent noise that 0.7 no
longer records.

Deliberately excluded one incidental refresh:
`switch_nonexistent_with_fetch_time`'s `WORKTRUNK_TEST_EPOCH` is a
wall-clock-derived value (FETCH_HEAD mtime + 3h) that drifts every run —
unrelated to this fix (a non-empty dynamic value), harmless since the
`env:` block isn't compared.

`tests/CLAUDE.md` is updated to describe the 0.7 behavior in place of
the workaround.

## Testing

`cargo test --test integration` (1807 passed), `cargo clippy`, `cargo
fmt`, and `pre-commit` all pass locally. The `shell-integration-tests`
feature set was not run locally (covered by CI); it's unaffected — the
only other deliberate empty, `GIT_PREFIX=""` in `bare_repository.rs`,
goes through `.output()`, not a snapshot.

> _This was written by Claude Code on behalf of max_

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 13:44:00 -07:00
Maximilian Roos ef5fe96ac5 Release v0.58.0 (#3067)
Release v0.58.0.

Highlights since v0.57.0:

- **Table-form `pre-*` hooks run concurrently** (#3052) — completes the
cut-over announced in v0.37.0. Breaking for configs relying on serial
ordering; pipeline form (`[[pre-merge]]`) stays serial.
- **CI column shows the PR/MR number and review state** (#3041, #3044) —
`wt list --full` and the statusline show the open PR/MR reference
colored by CI status, with review state folded in.
- **Hooks/aliases share one lazy template model** (#3042, #3047) —
templates render per-step; `{{ vars.* }}` reads fresh.
- **`wt config state cache`** (#3027) — consolidates regenerable caches;
`state clear` now confirms first.
- Statusline rate-limit display, `/wt-switch-create` optional branch
name, plugin worktree-hook hardening, and a batch of config-deprecation
and snapshot-determinism fixes.

Full notes in `CHANGELOG.md`.

The release tag is pushed to the squash-merge commit after this lands;
`release.yaml` then publishes to crates.io, Homebrew, and winget.

> _This was written by Claude Code on behalf of max_
2026-06-13 14:18:20 -07:00
Maximilian Roos 74fb8de581 Release v0.57.0 (#3022)
v0.57.0.

`cargo semver-checks` reports breaking library API changes: the squash
refactor (#2983) renamed `Repository::commit_subjects` to
`commit_message_details`, and the new `GitError::UnbornDefaultBranch`
variant (#2990) shifts the discriminants of the exhaustive `GitError`
enum. Neither is intentional public API, but together they force a minor
bump pre-1.0.

## CHANGELOG

### Improved

- **`wt step diff --branch`**: `wt step diff` gained a `-b`/`--branch`
flag, mirroring `wt step commit`, so the diff can target another
worktree's branch without leaving the current one. The branch must have
a checked-out worktree.
([#2995](https://github.com/max-sixty/worktrunk/pull/2995))

- **Squash templates can use commit bodies**: The squash commit-message
template gains an experimental `{{ commit_details }}` variable — a list
of `{ subject, body }` objects for the commits being squashed —
alongside the existing `{{ commits }}` (now documented as the commit
subjects). Templates can incorporate full commit bodies, not just
subject lines.
([#2983](https://github.com/max-sixty/worktrunk/pull/2983), thanks
@florianilch)

- **Recommended Claude Code commit command drops the `CLAUDECODE=`
prefix**: Claude Code removed the nested-session check that rejected
`claude -p` launched from inside another session, so the workaround is
gone. The recommended `[commit.generation]` command shown by `wt config
create` no longer carries a leading `CLAUDECODE=`, and `wt` no longer
strips `CLAUDECODE` from the environment before running
commit-generation commands.
([#2979](https://github.com/max-sixty/worktrunk/pull/2979))

### Fixed

- **Nushell wrapper installs where Nushell actually autoloads it**: `wt
config shell install nu` wrote `wt.nu` to
`$nu.default-config-dir/vendor/autoload`, which Nushell never autoloads
— on Linux the wrapper was written but silently never loaded, so `wt`
was never wrapped (it happened to work on macOS/Windows by coincidence
of path layout). It now installs to `$nu.vendor-autoload-dirs | last`,
and install/uninstall clean up any worktrunk wrapper stranded at the old
location. ([#2992](https://github.com/max-sixty/worktrunk/pull/2992),
thanks @nnutter for reporting)

- **Claude Code hooks work for Fish shell users**: The plugin's hook
commands used `${CLAUDE_PLUGIN_ROOT}` brace syntax, which Fish doesn't
expand; they now use `$CLAUDE_PLUGIN_ROOT`, so the activity and
worktree-lifecycle hooks fire correctly under Fish.
([#2962](https://github.com/max-sixty/worktrunk/pull/2962), thanks @amw)

- **Pager no longer wedges the terminal on Ctrl-C (Windows)**:
Interrupting the `--help` pager (`less`) with Ctrl-C on Windows could
leave the terminal in a broken state; `less` now quits cleanly on
interrupt. ([#2969](https://github.com/max-sixty/worktrunk/pull/2969),
thanks @ofek for reporting)

- **Clearer error when the default branch has no commits**: In a freshly
initialized repo whose default branch is unborn,
`merge`/`rebase`/`squash`/`push` (and the diff report) failed with
`Default branch main does not exist locally` plus a misleading hint to
reset the cached value. They now report that the branch has no commits
yet, without the wrong cache-reset suggestion.
([#2990](https://github.com/max-sixty/worktrunk/pull/2990))

- **`diagnostic.md` uploads as a gist again**: The `-vv` diagnostic
report inlined raw NUL bytes from NUL-separated git output, so `gh gist
create` rejected it as a binary file. Control bytes in the subprocess
preview are now escaped.
([#2991](https://github.com/max-sixty/worktrunk/pull/2991))

- **`wt list` tolerates a missing index file**: A repo with no
`<gitdir>/index` (nothing ever staged) made the temp-index probe fail; a
missing index is now treated as an empty one, matching git's own
behavior. ([#2884](https://github.com/max-sixty/worktrunk/pull/2884))

- **Inline code renders in `--help` section headings**: Terminal
`--help` showed literal backticks in headings authored with inline code
(e.g. the `wt config state logs` heading `Command log
(`commands.jsonl`)`). Headings now reduce inline code to plain text
under the heading's uniform style. The `--stage`/`--dry-run` subsection
headings in `wt step commit`/`squash` were also renamed to sentence case
("Staging", "Dry run").
([#3003](https://github.com/max-sixty/worktrunk/pull/3003))

### Documentation

- **`wt switch` docs give forge PR/MR URLs equal billing with
`pr:`/`mr:`**: The switch docs now present the full forge-URL form
alongside the `pr:N` shortcut.
([#2970](https://github.com/max-sixty/worktrunk/pull/2970))

- **New FAQ entry on moving uncommitted changes to a new worktree**.
([#3002](https://github.com/max-sixty/worktrunk/pull/3002))

### Internal

- **Bare-repo prompt opt-out stored as a hint**:
`worktrunk.skip-bare-repo-prompt` moved under the `worktrunk.hints.`
namespace, so it now lists under `wt config state hints` and clears with
`wt config state clear` (previously a top-level key that escaped both).
Clean cutover: users who already opted out are re-prompted once on their
next `wt switch --create` in a dotted-name bare repo.
([#3001](https://github.com/max-sixty/worktrunk/pull/3001))

> _This was written by Claude Code on behalf of max_
2026-06-09 09:56:12 -07:00
dependabot[bot] f8dc0b676c chore: bump the patch group with 4 updates (#3013) 2026-06-08 00:05:46 -07:00
Maximilian Roos 67f5461b4c Release v0.56.0 (#2967)
v0.56.0.

`cargo semver-checks` reports a breaking library API change: the config-deprecation refactor (#2946) replaced the public `Deprecations` struct with a `Vec<DeprecationKind>` alias, removing the struct shape. Not intentional public API, but it forces a minor bump pre-1.0.

## CHANGELOG

### Improved

- **`wt list` JSON output includes `repo_url`**: Each item now carries `repo_url`, the repository's web URL derived from the primary remote (absent when there's no parseable forge remote). It's the local checkout's repo — distinct from `ci.repo_url`, which is the repo a PR/MR targets. ([#2941](https://github.com/max-sixty/worktrunk/pull/2941), thanks @bendrucker)

### Fixed

- **Bare-repo prompts**: Two UX fixes. `wt config create --project` run in a bare repo with no linked worktrees now explains the next step (`wt switch <branch>` first, then create from inside the worktree) instead of failing with a generic "no worktree found". And the bare-repo worktree-path prompt no longer fires for symbolic identifiers (`-`, `@`, `^`, `pr:`/`mr:`), where the example paths would be misleading — it waits for the next switch to a concrete branch name. ([#2951](https://github.com/max-sixty/worktrunk/pull/2951), thanks @ammachado)

- **Context gauge spacing in the Claude Code statusline**: The context-gauge moon emoji rendered flush against the percent (`🌕42%`). Most terminals draw the emoji double-width and bleed it into the next cell, so the moon collided with the digits; it now carries a trailing space (`🌕 42%`). ([#2944](https://github.com/max-sixty/worktrunk/pull/2944))

- **Console storm on Windows**: Detached background hook processes were created with `DETACHED_PROCESS`, which could flash a burst of console windows. They now use `CREATE_NO_WINDOW` and spawn fully hidden. ([#2959](https://github.com/max-sixty/worktrunk/pull/2959), thanks @nathanbabcock)

### Documentation

- **Codex commit-generation model bumped to `gpt-5.4-mini`**: The recommended `[commit.generation]` command for Codex — shown by `wt config create` and in the LLM-commits docs — now uses `gpt-5.4-mini` (was `gpt-5.1-codex-mini`). ([#2949](https://github.com/max-sixty/worktrunk/pull/2949))

### Internal

- **Config-deprecation layer refactor**: The deprecation detector now returns a `Vec<DeprecationKind>` instead of a struct of per-field flags, and the per-section config-table walks collapse into two combinators. Behavior-neutral — warning text and migration output are byte-for-byte unchanged. ([#2946](https://github.com/max-sixty/worktrunk/pull/2946))

> _This was written by Claude Code on behalf of max_
2026-06-02 13:35:52 -07:00
Maximilian Roos 459f4c0e88 Release v0.55.0 (#2942)
v0.55.0.

`cargo semver-checks` reports breaking library API changes (9 inherent methods removed from `Repository` / `ShellConfig` by the dead-code cut-overs in #2931 — `is_ancestor`, `same_commit`, `has_added_changes`, `trees_match`, `head_tree_matches_branch`, `has_merge_conflicts`, `has_merge_conflicts_by_tree`, `merge_integration_probe`, `is_posix`). None are intentional public API, but they force a minor bump pre-1.0.

Headline user-visible changes:
- `wt switch` accepts forge PR/MR URLs anywhere `pr:N` / `mr:N` works (#2898, thanks @thiagowfx for the request).
- Claude Code plugin keeps unmerged branches during worktree cleanup — the `WorktreeRemove` hook drops `-D` (#2940, thanks @jbeda for reporting).
- `wt list` and `wt step prune` degrade gracefully on unborn worktrees (#2937, thanks @nedtwigg for reporting).
- `-vv` startup pointer now names `diagnostic.md` (#2919).
- Doc-site and `--help` prose cleanup (#2922, #2925); internal cut-over of duplicated/dead code paths (#2931, #2932, #2934).

Full CHANGELOG entry in this PR.

> _This was written by Claude Code on behalf of max_
2026-05-29 22:39:35 -07:00