There are two different kinds of update — know which one you are doing.
ovos-update upgrades the Python packages in the OVOS venv against the
release channel recorded in /opt/ovos/tag (images ship on alpha):
ovos-update
This is safe, in-place, and keeps your configuration. Run it whenever you
want fixes and new features. System packages update the normal Debian way
(sudo apt update && sudo apt full-upgrade).
New base images (new Raspberry Pi OS, new defaults) require reflashing. Before you reflash, save your identity and configuration:
tar czf /boot/firmware/ovos-backup.tar.gz \
-C /home/ovos .config/mycroft .local/share/mycroft
The boot partition is FAT — you can also read that file from any laptop by inserting the SD card. After flashing the new image, restore:
tar xzf /boot/firmware/ovos-backup.tar.gz -C /home/ovos
systemctl --user restart ovos.service
cat /opt/ovos/tag # release channel
python3 -m json.tool /opt/ovos/build-manifest.json | head -20 # exact build
The build manifest records the exact package pins your image shipped with — include it in bug reports.