Mac app and Safari extension, sharing one wallet #21
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
backmeupplz/plainwallet!21
Loading…
Reference in a new issue
No description provided.
Delete branch "macos"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A Mac app that is also the Safari extension: one app bundle, one wallet. macOS 0.2.5 (build 2) is in App Store review on the iOS app's record.
Merge #7 (iOS) first: this branch has it merged in (with main), so after #7 lands only the Mac changes remain here. The Mac app's version is now 0.3.0, matching package.json, for its next build.
Install instructions for Mac/Safari, iPhone and Firefox on the landing page (
docs/index.html, with a Mac screenshot) and in the README. The App Store links work once Apple approves the apps; Firefox stays build-it-yourself until the AMO review finishes.Safari extension: the extension built with
wxt build -b safari --mv3, without the side panel (Safari has none) and withnativeMessaging.npm run build:macosbuilds it intomacos/safariand the wallet page intomacos/web.Mac app (
macos/PlainWallet/PlainWallet.swift): the mobile apps' wallet page (entrypoints/android*) in a window, served from the bundle underplainwallet://, with no browser of its own; dapps go through Safari. Links open in the default browser. No favorites; it keeps the auto-lock switch, with its own note under it.Locking: the app locks when the Mac sleeps or its screen locks, after 15 minutes without use (unless that's turned off), and when the window closes, which quits the app.
One wallet:
storage.localfor both the app and the Safari extension is a JSON file in the app groupACWP4F58HZ.com.borodutch.plainwallet(macos/Shared/Storage.swift).lib/shared-storage.ts), so neither side saves over the other with a stale copy.storage.localonly sostorage.onChangedstill driveschainChanged/accountsChanged.All platforms: a storage error now shows on screen instead of leaving a blank page.
Security impact
~/Library/Group Containers/ACWP4F58HZ.com.borodutch.plainwallet/.browser.runtime.sendNativeMessageread/write access to that file. In Safari that should be the extension's own pages and background only, not content scripts. Not verified.Checked
npm test(including the newtest-macos.js: the shim and store over the shared-storage protocol, a second client as the extension, errors never read as an empty wallet),tsc --noEmit,npm run build.test … junkseed:Apple Distribution: Borodutch Labs Inc.with the sandbox and app group.altool --validate-appand upload passed; build 2 is VALID and attached to macOS 0.2.5.Not checked
world: MAIN), connect / sign / send approvals, native messaging, and which storage areas content scripts can reach.saveis read-modify-write).🤖 Generated with Claude Code