github graysky2/profile-sync-daemon v8.0
psd 8.0

3 hours ago

psd 8.0 is a reliability release. The sync, crash recovery and shutdown paths were rebuilt around one rule: a browser profile is never lost, no matter when psd is interrupted.

Highlights

  • Atomic resync and unsync. psd writes a complete new copy of the profile, flushes it, then swaps it in with mv --exchange. A crash or power loss mid-sync leaves the previous copy intact.
  • New psd recover verb. Recovery is restartable and always picks the newest complete copy. psd.service runs it automatically on stop, and sessions started by older psd versions are recovered too.
  • Browsers get time to quit. psd waits for running browsers to exit cleanly before unsync and kills one that ignores TERM after 10 seconds. Processes still holding a profile are named in the log.
  • No more racing runs. psd runs are serialized with a lock, and the initial sync is all-or-nothing: if one profile fails, every profile is put back.
  • Safer housekeeping. psd preview no longer changes anything, crashrecovery snapshots are rotated by BACKUP_LIMIT, and profiles that would share a tmpfs dir are refused.
  • Test suite. make check runs the fault-injection suite, which kills psd before every step and checks nothing is lost.

Upgrade

  1. Stop psd before upgrading: systemctl --user stop psd
  2. Install, then systemctl --user daemon-reload and start psd again.
  • The atomic swap needs coreutils 9.5 or newer. Older versions fall back to an in-place copy, which is safe but not atomic.
  • Each resync needs free space next to the profile for whatever changed since the last one. If space runs out, the resync fails and the previous copy is kept.
  • Known gap: a 7.x session with USE_BACKUPS=no that crashed before its first resync cannot be recovered automatically. Stop psd cleanly before upgrading.

Install

  • Arch: profile-sync-daemon from the extra repo
  • From source: make && sudo make install

Full Changelog: v7.04...v8.0

Don't miss a new profile-sync-daemon release

NewReleases is sending notifications on new releases.