refactor(mackup): transition to copy-based backup and restore

- Updated `ssr sync` and `ssr restore` commands to use `mackup backup` and `mackup restore`, replacing the previous symlink-based approach.
- Added guidance for users with legacy symlink setups to run `ssr mackup unlink` for recovery.
- Revised documentation in README, completions, and configuration examples to reflect the new copy-based methodology for improved reliability on newer macOS versions.
- Enhanced comments in the codebase to clarify the changes and their implications for users.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-13 09:17:25 +02:00
parent 51fb589ef2
commit c31338dba9
7 changed files with 47 additions and 91 deletions
+4 -5
View File
@@ -16,14 +16,13 @@ SSR_CLOUD_PROVIDER=icloud
SSR_BACKUP_SUBDIR=BACKUP
SSR_MACKUP_SUBDIR=Mackup
# 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
# SSR uses `mackup backup` / `mackup restore` (copy, not symlinks) for reliability
# on newer macOS. If you still have Mackup symlinks from an older setup, run:
# ssr mackup unlink
# Subdirs (relative to $HOME) to delete before each mackup backup attempt.
# Handles transient dirs with dangling symlinks or sockets (debug sessions,
# log dirs) that shutil.copytree cannot copy.
# log dirs) that should not be copied to cloud.
# Built-in defaults: .claude/debug .cursor/logs .vscode/logs .npm/_logs
# SSR_MACKUP_PRECLEAN_PATHS=".my-app/tmp .other-app/run"