Reports progress for a batch of N items as an in-place bar (brew/docker/
npm style) when stderr is a terminal, or periodic plain-text lines when
it isn’t (piped to a file, CI log), so a long run never looks hung in a
log file, without per-item spam either way. silent suppresses the bar
and periodic lines entirely, but NOT error output (see println) or the
caller’s own decision about whether to print a final summary.