From 7028f60b561718ef786136db9a919d29e7e29ae0 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 1 Apr 2026 04:53:12 +0000 Subject: [PATCH] Fix fresh-install pull skipping due to empty-profile timestamp pollution MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root cause: when the popup opens for the first time it calls addProfile('Personal') + updateProfile(...) to create a default empty profile. Both call saveProfiles, which was unconditionally setting ss_lastModified: Date.now(). This made the new browser's local timestamp look like right now — newer than any Gist data pushed by the source browser — so every pull returned "Already up to date" without ever prompting for a password or importing anything. Fixes: 1. storage.js saveProfiles: only advance ss_lastModified when at least one profile contains real PII (non-empty real value in names, emails, usernames, phones, or catchAllEmail). Creating the default empty profile structure on first install leaves ss_lastModified at 0 so pulls correctly see remote data as newer. 2. sync.js pushToGist: persist ss_last_push_time and ss_last_push_source alongside ss_gist_id so the source browser (which only pushes) can also show its last activity time. 3. options.js: display both "Pushed: