(discussed on 2025-09-23 update call)
There are cases like this one where we've used serde(default) to fill in default values of structures read from disk:
#8983 (comment)
That's been used when we want to add new values and can provide a suitable default.
There have been other cases where we proactively added code to migrate from one on-disk format to another, as in #4466.
We discussed an idea where on startup, after reading its ledgers, sled-agent would serialize them again, and if the serialized form differs from the bytes on disk, then it would write the new form to disk. The goal is to know when it's safe to remove support for older formats (namely, once we know all systems will have run the release that re-wrote the old format into the new one).