A toast bound to one long job — determinate or indeterminate progress, a live percentage in its accessible name, cancel while it runs, and terminal states that hold long enough to read with a retry on failure.
npx shadcn@latest add @zyeon/progress-toastZyeon UI limits how often it can be asked, and Progress Toast hasn't had its turn. Its source will show here once it has.