feat: encrypted profile sync through a shared folder
Profiles can be kept in step across machines through any folder they share (cloud drive, network share, git checkout): one file, nexus-profiles.nexus, in the encrypted-export format under a sync password kept in the keychain/vault. Each sync merges profile by profile (newest updated_at wins), propagates deletions as dated tombstones (an edit after a deletion brings the profile back; tombstones expire after 180 days), validates every incoming profile, writes the file only when it changed, and never syncs credentials. Settings → Security → Profile sync picks the folder and sets the password; syncs run at launch, 3 s after a profile change, every 10 minutes and on Sync Now (automatic runs stay quiet unless something changed). An end-to-end test drives create, edit and delete between two data directories sharing a folder.
This commit is contained in:
@@ -628,6 +628,8 @@ pub struct AppPreferences {
|
||||
pub confirm_multiline_paste: bool,
|
||||
/// Reopen the previous session's tabs and splits at launch.
|
||||
pub restore_sessions: bool,
|
||||
/// Folder holding the encrypted profile sync file (empty: sync off).
|
||||
pub sync_folder: String,
|
||||
}
|
||||
|
||||
impl Default for AppPreferences {
|
||||
@@ -650,6 +652,7 @@ impl Default for AppPreferences {
|
||||
allow_remote_clipboard: true,
|
||||
confirm_multiline_paste: true,
|
||||
restore_sessions: true,
|
||||
sync_folder: String::new(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user