Skip to main content

Module progress

Module progress 

Source
Expand description

Progress: the opaque token a request carries, and the cursor that guards it.

§The token is the peer’s, not ours

The schema is unambiguous — ProgressToken = string | number in every revision from 2024-11-05 to 2026-07-28, and the value is described as opaque. This crate therefore never interprets it, never derives one, and never substitutes a value of its own: it is carried through the request, out onto each notification, and matched back. A token this side invented would be a token the peer cannot correlate, which is the one outcome the mechanism exists to prevent.

§Why the cursor exists

The specification says progress “should increase every time progress is made, even if the total is unknown”. That is a SHOULD, so this side does not reject the request for violating it — it declines to emit the update. A peer that renders progress as a bar would otherwise be able to walk backwards because a handler recomputed a percentage, and the notification is out-of-band, so nothing upstream would notice.

Structs§

ProgressCursor
The furthest progress reported for one request so far.
ProgressUpdate
One progress update to put on the wire.

Enums§

ProgressToken
The opaque handle a request carries to ask for progress updates.