diff --git a/crates/radicle-fetch/src/transport/ls_refs.rs b/crates/radicle-fetch/src/transport/ls_refs.rs index c088eb87..16c33fc9 100644 --- a/crates/radicle-fetch/src/transport/ls_refs.rs +++ b/crates/radicle-fetch/src/transport/ls_refs.rs @@ -67,5 +67,19 @@ where false, /* trace packetlines */ )?; + // Even though we sent `ref-prefix`, listed refs must still be + // filtered, since `ref-prefix` is just an optimization hint. + // See . + let refs = refs + .into_iter() + .filter(|r| { + let (refname, _, _) = r.unpack(); + config + .prefixes + .iter() + .any(|prefix| refname.starts_with(prefix)) + }) + .collect(); + Ok(refs) }