report
Reports progress within this scope's window.
fraction is a value in 0..1, or null for indeterminate. This method never throws; an out-of-range fraction is clamped. Prefer coarse units such as per page or per percent rather than per byte, since each distinct report allocates and, when observed, wakes collectors.
Phase labels are sticky. A non-null phase updates this scope's label, and later reports retain it, so a stage's label does not need re-passing on every fraction tick. Phase updates should come from the job's own flow.
Reports done of total completed units, or indeterminate when total <= 0.