What is mirrored
Credentials stay on the machine. On a second laptop you run the integration
setup again; everything else is already there.
Turn it on
Naming a bucket is not enough on its own —
OPENSRE_REMOTE_SYNC has to be set
too, so a bucket variable left over from another tool never starts uploading.
You can also persist settings under remote_sync in ~/.opensre/config.yml
(enabled, bucket, provider, prefix, …). Environment variables still
win for a single run.
Every machine that should share your history needs the same provider, bucket,
and prefix. Change the prefix only when you want a separate, isolated set of
conversations — a different prefix is a different history, not a backup of the
same one.
platform/filestorage/operations.py, with the wording in messages.py:
Check what would move before moving it:
Providers
The sync engine talks only to a small object-store interface. Amazon S3 is the built-in backend today (OPENSRE_REMOTE_SYNC_PROVIDER=aws, the default). Other
clouds (GCS, Azure, …) are community additions: implement ObjectStore, call
register_object_store("<name>", factory), and set
OPENSRE_REMOTE_SYNC_PROVIDER — the engine, CLI, and REPL do not change.
AWS / S3 (default)
Any private bucket works. Uploads request server-side encryption, so a bucket that requires encryption accepts them unchanged. Minimum permissions on the prefix you use:s3:DeleteObject is not needed — sync never deletes anything.