Erase transient progress lines and coordinate shared grace period across embedders - #4864
Erase transient progress lines and coordinate shared grace period across embedders#4864sigurdm wants to merge 18 commits into
Conversation
…vent timer leaks, and improve encapsulation
…ptimize client wrapping
|
Here are side-by-side recordings comparing the baseline behavior with this PR. In every recording:
1. Cold Start:
|





\r\u001b[2K,log.eraseLine) on supported terminals inProgress.stopAndClear(with whitespace overwrite fallback for non-ANSI terminals).log.progress(..., transient: true)and use it during dependency resolution (summaryOnly: true), cached package downloads, and snapshot precompilation so progress output is erased upon completion.ProgressGracePeriodto debounce transient progress display (defaulting to 500ms), sharing the grace period across multiple operations and across Zone boundaries (accessible to embedding tools viawithOverrides(progressGracePeriod: ...)).SolveReportwhenquiet: true(e.g. during embeddeddart run).test/progress_test.dart.Companion Dart SDK CL: https://dart-review.googlesource.com/c/sdk/+/538280
cc @mit-mit