I appreciate the explicit boundary between detecting a changed file and preventing tampering. Since the digest and file are both in the same storage trust domain, a writer who can change both can bypass the check; a keyed MAC or signed manifest whose key is held separately would address a stronger threat model, while object versioning/retention could help with recovery. Are you considering a separate integrity boundary as a future iteration?
That distinction is well put: a periodic scan improves detection latency, but only relative to a trusted reference. Documenting the assumption is a sensible boundary for a learning project. If revisited, separating who can write objects, update the manifest, and access signing keys would make the stronger threat model concrete; versioning helps recovery but does not by itself authenticate the latest version.