update_object records only changed fields as audit diffs and skips the
audit entry for no-op updates; delete_object records a Deleted entry.
Both operations are atomic on the caller's connection.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>