NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1213 most downloaded on crates.io
A dashboard for visualizing progress of asynchronous and possibly blocking tasks
Last release 7 days ago
01 Oct 2026
Release timing varies
gaps range from 2 weeks to 9 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
103 releases · first in 2020
One column per quarter.
Fix rand method deprecations by switching to their new names
actions-rs actions (236faaf)render::tui test on Windows, as it blocks forever (19025eb)progress-tree" (a6d1e5c)rand method deprecations by switching to their new names (865cc64)rand so they build again (5f0cc9f)bump actions/checkout in the github-actions group Bumps the github-actions group with 1 update: actions/checkout .
bump actions/checkout in the github-actions group
Bumps the github-actions group with 1 update: actions/checkout.
Updates actions/checkout from 5 to 6
updated-dependencies:
bump actions/checkout in the github-actions group
Bumps the github-actions group with 1 update: actions/checkout.
Updates actions/checkout from 4 to 5
updated-dependencies:
ratatui to v0.30Clippy helped 1 time to make code idiomatic.
ratatui to v0.30 (b6ea951)Don't describe progress-tree-log as a default feature Since it is no longer a default feature as of version 30.0.0 ( #39 ).
progress-tree-log as a default featureprogress-tree-log as a default feature
Since it is no longer a default feature as of version 30.0.0 (#39).<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
171a83d)0f261de)progress-tree-log as a default feature in readme (901359a)cf70e4a)progress-tree-log as a default feature (b1e26fe)
</details>Breaking change : the default feature progress-tree-log was removed. Those in need of progress-by-logging will have to add the feature themselves.
Breaking change: the default feature progress-tree-log was removed. Those in need of
progress-by-logging will have to add the feature themselves.
Cargo.toml, as well as a badge URL inGitoxideLabs/prodash, since the repoSECURITY.md file with the same wording as in gitoxidecargo-smart-release, with a hyperlink to draft a prodash bump actions/checkout in the github-actions group
Bumps the github-actions group with 1 update: actions/checkout.
Updates actions/checkout from 1 to 4
updated-dependencies:
contents: read permissions in CI workflow (0ad0fa2)3 commits contributed to the release.
Update bytesize from v1 to v2.
Update bytesize from v1 to v2.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
switch from humantime to jiff Since prodash switched over to Jiff, Jiff has grown support for the "friendly" duration format. It is meant to be a repl
humantime to jiffhumantime formatting of durations.Clippy helped 1 time to make code idiomatic.
<csr-id-88d33994876c7b2454cb1d827ebb2933bdecddd2/> <csr-id-373b6b1d0a95cff3085bda46ab629728d4fd6e43/>
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 1 time to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
update ratatui to 0.26.0 Requires an update to tui-react / crosstermion to work
switch from time to jiff
This swaps out time in favor of jiff for getting and formatting the
local time.
Note that this does add the %Z to the format string, which will write
out time zone abbreviations like EDT along with the local datetime
itself. The time crate doesn't support this, but jiff's tzdb
integration let's it do it.
ratatui to v0.26time to jiff (aab0986)ratatui to v0.26 (f3c3122)tui-react and crosstermion (0cca41f)<csr-id-5f066f26e347d80edd3cc9480d362b39ce762bd6/> <csr-id-aab09862ce8ff64d3c9bafd099e81df89c4c1670/>
ratatui to v0.26<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
4583a59)a5dab6e)87f66fb)time to jiff (aab0986)10800f3)ratatui to v0.26 (f3c3122)73bce79)tui-react and crosstermion (0cca41f)5f066f2)
</details>upgrade ratatui and crosstermion to latest versions.
ratatui and crosstermion to latest versions.ratatui and crosstermion to latest versions. (18686db)<csr-id-18686dbd32e6920ab5d7271c32481f7f41eae4de/>
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Change duration formatting to be more human readable. Note that this changes duration output from something like 69d10h40m to 69d 10h 40m .
69d10h40m69d 10h 40m.All termion-related features are now removed and obsolete.
After the most recent update, certion event-related features in crosstermion
stopped working in the context of the GUI, so it's probably best to let it go.
By now, crosstermion is also very much a more portable replacement.
Clippy helped 1 time to make code idiomatic.
termion-related features are now removed and obsolete. (b1fd37d)crossterm v0.27. (34397f1)This release relaxes trait-bounds of Count , Progress and NestedProgress to allow ?Sized as well.
This release relaxes trait-bounds of Count, Progress and NestedProgress to allow ?Sized as well.
This release relaxes trait-bounds of Count, Progress and NestedProgress to allow ?Sized as well.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Add missing forwardings for various methods. Not having these could lead to incorrect thoughput display.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
add BoxedProgress type that implements Progress. This makes working with boxed progress even more flexible.
BoxedProgress type that implements Progress.
This makes working with boxed progress even more flexible.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
add progress::AtomicStep to allow referring to it. Previously, only StepShared was available, which implies an Arc.
progress::AtomicStep to allow referring to it.
Previously, only StepShared was available, which implies an Arc.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
This release is all about making dyn possible both for nested progress, as well as for 'simple' one (previously known as RawProgress). Switching to th
This release is all about making dyn possible both for nested progress, as well as for 'simple' one (previously known as RawProgress).
Switching to this release naturally makes it possible for users of Progress to also use dyn Progress, as this trait is now object safe (formerly RawProgress).
If there are compile errors, the code now needs NestedProgress, instead of Progress, and possibly the import of the Count trait.
Finally, it's recommended to review all usages of Progress as they can possibly be replaced with Count which provides the guarantee that only counting happens,
and no change of the progress information itself.
Progress into various super-traits to allow most of them to be dyn-safe.
Progress is now NestedProgress, RawProgress is now Progress, and there is
a new Count trait for solely counting things.Progress::counter() is now mandatory.
This should simplify downstream code and we just accept that we are dealing
with a threaded world.
This also comes with performance improvements as increments are now 250% faster.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
6b94f28)5e21df7)Progress::counter() is now mandatory. (6c60835)e1e282a)5e76abf)c1590e4)Progress into various super-traits to allow most of them to be dyn-safe. (6aba6e3)9d03124)54094b6)
</details>Add new trait DynProgress & type BoxedDynProgress
<csr-id-05741765491984487beea7326eff9863b669ab51/>
DynProgress & type BoxedDynProgress<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
log progress now supports a shared counter, just like the tree-item implementation
log progress now supports a shared counter, just like the tree-item implementation<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Introduce the object-safe RawProgress trait. It's automatically implemented for Progress and allows for more flexible use of progress particularly in
<csr-id-8941f4b5b9c0d00dfd7b82c756b128982f163a06/> Introduce the object-safe RawProgress trait.
It's automatically implemented for Progress and allows for more flexible use
of progress particularly in leaf nodes. This is useful if a function needs to take
multiple types of progress as it is called from different places in the same function.
Without dyn-traits, it's not possible to make such call.
Sync.
That way it's possible to share the RawProgress object across threads and emit messages,
much like a logging system that's more integrated with rendering.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
4 commits contributed to the release.
<csr-id-fe5d01736179271f6b7bf20367f5d0e2bb616c4a/>
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 1 time to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
line renderer now properly detects changes. Previously change-detection was implemented based on the assumption that the progress tree is copied entir
<csr-id-7966f79cc7009acb33761cee70398b05b0006cc1/> line renderer now properly detects changes. Previously change-detection was implemented based on the assumption that the progress tree is copied entirely. Now, however, the interesting values are shared.
The change-detection was adjusted to keep the state's hash of the most recent drawing, instead of doing everything in line, which saves time hashing as well.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
A maintenance release without user-facing changes.
A maintenance release without user-facing changes.
Most notably, parking_lot was upgraded to the latest version.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
improve performance of progress::tree operations by more than 50%. This was done by implementing shared state in a simple Mutex protected hashmap whic
<csr-id-6f966b4f859f1b02775dcb3461bacf46b46ab707/> improve performance of progress::tree operations by more than 50%.
This was done by implementing shared state in a simple Mutex protected hashmap
which for typical programs with less contention is faster than using the dashmap
crate.
However, for those who know they need it, the previous implementation is still available
in with the progress-tree-hp-hashmap feature toggle.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Implement Hash for Task to avoid redrawing if nothing changes with the Line renderer. That way, if everything stops due to a user prompt, the user's i
Hash for Task to avoid redrawing if nothing changes with the Line renderer.
That way, if everything stops due to a user prompt, the user's input won't be clobbered
continnuously.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
progress::Key now supports 6 levels of hierarchy instead of 4. That way it's less likely that surprises occour of more than necessary levels are added
progress::Key now supports 6 levels of hierarchy instead of 4.
That way it's less likely that surprises occour of more than necessary
levels are added.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
remove Tree and TreeOptions in favor of tree::Root and tree::Options. Previously it was confusing what a tree Root actually is due to the rename, and
<csr-id-46aeffd13cda49146c8a33e93c8c9b0fbcb15c8b/>
Tree and TreeOptions in favor of tree::Root and tree::root::Options.
Previously it was confusing what a tree Root actually is due to the
rename, and ambiguity isn't what we would want here.From<tree::root::Options> for tree::Root, tree::root::Options::create() returns tree::Root instead of Arc.
That way we won't be forced to produce an Arc if it's not needed.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
8b78fe9)46aeffd)6e90cb9)From<tree::root::Options> for tree::Root, tree::root::Options::create() returns tree::Root instead of Arc. (edab373)Tree and TreeOptions in favor of tree::Root and tree::root::Options. (53cb09d)
</details>identify each progress item with Id using add_child_with_id(). An Id is four bytes like b"TREE" that are stable and identify progress items (as create
<csr-id-c332a6f266a6ae0cacf19cb523e551bb63c1e7ea/> identify each progress item with Id using add_child_with_id().
An Id is four bytes like b"TREE" that are stable and
identify progress items (as created by add_child(…) within
a function call.
Callers may use this knowledge to pick specific progress items for consumption, instead of trying to rely on identifying tasks by name which may change.
The identifier can also be queried with Progress::id(), even
though it could be prodash::progress::UNKNOWN if the progress
item wasn't created with add_child_with_id().
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
impl Progress for &mut T: where T: Progress. This makes it possible to hand borrowed progress implementations to functions that need progress reportin
impl Progress for &mut T: where T: Progress.
This makes it possible to hand borrowed progress implementations to
functions that need progress reporting, making the usage of progress
easier.<csr-id-300181bdd4b2ef1822dddd1fe814d7e3e5b26779/> remove Progress: 'static requirement.
This requirement can be added where used and where needed, and
originally snuck in because it was easier and Progress implementations
typically are 'static as well.
However, that requirement made it impossible to implement Progoress
for &mut T where T: Progress.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Add Progress::set_max() to set the highgest expected progress value.
Progress::set_max() to set the highgest expected progress value.init.
It's possible to re-initialize the progress, and when that's done
it would detach the counter from previous instances that might have
been observed by callers to counter(), which is surprising.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
implement Progress::counter() for all utility types. This was forgotten previously as there was a default implementation right from the start.
Progress::counter() for all utility types.
This was forgotten previously as there was a default implementation
right from the start.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Progress::counter() returns a shared step counter. This is useful if multiple threads want to access the same progress, without the need for provide e
Progress::counter() returns a shared step counter.
This is useful if multiple threads want to access the same progress, without the need
for provide each their own progress and aggregating the result.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 1 time to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Allow builds to succeed on Windows by not registering SIGWINCH signal. Without said signal, the render line will not automatically resize anymore, whi
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
line renderer adjusts when resizing the terminal.
<csr-id-a3b26782dc074c469b5fc480595d2ac9ef8bc9d0/>
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
line renderer will clear previous lines if progress is lost Previously it would just exit its main loop and leave lines on screen.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Improve render-log performance greatly. Previously it would check the current time each time somebody wants to log on any logger, greatly reducing per
<csr-id-cba841c828142c0dd028dd9413c31f509f2bbb1b/> Improve render-log performance greatly. Previously it would check the current time each time somebody wants to log on any logger, greatly reducing performance as it would block on the mutex rust-std uses internally.
Now we use a single thread to provide information about whether or not we may log, whose lifetime is bound to all of the log instances it governs.
<csr-id-b6d5245344bde92672cd98aecacb5d94ecca4e19/> Allow rendererers to respond to dropped progress roots Previously it needed extra effort to communicate that a the computation was done and the renderer should stop rendering progress.
Now they only obtain a weak progress instance so it can drop if the computation is done, terminating it naturally and in time.
Note that in case of the TUI, it would still be needed to respond to the GUI having shut down due to user request.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Upgrade dashmap to 5.0.1 (with security fix) (`e4f2ab8`)
<csr-id-e4f2ab842b34f4a4fe9b2f4c34b664a2e3dba200/>
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Downgrade to dashmap 4.0 While waiting for unoundness to be resolved.
<csr-id-a1f8aa650d1a1d2ac53025e29c71782b1cab58c5/> Downgrade to dashmap 4.0 While waiting for unoundness to be resolved.
See the issue for details: https://github.com/xacrimon/dashmap/issues/167
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
3 commits contributed to the release.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Add MessageLevel parameter to Progress::show_throughput_with(…, level) This allows to use message level for highlighting of certain throughputs and re
MessageLevel parameter to Progress::show_throughput_with(…, level)
This allows to use message level for highlighting of certain
throughputs and results.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Progress::init(None, None) now resets the progress entirely
Progress::init(None, None) now resets the progress entirely<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
reset the shared value on init to avoid keeping the previously set value.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
correct signature of new 'running()' method
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Setting the progress value is now 9x faster This is accomplished at the cost of not autoamtically setting the progress to 'running' anymore when the p
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
6 commits contributed to the release over the course of 47 calendar days.
<csr-id-e6f53d59ef1aef027a2aad5b164535c6ca0d620b/>
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 1 time to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Use time version 0.3 when the local-time feature is enabled
time version 0.3 when the local-time feature is enabledlocaltime to local-timelocal-time feature is not the default anymore, enable it using the RUSTFLAGS="--cfg unsound_local_offset" environment when building the binary.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
crosstermion is optional for some renderers (again)
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
4 commits contributed to the release over the course of 32 calendar days.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 1 time to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Swap ctrlc crate with signal-hook which is a must in library crates. ctrlc is only for applications who can control the single handler that it install
ctrlc crate with signal-hook which is a must in library crates. ctrlc is only for applications
who can control the single handler that it installs entirely.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Fix compile error (and protect from that regression) if render-line-autoconfigure was enabled.
render-line-autoconfigure was enabled.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
With the render-line-autoconfigure feature toggle, the new Options::default().auto_configure(…) method allows to adapt to the terminal/non-terminal au
render-line-autoconfigure feature toggle, the new
Options::default().auto_configure(…) method allows to adapt to the terminal/non-terminal autmatically.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
The line renderer won't try to hide the cursor if the output isn't a terminal.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 1 time to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
0d41f11)8bfd42b)26c7497)4d1dd31)13404f5)f560f84)
</details>13 commits contributed to the release over the course of 109 calendar days.
<csr-id-e3665a2100fba190fc0f047ff05f2904f4dcaf4a/> <csr-id-c91d410e8d6242b78c44119155b5fc3b2956d111/> <csr-id-03d1c2067778fb6ec231bf18dd587046a03434bc/>
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
c0a97fa)e3665a2)edd11be)c91d410)03d1c20)ee8ab91)300aa7b)a2b3037)5b862d5)d48f3b9)ad03a43)4cb8681)75f311e)
</details>2 commits contributed to the release.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
10 commits contributed to the release.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 2 times to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
e93d001)3e58d82)a3298d5)fed01f7)1bea3cb)9a8af0f)1c4930a)644809a)cec8ab3)32be130)
</details>2 commits contributed to the release.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Upgrade to TUI v0.13 and crossterm v0.18
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
b2989fa)808f7d5)7684a50)725449b)b485568)d9288e9)a3bf8be)b5aa292)a70e96d)0606d46)
</details>10 commits contributed to the release over the course of 3 calendar days.
futures-util dependency<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
6e84aef)75258ea)45b8dba)4fda4c0)53ff638)0c82556)e187a9d)d41352d)0a6b6bc)da021ea)
</details>upgrade dependencies to latest versions
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 1 time to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Enforce Send + 'static bounds for Progress trait.
Send + 'static bounds for Progress trait.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
50a90ec)
</details>add set_name(…) and name() to Progress trait.
set_name(…) and name() to Progress trait.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
94c4390)
</details>Add missing trailing paranthesis in throughput display
Add missing trailing paranthesis in throughput display
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
b2af5b9)
</details>Provide various Units for improved formatting of durations, steps, counts and bytes, and specify display of percentages.
<csr-id-66800fd4e6c9f517f19da4e26a75cb3f139353b0/> <csr-id-64cfe9e87e038fb36492307dfb75cbc8204180d8/>
ProgressStep type into usize to allow for a broader range of values. Specifically, this enables counting bytes read and written
of files or streams bigger than 2^32-1Key::shares_parent_with(…),Key::adjecency(…)Key::adjecency(…)Progress::init(max, unit) , unit now is Option<Unit>, existing code can be transformed using progress.init(None, Some("label".into())).tree::progress into progress and renamed Value into Task and Progress into Valuetree::messages into crates::messagestree::key into crates::progress::keytree::Throughput into crate::Throughputdeep_eq() method in Root treeredraw_only_on_state_change was removed without substitutetree::ProgressState → progress::Statetree::Value → progress::Valuetree::Progress → ProgressHash implementation for all public types except for tree::Keytui and line renderers into the render modulelog-renderer feature to progress-tree-logtui-renderer* into render-tui* and line-renderer* into render-line*<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 2 times to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
360d3ee)52661ee)a4ea34c)2d57a54)a80104c)0e84270)7c5be6b)8cf7452)4b396f5)673d149)8ba1e96)72bfa47)37f1266)006ba9d)fa688c8)3da74b0)a977c44)ec5c673)cdabdce)tree::key into progress::key (d6f66b7)63fd65a)08d30c6)init to support the Unit type (226a849)Progress trait and implement it for tree::Item (93ffb60)Value -> Task and Progress -> Value (f021ed8)tree::messages into crate::messages (4bce1d7)crate::progress (cf7405c)4e38c6b)e6f242e)render module (31358a7)7435f35)be39f49)95e89ae)2e91ed2)d0e3af3)9212de4)6a4ae4e)0ceebd4)e2ffb04)74315bf)a1af8fc)2edeefc)80684b3)19e0901)0402040)b981d2e)3b12ea2)a99e791)c6068c5)983d2e5)0c537ab)fd68710)40869a8)682dee2)66800fd)eb22417)33be555)a4b4ab7)963c933)f78cf4f)3266fad)b413111)ea705ac)a2d35fb)de6addd)e3bdbf1)2f1cb12)70d7ae2)6a18584)539edde)d500412)f0f55bb)afb0c91)b83d6bd)f350079)bf89a3d)f233d43)0e15b97)43c0980)5bd90cc)716e774)6063c27)90a9c2d)129d09d)79ae31f)8071110)f6fa7ab)a3254a6)ee6275c)64cfe9e)d19a1db)
</details>Your coding agent can read these notes before it upgrades. Set up the MCP server →