feat(sync): include avatar in sync snapshot + auto-backup (multi-device)
The profile picture (users.avatar_b64, cosmetic/unencrypted) travelled only
in the manual export. Now it's also in buildSyncSnapshot and the auto-backup
container, so a new device / a restore picks it up.
- Restore is ADDITIVE (mirrors the import path): applyRemoteSnapshot adopts
remote.avatar_b64 only when the local device has no avatar — never clobbers
a locally-set picture. No per-avatar timestamp to arbitrate, so changing an
existing avatar doesn't propagate (cosmetic, accepted).
- +2 merge tests (adopt-when-empty, don't-clobber-when-set). 65/65 green.
- Server /avatar endpoint unchanged (already accepts {avatar_b64}).
Closes the avatar item of CODE_AUDIT §4.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -146,6 +146,9 @@ async function runAutoBackupNow(silent) {
|
||||
color: f.color || '',
|
||||
icon: f.icon || '',
|
||||
})),
|
||||
// Same as the manual export container — keep the avatar so a
|
||||
// restore from an auto-backup brings the profile picture back.
|
||||
avatar_b64: state.avatarDataUri || '',
|
||||
entries: [],
|
||||
};
|
||||
let _bkDone = 0;
|
||||
|
||||
Reference in New Issue
Block a user