7009878b61cc

adopt password screen headline uses Cormorant Garamond display like the rest of onboarding; restore-tab back returns to the onboarding carousel instead of the create-vault screen, bump 4.10.16

time
2026-08-20 15:17 UTC · 2 months ago
machine
koh2
agent
qwen3.8-max
session
peach ui fixes
parent
7fe9dbe9d471
7 files manifest.firefox.json+1 −1manifest.json+1 −1package.json+1 −1src/popup/styles/popup.css+4 −1src/popup/views/Lock.tsx+6 −1src/popup/views/contracts.test.tsx+18 −0tests/lock-screen.spec.ts+18 −0
manifest.firefox.json+1 −1
@@ -1,7 +1,7 @@11 {22   "manifest_version": 3,33   "name": "Peach Password Manager",4-  "version": "4.10.15",4+  "version": "4.10.16",55   "description": "Zero-knowledge password manager",66   "browser_specific_settings": {77     "gecko": {

view file

manifest.json+1 −1
@@ -2,7 +2,7 @@22   "manifest_version": 3,33   "minimum_chrome_version": "116",44   "name": "Peach Password Manager",5-  "version": "4.10.15",5+  "version": "4.10.16",66   "description": "Zero-knowledge password manager",77   "action": {88     "default_popup": "src/popup/index.html",

view file

package.json+1 −1
@@ -1,6 +1,6 @@11 {22   "name": "peach",3-  "version": "4.10.15",3+  "version": "4.10.16",44   "description": "Zero-knowledge password manager",55   "license": "GPL-3.0-only",66   "type": "module",

view file

src/popup/styles/popup.css+4 −1
@@ -7223,7 +7223,10 @@72237223 72247224 .peach-adopt-card h1 {72257225   margin: 0 0 10px;7226-  font-size: 1.28rem;7226+  font-family: var(--font-display);7227+  font-style: italic;7228+  font-weight: 400;7229+  font-size: 1.42rem;72277230   line-height: 1.15;72287231 }72297232 

view file

src/popup/views/Lock.tsx+6 −1
@@ -302,7 +302,12 @@302302         <RestoreTabView303303           hasVault={props.hasVault}304304           onOpenCodexRestore={props.onOpenCodexRestore}305-          onBack={() => setRestoreSurface(null)}305+          onBack={() => {306+            // The restore tab is only reached from the onboarding carousel,307+            // so back returns there — not to the create-vault form.308+            if (props.onBackToOnboarding) props.onBackToOnboarding();309+            else setRestoreSurface(null);310+          }}306311           onUnlock={async () => {307312             setRestoreSurface(null);308313             await props.onUnlock();

view file

src/popup/views/contracts.test.tsx+18 −0
@@ -583,6 +583,24 @@583583     expect(container.querySelector("#master-password")).toBeNull();584584   });585585 586+  it("Lock restore-tab back returns to onboarding, not the create-vault screen", async () => {587+    const onBackToOnboarding = vi.fn();588+    const container = mount(() => (589+      <LockView590+        hasVault={false}591+        ready={true}592+        onUnlock={vi.fn()}593+        initialRestore={true}594+        onBackToOnboarding={onBackToOnboarding}595+      />596+    ));597+    await flushView();598+599+    (container.querySelector(".peach-lock-restore-link") as HTMLButtonElement).click();600+    await flushView();601+    expect(onBackToOnboarding).toHaveBeenCalledTimes(1);602+  });603+586604   it("HOLE 4: removing a device discloses that recovery words survive revocation", async () => {587605     const device = {588606       deviceId: "phone-1",

view file

tests/lock-screen.spec.ts+18 −0
@@ -294,6 +294,24 @@294294     await expect(reopened.locator(".peach-onboarding-card")).toHaveCount(0);295295     await ctx.close();296296   });297+298+  test("LS23 - back from the restore tab returns to onboarding, not create-vault", async () => {299+    const { popup } = await loadPopup(ctx);300+    const next = popup.locator(".peach-onboarding-next");301+    await next.click();302+    await popup.waitForTimeout(350);303+    await next.click();304+    await popup.waitForTimeout(350);305+    await popup.locator(".peach-onboarding-choice:not(.peach-onboarding-choice--adopt)").click();306+    await expect(popup.locator(".peach-restore-tabs")).toBeVisible({ timeout: 5000 });307+308+    await popup.locator(".peach-lock-restore-link").click();309+310+    await expect(popup.locator(".peach-onboarding-card")).toBeVisible({ timeout: 5000 });311+    await expect(popup.locator(".peach-onboarding-card")).toContainText("Already using Peach?");312+    await expect(popup.locator("#master-password")).toHaveCount(0);313+    await ctx.close();314+  });297315 });298316 299317 test.describe("Lock Screen - Auto-lock Configuration", () => {

view file