@startuml skinparam backgroundColor #FFFFFF skinparam defaultFontName Arial skinparam defaultFontSize 14 skinparam shadowing false title Managed Task — lifecycle states from tasks.rs [*] --> Pending Pending --> Running : due / delivery eligible Pending --> Completed : provider done; no callback Pending --> Failed : provider error Pending --> Cancelled : owner invalid / key replacement / cancel Running --> Completed : successful delivery Running --> Failed : transport or execution error Running --> Cancelled : cancel / lifecycle cleanup Completed --> [*] Failed --> [*] Cancelled --> [*] note right of Pending Provider I/O may already run while the Task is Pending. Running does not necessarily mean the I/O starts at that instant. Scheduler index is weak; callbacks/scopes are traced managed edges. end note @enduml