Yes, GrapheneOS has always offered OTA updates via the
System Updater app.
https://grapheneos.org/usage#updates It's set up to download and install updates automatically by default. Alternatively, you can install a signed update package via
adb sideload.
https://grapheneos.org/usage#updates-sideloadingBoth the update client and the backend are open source, just like the rest of the system:
https://github.com/GrapheneOS/platform_packages_apps_Updater
https://github.com/GrapheneOS/releases.grapheneos.org