Files
SubMiner/changes/sync-ui-window.md
T

1.7 KiB

type: added area: sync

  • Added a sync window (subminer sync --ui, or Sync Stats & History in the tray menu) for cross-machine immersion sync: saved devices with per-host direction (two-way/push/pull) and remove, one-click sync with live stage-by-stage progress and separate merge summaries for this machine and the remote device, connection testing for first-time setup, cancellable live syncs while the app, stats server, or playback is active, and manual database snapshots (create/merge/reveal/delete, stored in /tmp/subminer-db-snapshots/ by default). Live sync uses a consistent WAL snapshot and transactional merge, and excludes unfinished sessions until a later sync sees them finalized. Hosts with auto-sync enabled are synced in the background on a configurable interval, including during playback, with results reported as overlay notifications. Hosts synced from the CLI are remembered in <config dir>/sync-hosts.json and show up in the window automatically. subminer sync --ui launches silently in the background and returns the shell immediately; closing that standalone Sync window shuts down the app.
  • Added subminer sync <host> --check to test the SSH connection and remote launcher availability without syncing, using bounded noninteractive probes and settling when the check process exits even if an inherited output pipe remains open, without dropping terminal progress that races process exit. Linux AppImage sync commands clear inherited GUI startup argument transport before launching the bundled engine, then exit directly, so sync window checks and remote snapshots never initialize the GUI or require a display server. Added subminer sync --json for machine-readable NDJSON progress output (the protocol the sync window consumes).