Date: Thu, 7 Aug 2025 12:25:06 -0400
Subject: [PATCH 22/37] Update rstest from 0.25 to 0.26 (#1099)
---
Cargo.lock | 9 ++++-----
Cargo.toml | 2 +-
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 25a01db..a44964a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -623,19 +623,18 @@ checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2"
[[package]]
name = "rstest"
-version = "0.25.0"
+version = "0.26.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fc39292f8613e913f7df8fa892b8944ceb47c247b78e1b1ae2f09e019be789d"
+checksum = "f5a3193c063baaa2a95a33f03035c8a72b83d97a54916055ba22d35ed3839d49"
dependencies = [
"rstest_macros",
- "rustc_version",
]
[[package]]
name = "rstest_macros"
-version = "0.25.0"
+version = "0.26.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f168d99749d307be9de54d23fd226628d99768225ef08f6ffb52e0182a27746"
+checksum = "9c845311f0ff7951c5506121a9ad75aec44d083c31583b2ea5a30bcb0b0abba0"
dependencies = [
"cfg-if",
"glob",
diff --git a/Cargo.toml b/Cargo.toml
index 8e9fb37..df1862e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -49,7 +49,7 @@ color-print = "0.3.4"
[dev-dependencies]
assert_cmd = "2.0.0"
-rstest = { version = "0.25.0", default-features = false }
+rstest = { version = "0.26.0", default-features = false }
rstest_reuse = "0.7.0"
tempfile = "=3.15.0"
From 261cf8846a0ee03ce072b7632010341a03a66e23 Mon Sep 17 00:00:00 2001
From: Azalea Colburn <62953415+azaleacolburn@users.noreply.github.com>
Date: Sun, 10 Aug 2025 00:56:52 -0700
Subject: [PATCH 23/37] --basedir query option (#1027)
---
contrib/completions/_zoxide | 1 +
contrib/completions/_zoxide.ps1 | 1 +
contrib/completions/zoxide.bash | 9 ++++-
contrib/completions/zoxide.elv | 1 +
contrib/completions/zoxide.fish | 1 +
contrib/completions/zoxide.nu | 1 +
contrib/completions/zoxide.ts | 10 ++++++
src/cmd/cmd.rs | 4 +++
src/cmd/query.rs | 3 +-
src/db/mod.rs | 4 +--
src/db/stream.rs | 59 +++++++++++++++++++++++----------
src/shell.rs | 2 +-
src/util.rs | 2 +-
13 files changed, 74 insertions(+), 24 deletions(-)
diff --git a/contrib/completions/_zoxide b/contrib/completions/_zoxide
index 33aaace..97e654f 100644
--- a/contrib/completions/_zoxide
+++ b/contrib/completions/_zoxide
@@ -120,6 +120,7 @@ _arguments "${_arguments_options[@]}" : \
(query)
_arguments "${_arguments_options[@]}" : \
'--exclude=[Exclude the current directory]:path:_files -/' \
+'--base-dir=[Only search within this directory]:path:_files -/' \
'-a[Show unavailable directories]' \
'--all[Show unavailable directories]' \
'(-l --list)-i[Use interactive selection]' \
diff --git a/contrib/completions/_zoxide.ps1 b/contrib/completions/_zoxide.ps1
index a26adda..bb47d3a 100644
--- a/contrib/completions/_zoxide.ps1
+++ b/contrib/completions/_zoxide.ps1
@@ -102,6 +102,7 @@ Register-ArgumentCompleter -Native -CommandName 'zoxide' -ScriptBlock {
}
'zoxide;query' {
[CompletionResult]::new('--exclude', '--exclude', [CompletionResultType]::ParameterName, 'Exclude the current directory')
+ [CompletionResult]::new('--base-dir', '--base-dir', [CompletionResultType]::ParameterName, 'Only search within this directory')
[CompletionResult]::new('-a', '-a', [CompletionResultType]::ParameterName, 'Show unavailable directories')
[CompletionResult]::new('--all', '--all', [CompletionResultType]::ParameterName, 'Show unavailable directories')
[CompletionResult]::new('-i', '-i', [CompletionResultType]::ParameterName, 'Use interactive selection')
diff --git a/contrib/completions/zoxide.bash b/contrib/completions/zoxide.bash
index 1c2ed84..82b174e 100644
--- a/contrib/completions/zoxide.bash
+++ b/contrib/completions/zoxide.bash
@@ -199,7 +199,7 @@ _zoxide() {
return 0
;;
zoxide__query)
- opts="-a -i -l -s -h -V --all --interactive --list --score --exclude --help --version [KEYWORDS]..."
+ opts="-a -i -l -s -h -V --all --interactive --list --score --exclude --base-dir --help --version [KEYWORDS]..."
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
@@ -212,6 +212,13 @@ _zoxide() {
fi
return 0
;;
+ --base-dir)
+ COMPREPLY=()
+ if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then
+ compopt -o plusdirs
+ fi
+ return 0
+ ;;
*)
COMPREPLY=()
;;
diff --git a/contrib/completions/zoxide.elv b/contrib/completions/zoxide.elv
index e4cb36b..93c57af 100644
--- a/contrib/completions/zoxide.elv
+++ b/contrib/completions/zoxide.elv
@@ -90,6 +90,7 @@ set edit:completion:arg-completer[zoxide] = {|@words|
}
&'zoxide;query'= {
cand --exclude 'Exclude the current directory'
+ cand --base-dir 'Only search within this directory'
cand -a 'Show unavailable directories'
cand --all 'Show unavailable directories'
cand -i 'Use interactive selection'
diff --git a/contrib/completions/zoxide.fish b/contrib/completions/zoxide.fish
index 85c3c49..3a0bfe7 100644
--- a/contrib/completions/zoxide.fish
+++ b/contrib/completions/zoxide.fish
@@ -62,6 +62,7 @@ complete -c zoxide -n "__fish_zoxide_using_subcommand init" -l no-cmd -d 'Preven
complete -c zoxide -n "__fish_zoxide_using_subcommand init" -s h -l help -d 'Print help'
complete -c zoxide -n "__fish_zoxide_using_subcommand init" -s V -l version -d 'Print version'
complete -c zoxide -n "__fish_zoxide_using_subcommand query" -l exclude -d 'Exclude the current directory' -r -f -a "(__fish_complete_directories)"
+complete -c zoxide -n "__fish_zoxide_using_subcommand query" -l base-dir -d 'Only search within this directory' -r -f -a "(__fish_complete_directories)"
complete -c zoxide -n "__fish_zoxide_using_subcommand query" -s a -l all -d 'Show unavailable directories'
complete -c zoxide -n "__fish_zoxide_using_subcommand query" -s i -l interactive -d 'Use interactive selection'
complete -c zoxide -n "__fish_zoxide_using_subcommand query" -s l -l list -d 'List all matching directories'
diff --git a/contrib/completions/zoxide.nu b/contrib/completions/zoxide.nu
index 34b3ac0..642908e 100644
--- a/contrib/completions/zoxide.nu
+++ b/contrib/completions/zoxide.nu
@@ -82,6 +82,7 @@ module completions {
--list(-l) # List all matching directories
--score(-s) # Print score with results
--exclude: path # Exclude the current directory
+ --base-dir: path # Only search within this directory
--help(-h) # Print help
--version(-V) # Print version
]
diff --git a/contrib/completions/zoxide.ts b/contrib/completions/zoxide.ts
index 9e593d0..1e0d404 100644
--- a/contrib/completions/zoxide.ts
+++ b/contrib/completions/zoxide.ts
@@ -214,6 +214,16 @@ const completion: Fig.Spec = {
template: "folders",
},
},
+ {
+ name: "--base-dir",
+ description: "Only search within this directory",
+ isRepeatable: true,
+ args: {
+ name: "base_dir",
+ isOptional: true,
+ template: "folders",
+ },
+ },
{
name: ["-a", "--all"],
description: "Show unavailable directories",
diff --git a/src/cmd/cmd.rs b/src/cmd/cmd.rs
index d25cda3..7359786 100644
--- a/src/cmd/cmd.rs
+++ b/src/cmd/cmd.rs
@@ -186,6 +186,10 @@ pub struct Query {
/// Exclude the current directory
#[clap(long, value_hint = ValueHint::DirPath, value_name = "path")]
pub exclude: Option,
+
+ /// Only search within this directory
+ #[clap(long, value_hint = ValueHint::DirPath, value_name = "path")]
+ pub base_dir: Option,
}
/// Remove a directory from the database
diff --git a/src/cmd/query.rs b/src/cmd/query.rs
index 362d80a..6539c2e 100644
--- a/src/cmd/query.rs
+++ b/src/cmd/query.rs
@@ -79,7 +79,8 @@ impl Query {
fn get_stream<'a>(&self, db: &'a mut Database, now: Epoch) -> Result> {
let mut options = StreamOptions::new(now)
.with_keywords(self.keywords.iter().map(|s| s.as_str()))
- .with_exclude(config::exclude_dirs()?);
+ .with_exclude(config::exclude_dirs()?)
+ .with_base_dir(self.base_dir.clone());
if !self.all {
let resolve_symlinks = config::resolve_symlinks();
options = options.with_exists(true).with_resolve_symlinks(resolve_symlinks);
diff --git a/src/db/mod.rs b/src/db/mod.rs
index a19efe9..d459f39 100644
--- a/src/db/mod.rs
+++ b/src/db/mod.rs
@@ -183,7 +183,7 @@ impl Database {
*self.borrow_dirty()
}
- pub fn dirs(&self) -> &[Dir] {
+ pub fn dirs(&self) -> &[Dir<'_>] {
self.borrow_dirs()
}
@@ -203,7 +203,7 @@ impl Database {
.context("could not serialize database")
}
- fn deserialize(bytes: &[u8]) -> Result> {
+ fn deserialize(bytes: &[u8]) -> Result>> {
// Assume a maximum size for the database. This prevents bincode from throwing
// strange errors when it encounters invalid data.
const MAX_SIZE: u64 = 32 << 20; // 32 MiB
diff --git a/src/db/stream.rs b/src/db/stream.rs
index 4af7d7a..4b06193 100644
--- a/src/db/stream.rs
+++ b/src/db/stream.rs
@@ -1,5 +1,6 @@
use std::iter::Rev;
use std::ops::Range;
+use std::path::Path;
use std::{fs, path};
use glob::Pattern;
@@ -20,7 +21,7 @@ impl<'a> Stream<'a> {
Stream { db, idxs, options }
}
- pub fn next(&mut self) -> Option<&Dir> {
+ pub fn next(&mut self) -> Option<&Dir<'_>> {
while let Some(idx) = self.idxs.next() {
let dir = &self.db.dirs()[idx];
@@ -28,11 +29,16 @@ impl<'a> Stream<'a> {
continue;
}
+ if !self.filter_by_base_dir(&dir.path) {
+ continue;
+ }
+
if !self.filter_by_exclude(&dir.path) {
self.db.swap_remove(idx);
continue;
}
+ // Exists queries are slow, this should always be checked last.
if !self.filter_by_exists(&dir.path) {
if dir.last_accessed < self.options.ttl {
self.db.swap_remove(idx);
@@ -47,6 +53,30 @@ impl<'a> Stream<'a> {
None
}
+ fn filter_by_base_dir(&self, path: &str) -> bool {
+ match &self.options.base_dir {
+ Some(base_dir) => Path::new(path).starts_with(base_dir),
+ None => true,
+ }
+ }
+
+ fn filter_by_exclude(&self, path: &str) -> bool {
+ !self.options.exclude.iter().any(|pattern| pattern.matches(path))
+ }
+
+ fn filter_by_exists(&self, path: &str) -> bool {
+ if !self.options.exists {
+ return true;
+ }
+
+ // The logic here is reversed - if we resolve symlinks when adding entries to
+ // the database, we should not return symlinks when querying back from
+ // the database.
+ let resolver =
+ if self.options.resolve_symlinks { fs::symlink_metadata } else { fs::metadata };
+ resolver(path).map(|metadata| metadata.is_dir()).unwrap_or_default()
+ }
+
fn filter_by_keywords(&self, path: &str) -> bool {
let (keywords_last, keywords) = match self.options.keywords.split_last() {
Some(split) => split,
@@ -74,23 +104,6 @@ impl<'a> Stream<'a> {
true
}
-
- fn filter_by_exclude(&self, path: &str) -> bool {
- !self.options.exclude.iter().any(|pattern| pattern.matches(path))
- }
-
- fn filter_by_exists(&self, path: &str) -> bool {
- if !self.options.exists {
- return true;
- }
-
- // The logic here is reversed - if we resolve symlinks when adding entries to
- // the database, we should not return symlinks when querying back from
- // the database.
- let resolver =
- if self.options.resolve_symlinks { fs::symlink_metadata } else { fs::metadata };
- resolver(path).map(|metadata| metadata.is_dir()).unwrap_or_default()
- }
}
pub struct StreamOptions {
@@ -112,6 +125,10 @@ pub struct StreamOptions {
/// Directories that do not exist and haven't been accessed since TTL will
/// be lazily removed.
ttl: Epoch,
+
+ /// Only return directories within this parent directory
+ /// Does not check if the path exists
+ base_dir: Option,
}
impl StreamOptions {
@@ -123,6 +140,7 @@ impl StreamOptions {
exists: false,
resolve_symlinks: false,
ttl: now.saturating_sub(3 * MONTH),
+ base_dir: None,
}
}
@@ -149,6 +167,11 @@ impl StreamOptions {
self.resolve_symlinks = resolve_symlinks;
self
}
+
+ pub fn with_base_dir(mut self, base_dir: Option) -> Self {
+ self.base_dir = base_dir;
+ self
+ }
}
#[cfg(test)]
diff --git a/src/shell.rs b/src/shell.rs
index e77ddd1..37fe1a2 100644
--- a/src/shell.rs
+++ b/src/shell.rs
@@ -97,7 +97,7 @@ mod tests {
#[apply(opts)]
fn elvish_elvish(cmd: Option<&str>, hook: InitHook, echo: bool, resolve_symlinks: bool) {
let opts = Opts { cmd, hook, echo, resolve_symlinks };
- let mut source = String::default();
+ let mut source = String::new();
// Filter out lines using edit:*, since those functions are only available in
// the interactive editor.
diff --git a/src/util.rs b/src/util.rs
index f74acaf..996f61d 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -135,7 +135,7 @@ impl FzfChild {
mem::drop(self.0.stdin.take());
let mut stdout = self.0.stdout.take().unwrap();
- let mut output = String::default();
+ let mut output = String::new();
stdout.read_to_string(&mut output).context("failed to read from fzf")?;
let status = self.0.wait().context("wait failed on fzf")?;
From 4549438ffabd15eade76d076b6dc05627077e6e5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 12 Aug 2025 08:12:29 +0530
Subject: [PATCH 24/37] Bump actions/checkout from 4 to 5 (#1101)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
.github/workflows/ci.yml | 2 +-
.github/workflows/release.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index c0dba6f..c66e6ba 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -21,7 +21,7 @@ jobs:
matrix:
os: [ubuntu-latest]
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
with:
fetch-depth: 0
- uses: actions-rs/toolchain@v1
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 2e7333b..fff4d17 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -42,7 +42,7 @@ jobs:
target: aarch64-pc-windows-msvc
steps:
- name: Checkout repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Get version
From c070535968e04b1b34ff4d025162f5f68fdd7d69 Mon Sep 17 00:00:00 2001
From: Bryan Corey
Date: Fri, 15 Aug 2025 21:27:04 -0700
Subject: [PATCH 25/37] Add link to raycast-zoxide integration (#1050)
---
README.md | 3 +++
1 file changed, 3 insertions(+)
diff --git a/README.md b/README.md
index ad42889..87bb2ca 100644
--- a/README.md
+++ b/README.md
@@ -474,6 +474,7 @@ Environment variables[^2] can be used for configuration. They must be set before
| [lf] | File manager | See the [wiki][lf-wiki] |
| [nnn] | File manager | [nnn-autojump] |
| [ranger] | File manager | [ranger-zoxide] |
+| [raycast] | macOS launcher | [raycast-zoxide] |
| [rfm] | File manager | Natively supported |
| [sesh] | `tmux` session manager | Natively supported |
| [telescope.nvim] | Fuzzy finder for Neovim | [telescope-zoxide] |
@@ -545,6 +546,8 @@ Environment variables[^2] can be used for configuration. They must be set before
[ranger-zoxide]: https://github.com/jchook/ranger-zoxide
[ranger]: https://github.com/ranger/ranger
[raspbian packages]: https://archive.raspbian.org/raspbian/pool/main/r/rust-zoxide/
+[raycast]: https://www.raycast.com/
+[raycast-zoxide]: https://www.raycast.com/mrpunkin/raycast-zoxide
[releases]: https://github.com/ajeetdsouza/zoxide/releases
[rfm]: https://github.com/dsxmachina/rfm
[scoop]: https://github.com/ScoopInstaller/Main/tree/master/bucket/zoxide.json
From 2299f2834bcc6e1c07a0118460a638577a890d89 Mon Sep 17 00:00:00 2001
From: Ben Beasley
Date: Fri, 22 Aug 2025 16:57:21 -0400
Subject: [PATCH 26/37] Unpin and update tempfile (#1105)
---
.github/workflows/release.yml | 2 +-
Cargo.lock | 74 +++++++++++++++++++++--------------
Cargo.toml | 2 +-
3 files changed, 47 insertions(+), 31 deletions(-)
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index fff4d17..5e05df1 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -67,7 +67,7 @@ jobs:
uses: actions-rs/cargo@v1
with:
command: install
- args: --color=always --git=https://github.com/cross-rs/cross.git --locked --rev=02bf930e0cb0c6f1beffece0788f3932ecb2c7eb --verbose cross
+ args: --color=always --git=https://github.com/cross-rs/cross.git --locked --rev=e281947ca900da425e4ecea7483cfde646c8a1ea --verbose cross
- name: Build binary
uses: actions-rs/cargo@v1
with:
diff --git a/Cargo.lock b/Cargo.lock
index a44964a..732e696 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -335,7 +335,19 @@ checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
dependencies = [
"cfg-if",
"libc",
- "wasi",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "r-efi",
+ "wasi 0.14.2+wasi-0.2.4",
]
[[package]]
@@ -384,12 +396,6 @@ dependencies = [
"libc",
]
-[[package]]
-name = "linux-raw-sys"
-version = "0.4.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
-
[[package]]
name = "linux-raw-sys"
version = "0.9.4"
@@ -545,6 +551,12 @@ dependencies = [
"proc-macro2",
]
+[[package]]
+name = "r-efi"
+version = "5.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
+
[[package]]
name = "rand"
version = "0.8.5"
@@ -572,7 +584,7 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
- "getrandom",
+ "getrandom 0.2.16",
]
[[package]]
@@ -581,7 +593,7 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b"
dependencies = [
- "getrandom",
+ "getrandom 0.2.16",
"libredox",
"thiserror",
]
@@ -673,19 +685,6 @@ dependencies = [
"semver",
]
-[[package]]
-name = "rustix"
-version = "0.38.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"
-dependencies = [
- "bitflags",
- "errno",
- "libc",
- "linux-raw-sys 0.4.15",
- "windows-sys",
-]
-
[[package]]
name = "rustix"
version = "1.0.7"
@@ -695,7 +694,7 @@ dependencies = [
"bitflags",
"errno",
"libc",
- "linux-raw-sys 0.9.4",
+ "linux-raw-sys",
"windows-sys",
]
@@ -768,15 +767,14 @@ dependencies = [
[[package]]
name = "tempfile"
-version = "3.15.0"
+version = "3.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704"
+checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1"
dependencies = [
- "cfg-if",
"fastrand",
- "getrandom",
+ "getrandom 0.3.3",
"once_cell",
- "rustix 0.38.44",
+ "rustix",
"windows-sys",
]
@@ -839,6 +837,15 @@ version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+[[package]]
+name = "wasi"
+version = "0.14.2+wasi-0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
+dependencies = [
+ "wit-bindgen-rt",
+]
+
[[package]]
name = "which"
version = "7.0.3"
@@ -847,7 +854,7 @@ checksum = "24d643ce3fd3e5b54854602a080f34fb10ab75e0b813ee32d00ca2b44fa74762"
dependencies = [
"either",
"env_home",
- "rustix 1.0.7",
+ "rustix",
"winsafe",
]
@@ -939,6 +946,15 @@ version = "0.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904"
+[[package]]
+name = "wit-bindgen-rt"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
+dependencies = [
+ "bitflags",
+]
+
[[package]]
name = "yansi"
version = "1.0.1"
diff --git a/Cargo.toml b/Cargo.toml
index df1862e..58b0d57 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -51,7 +51,7 @@ color-print = "0.3.4"
assert_cmd = "2.0.0"
rstest = { version = "0.26.0", default-features = false }
rstest_reuse = "0.7.0"
-tempfile = "=3.15.0"
+tempfile = "3.15.0"
[features]
default = []
From 76125d9bd349c699bd3b47dcbe8f8b38909bccd8 Mon Sep 17 00:00:00 2001
From: Ajeet D'Souza <98ajeet@gmail.com>
Date: Thu, 18 Sep 2025 21:11:43 +0530
Subject: [PATCH 27/37] Update sponsorship
---
README.md | 11 ++++-------
contrib/warp-packs-green.png | Bin 350251 -> 0 bytes
contrib/warp.png | Bin 1512743 -> 0 bytes
3 files changed, 4 insertions(+), 7 deletions(-)
delete mode 100644 contrib/warp-packs-green.png
delete mode 100644 contrib/warp.png
diff --git a/README.md b/README.md
index 87bb2ca..9026837 100644
--- a/README.md
+++ b/README.md
@@ -11,9 +11,10 @@
Special thanks to:
-
-Warp, the intelligent terminal
-Available for MacOS, Linux, and Windows
+
+
+Warp, built for coding with multiple AI agents.
+Available for macOS, Linux, and Windows.
Visit
warp.dev
@@ -62,10 +63,6 @@ z foo # show interactive completions (zoxide v0.8.0+, bash 4.4+/fis
Read more about the matching algorithm [here][algorithm-matching].
-
-
-
-
## Installation
zoxide can be installed in 4 easy steps:
diff --git a/contrib/warp-packs-green.png b/contrib/warp-packs-green.png
deleted file mode 100644
index f10f0e46ac0c6d2808c06a1530289084849e59fa..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 350251
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