Phase 6c fix: hide companion tags from FUSE #77

Merged
osobh merged 1 commits from phase-6c-fuse-hide-companion-tags into main 2026-07-14 19:32:36 +00:00
Showing only changes of commit cf8acadbc1 - Show all commits
+19
View File
@@ -447,6 +447,25 @@ impl Filesystem for ClawFuse {
Some(s) => s,
None => continue,
};
// Only expose tags whose 32-byte value is a real
// blob-id (manifest present). Companion tags like
// `<name>.fingerprint` hold a fingerprint hash
// with no backing blob — reading them would just
// error, so hide them from the listing.
let value = match entry.decode_value() {
Ok(v) => v,
Err(_) => continue,
};
let blob_id = BlobId::from_bytes(value);
let exists = self
.runtime
.block_on(self.store.load_manifest(&blob_id))
.ok()
.flatten()
.is_some();
if !exists {
continue;
}
let ino = self.alloc_tag_ino(&sanitized, &entry.key);
entries.push((ino, FileType::RegularFile, sanitized));
}