stamp() replaces commit_keyed() for
snapshot creation. commit_keyed() is deprecated with a
lifecycle warning.
diff() method for keyed data frames: cell-level
comparison using key columns to align rows. Reports added, removed, and
modified rows with per-column change detail.
watch() / unwatch(): Mark keyed data
frames as “watched” so dplyr verbs auto-stamp before executing. Turns
drift detection from a manual ceremony into an automatic safety
net.
check_drift() now returns cell-level reports. When
both the snapshot and current data are keyed with the same key columns,
the drift report includes a full keyed_diff with per-column
change detail. Falls back to structural comparison (row count, columns)
when keys differ or are lost.
stamp() gains a .silent parameter for
suppressing cli output during auto-stamping.
list_snapshots() gains a size_mb column
showing memory usage per snapshot.
compare_structure(), compare_keys():
structural comparison helpers.
commit_keyed() to stamp(). The old
name is soft-deprecated.Snapshot cache now stores full data frames (not just hashes), enabling cell-level drift comparison without re-reading source data.
Cache reduced from 100 to 20 entries and adds a 100 MB soft memory cap. Eviction remains LRU-based but now considers both count and memory.
All dplyr methods (filter, mutate,
select, arrange, rename,
summarise, slice, distinct,
group_by, ungroup) now propagate snapshot
references and watched state through transformations.
unkey()
to proceed. This prevents silent data corruption.find_duplicates() to work with keyed data that
has duplicateskey() / unkey(): Define and remove keys
from data frameshas_key() / get_key_cols() /
key_is_valid(): Query key statuslock_unique(): Verify column uniquenesslock_no_na(): Check for missing valueslock_complete(): Ensure expected values are
presentlock_coverage(): Validate reference coveragelock_nrow(): Check row count boundsdiagnose_join(): Analyze join cardinality before
executingadd_id() / remove_id(): Add/remove stable
UUIDshas_id() / get_id(): Query ID statusextend_id(): Fill missing IDs after bindingmake_id(): Create composite IDs from columnsbind_id(): Combine data with ID handlingcheck_id() / check_id_disjoint(): Validate
ID integritycompare_ids(): Detect lost/gained rowscommit_keyed(): Commit reference snapshotcheck_drift(): Detect changes from snapshotlist_snapshots() / clear_snapshot() /
clear_all_snapshots(): Manage snapshotskey_status(): Quick status summarysummary.keyed_df(): Detailed summary methodcompare_structure(): Compare schema between data
framescompare_keys(): Compare key values between
datasetsfind_duplicates(): Locate duplicate key values