D034 - A restore skips unchanged files on its own record

Status: decided Date: 2026-09-26

After a store verifies (D031), the digest of the bytes sent is recorded in deployed.json, keyed by target and remote path. A restore skips a file only when its local digest matches the record and a directory listing still shows it on the target; a failed store forgets the record, and --all sends everything.

Why: re-sending an unchanged tree costs minutes per deploy. The target unwraps SELF containers on access, so a remote hash or size cannot be compared with what was sent. A listing names the file unchanged by the unwrap and costs one round trip per folder. Every error lands on re-sending.

Rejected: