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

Function update_manifest_for_delete

atomic-repository/src/repository/vault.rs:634–658  ·  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

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

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