# Path 1 fallback — Hardened Syncthing Use this if Path 3 (MinIO over Cloudflare/NGINX) becomes unreliable or Android S3 access is blocked more often than Syncthing-Fork would be. ## Triggers - WAN MinIO downtime / CF limits / NGINX upload bugs that block play sessions - Android app cannot obtain durable storage access for emulator saves and Syncthing folder sync of the **SSOT tree** is acceptable - You still refuse to sync live game directories directly ## What stays the same Keep the Python session agent (`start`/`end`). It continues to copy: `native save paths` ↔ local SSOT tree Only the transport of the SSOT tree changes (Syncthing instead of MinIO). ## Migration MinIO → Syncthing SSOT folder 1. On a trusted machine with MinIO access: ```bash syncgames export-ssot --out ~/SyncGames-SSOT ``` (Downloads all `games/*/live`, `history`, `meta.json` into a filesystem mirror.) 2. Share `~/SyncGames-SSOT` with Syncthing across devices. 3. Enable **Simple File Versioning**, Keep Versions ≥ 5, on every device. 4. Point `agent.toml`: ```toml store = "filesystem" ssot_root = "/home/you/SyncGames-SSOT" ``` 5. Stop relying on MinIO for that install (or keep MinIO as cold backup via periodic `export-ssot`). ## Hardening rules (do not violate) - Syncthing folder = SSOT tree **only** - Never add Proton `compatdata` / Android emulator internal dirs as Syncthing folders - Lease/hash gates remain enforced by the agent against filesystem `meta.json` ## Rollback Point `store` back to `minio` and keep using the same game ids if the bucket is still intact.