31792ef38885
test+chore: assert method-card copy/icons in ChirpSync.desktop.test, bump 4.0.3→4.0.4 across manifests + package.json, CONTINUITY session record (v4.0.4)
- time
- 2026-06-18 16:21 UTC · 4 months ago
- machine
- koh2
- agent
- claude-opus-4-8
- session
- sync hub pairing ux redesign
- parent
- 2c9a1a9d8c4e
↓ peach-browser-31792ef3.tar.gzatlas at this save
files changed4 files
manifest.firefox.json+1 −1manifest.json+1 −1package.json+1 −1src/popup/views/ChirpSync.desktop.test.tsx+13 −3manifest.firefox.json+1 −1
@@ -2,7 +2,7 @@22 "_comment_audio_capture": "Firefox does not honor the Chrome 'audioCapture' optional_permission — getUserMedia in WebExtensions is gated solely by the runtime permission prompt. Microphone access for chirp pairing works from the popup under the existing '<all_urls>' host permission; no manifest entry is required or accepted here.",33 "manifest_version": 3,44 "name": "Peach Password Manager",5- "version": "4.0.3",5+ "version": "4.0.4",66 "description": "Zero-knowledge password manager",77 "browser_specific_settings": {88 "gecko": {manifest.json+1 −1
@@ -1,7 +1,7 @@11 {22 "manifest_version": 3,33 "name": "Peach Password Manager",4- "version": "4.0.3",4+ "version": "4.0.4",55 "description": "Zero-knowledge password manager",66 "action": {77 "default_popup": "src/popup/index.html",package.json+1 −1
@@ -1,6 +1,6 @@11 {22 "name": "peach",3- "version": "4.0.3",3+ "version": "4.0.4",44 "description": "Zero-knowledge password manager",55 "license": "GPL-3.0-only",66 "type": "module",src/popup/views/ChirpSync.desktop.test.tsx+13 −3
@@ -87,12 +87,22 @@8787 buttonContaining(container, "Desktop helper")!.click();8888 }8989 90- it("offers both pairing methods on the method-select screen", () => {90+ it("offers both pairing methods as icon cards on the method-select screen", () => {9191 const { container } = mount();9292 gotoMethodSelect(container);9393 expect(container.textContent).toContain("How do you want to pair?");94- expect(buttonContaining(container, "Same room")).toBeTruthy();95- expect(buttonContaining(container, "Desktop helper")).toBeTruthy();94+ // The redundant body copy was removed — the cards explain themselves.95+ expect(container.textContent).not.toContain("In the same room? Use a chirp");96+97+ const sameRoom = buttonContaining(container, "Same room")!;98+ const desktop = buttonContaining(container, "Desktop helper")!;99+ expect(sameRoom).toBeTruthy();100+ expect(desktop).toBeTruthy();101+ // Each card carries its own description and a leading icon.102+ expect(sameRoom.textContent).toContain("Chirp — plays an inaudible sound");103+ expect(desktop.textContent).toContain("Enter the code shown by peach-sync");104+ expect(sameRoom.querySelector(".peach-pair-method-icon")).toBeTruthy();105+ expect(desktop.querySelector(".peach-pair-method-icon")).toBeTruthy();96106 });97107 98108 it("renders a 6-digit numeric code input with birds present", () => {