pub(super) async fn fix(services: &Services) -> ResultExpand description
Runs the one-time chain cache clear, then the injectivity scan, heal,
and repair behind MARKER.
The clear takes CLEAR_MARKER and runs ahead of the early return, so
a database that already completed the repair still discards its chains.
The stamp follows any verdict: a settled repair stamps the empty value,
a decline stamps its counters, and only an error leaves the marker
unwritten and fails the boot. A heal rescans rather than repairing,
because it changes the losers and winners the repair consumes.