MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / update_manifest_for_delete

Function update_manifest_for_delete

atomic-repository/src/repository/vault.rs:621–645  ·  view source on GitHub ↗

Update the manifest when a vault entry is deleted.

(manifest: &mut VaultManifest, path: &str, now: &str)

Source from the content-addressed store, hash-verified

619
620/// Update the manifest when a vault entry is deleted.
621fn update_manifest_for_delete(manifest: &mut VaultManifest, path: &str, now: &str) {
622 // Remove from type-specific indexes
623 manifest.memory.remove(path);
624 manifest.skills.remove(path);
625 manifest.goals.remove(path);
626 manifest.intents.remove(path);
627
628 // Decrement file count (floor at 0)
629 manifest.file_count = manifest.file_count.saturating_sub(1);
630
631 // We can't easily adjust total_bytes without knowing the old entry's size,
632 // so we leave it as-is. Use vault_recompute_manifest_totals() for accuracy.
633 // The merkle also changes on delete.
634 let prev_merkle = if manifest.merkle.is_empty() {
635 Merkle::ZERO
636 } else {
637 Merkle::from_base32(manifest.merkle.as_bytes()).unwrap_or(Merkle::ZERO)
638 };
639 // Hash path as the "delete event" to advance the merkle
640 let delete_hash = Hash::of(format!("delete:{}", path).as_bytes());
641 let new_merkle = prev_merkle.next(&delete_hash);
642 manifest.merkle = new_merkle.to_base32();
643
644 manifest.updated_at = now.to_string();
645}
646
647// ── Materialization helpers ─────────────────────────────────────────────
648

Callers 1

vault_deleteMethod · 0.85

Calls 5

removeMethod · 0.65
is_emptyMethod · 0.45
as_bytesMethod · 0.45
nextMethod · 0.45
to_base32Method · 0.45

Tested by

no test coverage detected