syncWithRemote compared human snapshot IDs against the hashed
metadata/<key>/ directory names, which never match, so it deleted every
local snapshot record; the purge that followed then found nothing to
remove remotely. Reconcile via listAllRemoteSnapshotKeys and
RemoteSnapshotKey(id), matching CleanupLocalSnapshots, so a row still
backed by remote metadata is kept.
The purge tests only passed because their stubs used the human-ID layout
production never writes; they now write metadata under the hashed remote
key. New tests prove remotely-backed local rows survive the reconcile and
that a purge removes the local row and remote metadata together.
Model: opus-4-8