fix(mackup): safer defaults + recovery after broken symlink sync

- Default-off SSR_MACKUP_PRESYMLINK for DynamicProfiles pre-symlink (was
  risking empty/wrong iCloud trees and breaking iTerm2).
- Remove incorrect skip entries: built-in cfgs use different paths than
  ~/.zsh, ~/.vscode*, ~/.iterm2 — skipping hid real overlap from scan only
  but the presymlink change was the main footgun.
- Add `ssr mackup unlink` → `mackup -f link uninstall` to copy configs back
  from Mackup storage and drop symlinks (official undo).
- Docs: ssr.conf.example, README sync/restore wording, completions.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-12 20:09:23 +02:00
parent ccc1db1e93
commit 51fb589ef2
8 changed files with 71 additions and 42 deletions
+4 -3
View File
@@ -16,9 +16,10 @@ SSR_CLOUD_PROVIDER=icloud
SSR_BACKUP_SUBDIR=BACKUP
SSR_MACKUP_SUBDIR=Mackup
# Auto-discover uncovered dot-dirs in $HOME and add them to a generated
# ~/.mackup/ssr-custom.cfg before each backup. Set to "false" to opt out.
SSR_MACKUP_AUTODISCOVER=true
# Optional iTerm2 race workaround: pre-symlink DynamicProfiles → Mackup cloud
# before `mackup link install`. Default is off — enabling can break iTerm if
# the cloud copy is incomplete. Prefer `ssr mackup unlink` to recover.
# SSR_MACKUP_PRESYMLINK=1
# Subdirs (relative to $HOME) to delete before each mackup backup attempt.
# Handles transient dirs with dangling symlinks or sockets (debug sessions,