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
2 files src/shared/release-notes.test.ts+4 −2src/shared/release-notes.ts+6 −1
src/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);

view file

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   }

view file