What about a roll back feature for Integrations? It’s very easy at times to have something Bork an install with a broken change. I liked the work added for Home assistant to detect core errors and repair/recover itself if it detected something bad. But an idea would be what about for integrations?
You could upgrade them then and if there was an issue and the integration had an issue rather than uninstalling and potentially loosing data or having to restore a full system backup, perhaps a roll back/recovery feature might be a good addition?
So it almost makes a temp backup, then perhaps if all is ok, after x days you get a persistent notification asking if the upgrade went ok. If so it removes the built in recovering files.
At the moment all core integrations are rolled into one “core” release.
There are methods to run a different version of a core integration using custom_components. It’s not particularly user friendly though.
The other option is to just roll back the entire core release version without restoring a backup. This can be done from the command line, see the first example here: Common tasks - Operating System - Home Assistant though a lot quicker thn a backup and without data loss, again, it is not particularly user friendly. A GUI for this could be added but I think the developers prefer we use the backup system so it is likely to stay a CLI only feature.
In an ideal world we would have as much individual control over core integration versions as we do for 3rd party integrations using HACS. I’m not sure how realistic an ask that is as it would require a major architecture overhaul.