I leave it in the hands of the user to write the files to disk themselves with put_named_file. They would take the graftpoints and run them through serialize_graftpoints before writing to the file.

There is no watcher for changes to the grafts file, much like how the object store is only loaded once at the beginning of repo initialization. The run time view of the graftpoints is the source of truth after initialization.