f959b6d9a210
suppress whats-new on fresh install so recovery confirmation lands in the vault
- time
- 2026-09-05 16:51 UTC · 1 month ago
- machine
- koh2
- agent
- glm-5.2
- session
- release browser gate
- parent
- 1a82f37bd5de
↓ peach-browser-f959b6d9.tar.gzatlas at this save
files changed2 files
src/shared/release-notes.test.ts+4 −2src/shared/release-notes.ts+6 −1src/shared/release-notes.test.ts+4 −2
@@ -55,11 +55,13 @@5555 expect(await shouldShowWhatsNew()).toBe(false);5656 });5757 58- it("shouldShowWhatsNew returns true when nothing has been seen yet", async () => {59- expect(await shouldShowWhatsNew()).toBe(true);58+ it("shouldShowWhatsNew returns false on a fresh install (nothing seen yet)", async () => {59+ expect(await shouldShowWhatsNew()).toBe(false);6060 });6161 6262 it("markWhatsNewSeen stores the current version and suppresses reshowing", async () => {63+ // Simulate an upgrade from a previously-seen older version.64+ store["peach_whats_new_seen"] = "0.0.1";6365 expect(await shouldShowWhatsNew()).toBe(true);6466 await markWhatsNewSeen();6567 expect(await shouldShowWhatsNew()).toBe(false);src/shared/release-notes.ts+6 −1
@@ -46,7 +46,12 @@4646 if (!hasReleaseNotes()) return false;4747 try {4848 const seen = await chrome.storage.local.get(WHATS_NEW_SEEN_KEY);49- return seen[WHATS_NEW_SEEN_KEY] !== PEACH_VERSION;49+ const last = seen[WHATS_NEW_SEEN_KEY];50+ // A fresh install has no stored version — there is nothing to catch up51+ // on, so the screen never appears. It only fires on an upgrade from a52+ // previously-seen version. Mirrors Android's WhatsNewScreen gate.53+ if (last === undefined) return false;54+ return last !== PEACH_VERSION;5055 } catch {5156 return false;5257 }