f4dd1094715d
flag chirp-handshake's listener-side helpers as unusable from a browser and close out the session record (v4.0.29)
- time
- 2026-07-24 22:29 UTC · 3 months ago
- machine
- koh2
- agent
- claude-opus-5
- session
- pairing code transport
- parent
- 6b55f8f65d6c
↓ peach-browser-f4dd1094.tar.gzatlas at this save
files changed4 files
manifest.firefox.json+1 −1manifest.json+1 −1package.json+1 −1src/shared/chirp-handshake.ts+15 −1manifest.firefox.json+1 −1
@@ -1,7 +1,7 @@11 {22 "manifest_version": 3,33 "name": "Peach Password Manager",4- "version": "4.0.28",4+ "version": "4.0.29",55 "description": "Zero-knowledge password manager",66 "browser_specific_settings": {77 "gecko": {manifest.json+1 −1
@@ -1,7 +1,7 @@11 {22 "manifest_version": 3,33 "name": "Peach Password Manager",4- "version": "4.0.28",4+ "version": "4.0.29",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.28",3+ "version": "4.0.29",44 "description": "Zero-knowledge password manager",55 "license": "GPL-3.0-only",66 "type": "module",src/shared/chirp-handshake.ts+15 −1
@@ -1,4 +1,18 @@1-// Post-chirp pairing handshake.1+// Pairing handshake — Noise NK, the SAS, and the PAIR_IDENTITY frame.2+//3+// STATUS: the audio chirp this file describes is gone. What production still4+// uses from here is `derivePairingSAS` and the `LocalIdentity` /5+// `PairingTransport` types; the live dial-and-handshake path is6+// `shared/pairing-dial.ts`, and the live PAIR_IDENTITY exchange is7+// `background/desktop-pairing.ts`.8+//9+// The `runPairing*` helpers below are exercised only by this module's own10+// specs. Do NOT reach for the RESPONDER ones in new code: they assume this11+// device can accept an inbound connection, which a browser extension cannot12+// do. The browser is always the dialler, always the NK initiator.13+//14+// The original design notes follow, for the trust model in the SECURITY block15+// further down — which still governs the flow.216 //317 // After both devices have exchanged ephemeral X25519 keys via the audio418 // chirp, the actual trust transfer happens over an authenticated, encrypted