Files
SubMiner/changes/sync-ui-window.md
T
sudacode 5d8673f299 fix(sync): harden detached launch, bounded --check probes, and pipe-clos
- `sync --ui` now launches detached; closing standalone Sync window exits app
- `--check` uses BatchMode + ConnectTimeout + 15s timeoutMs on all SSH calls
- `runSyncLauncher` settles on `exit` (not just `close`) for Electron pipe inheritance
- Added `timeoutMs` to `runSyncLauncher`; check-host passes 30s deadline
- `handleSyncCliAtEntry` wraps exit deps for testability; fixes Linux AppImage GUI fallthrough
- `config-settings-window` gains optional `onClosed` hook
- Added preload-syncui bundle to `build:syncui` script
2026-07-12 19:42:34 -07:00

1.4 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 merge summaries, connection testing for first-time setup, cancellable runs with a one-click --force retry when the running-app guard trips, and manual database snapshots (create/merge/reveal/delete, stored in /tmp/subminer-db-snapshots/ by default). Hosts with auto-sync enabled are synced in the background on a configurable interval while no mpv session or stats server is writing the database, 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. Headless sync commands now exit directly after completion so Linux AppImage runs cannot fall through into GUI startup. Added subminer sync --json for machine-readable NDJSON progress output (the protocol the sync window consumes).