From e09b2f35a5b0c869caa823df4f9a3332a317c127 Mon Sep 17 00:00:00 2001 From: VARUN3WARE Date: Wed, 16 Sep 2026 04:55:39 +0530 Subject: [PATCH 1/2] docs(snapshot): scrub "not shipped here" from the export how-to The integrity intro contradicted the same page's shipped verify section. Point the intro at hflow verify snapshot / verify_dataset_snapshot. --- docs/how-to/export-dataset-snapshot.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/how-to/export-dataset-snapshot.md b/docs/how-to/export-dataset-snapshot.md index 68b0e38b..c15cf434 100644 --- a/docs/how-to/export-dataset-snapshot.md +++ b/docs/how-to/export-dataset-snapshot.md @@ -63,9 +63,9 @@ media paths are relative to the export directory. The JSON marker is written last and the completed directory is activated atomically. Under the same format version `1`, an additive `integrity` block records -delivery integrity so a later verifier (not shipped here) can tell whether the -published bytes are still intact. The original `tables` map is unchanged for -external readers; receipts live only under `integrity`: +delivery integrity so `hflow verify snapshot` (or `verify_dataset_snapshot`) +can tell whether the published bytes are still intact. The original `tables` +map is unchanged for external readers; receipts live only under `integrity`: | Field | Meaning | | --- | --- | From f55ea17d66f626228f08f7cbed7627a183789f9c Mon Sep 17 00:00:00 2001 From: VARUN3WARE Date: Wed, 16 Sep 2026 04:55:39 +0530 Subject: [PATCH 2/2] docs(snapshot): point integrity content_id docstring at the verifier _build_snapshot_integrity_marker_fields still said "without a verifier product yet" after verify_dataset_snapshot shipped. --- src/hflow/snapshot.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/hflow/snapshot.py b/src/hflow/snapshot.py index d005408e..e05716d4 100644 --- a/src/hflow/snapshot.py +++ b/src/hflow/snapshot.py @@ -248,10 +248,10 @@ def _build_snapshot_integrity_marker_fields( Required Parquet tables and every regular file under ``assets/`` (copy mode) get ``path`` / ``size_bytes`` / ``sha256``. ``content_id`` digests that - normalized inventory so a deleted member is detectable without a verifier - product yet. References mode leaves ``assets`` empty: remote media are not - fetched for hashing. Copy mode re-reads each copied asset once after the - copy to compute its hash. + normalized inventory so ``verify_dataset_snapshot`` can detect a deleted + member even when every remaining file still matches. References mode leaves + ``assets`` empty: remote media are not fetched for hashing. Copy mode + re-reads each copied asset once after the copy to compute its hash. """ tables: dict[str, FileIntegrityRecord] = {} for table_name, file_name in _REQUIRED_TABLE_FILES.items():