Dry-run: COUNTs each planned op's target rows (read-only) and emits ONE concise progress line
summarizing what the destructive batch will clear — a safety net that surfaces any surprising
target before ExecTeardownBatch runs. A per-count failure is folded into the summary
line; it never throws.
Dry-run: COUNTs each planned op's target rows (read-only) and emits ONE concise progress line summarizing what the destructive batch will clear — a safety net that surfaces any surprising target before ExecTeardownBatch runs. A per-count failure is folded into the summary line; it never throws.