flowchart TB inv["① Record the state, the holds
and set up the witness"] sauv["② Back up
/etc/docker and the definitions"] lr["③ Add live-restore by merging
jq, validate, then reload"] sauv2["④ Back up
/etc/docker again"] monte["⑤ Upgrade to the named version
unhold, install, hold"] preuves{"⑥ PID, StartedAt, counter
and checksum unchanged?"}:::accent garde["⑦ Keep the version
holds set again"] retour["Go back to the previous version
unhold, --allow-downgrades, hold"] limite["Daemon in start-limit-hit?
reset-failed, then start"] inv ==> sauv sauv ==> lr lr ==> sauv2 sauv2 ==> monte monte ==> preuves preuves ==>|yes| garde preuves -.->|no| retour retour -.-> limite