OverviewFilesCommitsIssuesDocsReleasesPeers

pearbrowser-desktop commits / 8dae87b

chore(opsec): scrub local paths and personal identifiers from tracked files
8dae87b918ce69af1ece3a36f7d6ae277b06a428
by bigdestiny2 <33146784+bigdestiny2@users.noreply.github.com> · 2026-07-19T09:45:02.000Z

Changed files (12) +62 -62

README.md +1 -1
……@@ -181,7 +181,7 @@ Catalogue updates are versioned from [`catalog-source/pearbrowser-network.catalo
181181
182182```sh
183183node scripts/gen-catalogue-seed.mjs
184node scripts/publish-catalog-bee.js catalog-source/pearbrowser-network.catalog.json --storage /Users/localllm/Projects/pear-ecosystem/03-sites/pearbrowser-publishers/catalog
184node scripts/publish-catalog-bee.js catalog-source/pearbrowser-network.catalog.json --storage ~/pear-ecosystem/03-sites/pearbrowser-publishers/catalog
185185node scripts/verify-live-catalog.js --expect-app peercord --expect-app peerit --expect-app hiveworm
186186```
187187
backend/catalogue-seed.js +4 -4
……@@ -38,7 +38,7 @@ module.exports = {
3838 "driveKey": "ec6e2d6d9d22b9d6b40e11a9ca3042be3197e4bdca9e9a7f079be6ee830761b4",
3939 "link": "hyper://ec6e2d6d9d22b9d6b40e11a9ca3042be3197e4bdca9e9a7f079be6ee830761b4/",
4040 "iconData": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0Ij4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZyIgeDE9IjAiIHkxPSIwIiB4Mj0iMSIgeTI9IjEiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZjZiM2QiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjOWI2Y2ZmIi8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogIDwvZGVmcz4KICA8cmVjdCB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHJ4PSIxNiIgZmlsbD0idXJsKCNnKSIvPgogIDwhLS0gdGhyZWUgcGVlcnMgY29ubmVjdGVkIGluIGEgbWVzaCwgd2l0aCBhbiB1cHZvdGUgYXJyb3cgLS0+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMGEwZTE3IiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICA8cGF0aCBkPSJNMjAgNDAgTDQ0IDQwIE0yMCA0MCBMMzIgMjAgTTQ0IDQwIEwzMiAyMCIgb3BhY2l0eT0iMC41Ii8+CiAgPC9nPgogIDxjaXJjbGUgY3g9IjMyIiBjeT0iMjAiIHI9IjYiIGZpbGw9IiMwYTBlMTciLz4KICA8Y2lyY2xlIGN4PSIyMCIgY3k9IjQwIiByPSI2IiBmaWxsPSIjMGEwZTE3Ii8+CiAgPGNpcmNsZSBjeD0iNDQiIGN5PSI0MCIgcj0iNiIgZmlsbD0iIzBhMGUxNyIvPgogIDxwYXRoIGQ9Ik0zMiA1MCBMMzIgMzMgTTMyIDMzIEwyNiAzOSBNMzIgMzMgTDM4IDM5IiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMy40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiLz4KPC9zdmc+Cg==",
41 "author": "defidon",
41 "author": "bigdestiny2",
4242 "categories": [
4343 "community",
4444 "social",
……@@ -72,7 +72,7 @@ module.exports = {
7272 "type": "hypersite",
7373 "driveKey": "ac1977a75cc84b46af0af8bb559cd4ebbe10507eb0f51d863e289d09635f6d74",
7474 "link": "hyper://ac1977a75cc84b46af0af8bb559cd4ebbe10507eb0f51d863e289d09635f6d74/",
75 "author": "defidon",
75 "author": "bigdestiny2",
7676 "categories": [
7777 "community",
7878 "social",
……@@ -92,7 +92,7 @@ module.exports = {
9292 "driveKey": "0724aabf2ad6394983f91c6b24ebd417cb3d25addcf29c98eb246c512dc77f90",
9393 "link": "pear://7octu5dimjye8rn68raehwuetk5mttzt4zxh6yjw1eqktn49bq7o",
9494 "iconData": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMTQiIGZpbGw9IiMwYTBkMTIiLz48cGF0aCBkPSJNMzIgMTJsMTYgNnYxMWMwIDExLTcgMTgtMTYgMjMtOS01LTE2LTEyLTE2LTIzVjE4eiIgZmlsbD0iIzU4YTZmZiIvPjxnIHN0cm9rZT0iIzBhMGQxMiIgc3Ryb2tlLXdpZHRoPSIyLjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PHBhdGggZD0iTTI2IDI4aDEyTTI2IDM0aDEyTTI2IDQwaDgiLz48L2c+PC9zdmc+",
95 "author": "defidon",
95 "author": "bigdestiny2",
9696 "categories": [
9797 "productivity",
9898 "security"
……@@ -110,7 +110,7 @@ module.exports = {
110110 "driveKey": "25a06bb3dddec8138e9eda606cc4a11e9ebbe47815fd5d22064b30cff752bb5b",
111111 "link": "pear://qnax5k8ojtod51ci9qwkrawdof1hx5w3a7gqbueoqnzzq9dw5hfo",
112112 "iconData": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMTQiIGZpbGw9IiMwYTBkMTIiLz48cmVjdCB4PSIxOCIgeT0iMTYiIHdpZHRoPSIyOCIgaGVpZ2h0PSIzNCIgcng9IjQiIGZpbGw9IiM0YWRlODAiLz48cmVjdCB4PSIyNSIgeT0iMTEiIHdpZHRoPSIxNCIgaGVpZ2h0PSI5IiByeD0iMi41IiBmaWxsPSIjNGFkZTgwIiBzdHJva2U9IiMwYTBkMTIiIHN0cm9rZS13aWR0aD0iMiIvPjxnIHN0cm9rZT0iIzBhMGQxMiIgc3Ryb2tlLXdpZHRoPSIyLjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PHBhdGggZD0iTTI0IDMwaDE2TTI0IDM2aDE2TTI0IDQyaDEwIi8+PC9nPjwvc3ZnPg==",
113 "author": "defidon",
113 "author": "bigdestiny2",
114114 "categories": [
115115 "productivity",
116116 "security",
backend/tab-runtime.js +2 -2
……@@ -115,8 +115,8 @@ class TabRuntime {
115115 // (worker)" card launches.
116116 const env = (globalThis.Bare && Bare.env) || (globalThis.process && process.env) || {}
117117 let demoWorker = env.PEAR_TAB_DEMO_WORKER || null
118 if (!demoWorker) {
119 const p = '/Users/localllm/Desktop/pear-request-demo'
118 if (!demoWorker && env.HOME) {
119 const p = env.HOME + '/Desktop/pear-request-demo'
120120 try { require('bare-fs').statSync(p); demoWorker = 'file://' + p } catch {}
121121 }
122122 if (demoWorker) {
catalog-source/pearbrowser-network.catalog.json +4 -4
……@@ -34,7 +34,7 @@
3434 "id": "peerit",
3535 "name": "peerit",
3636 "description": "The front page of the P2P internet — a peer-to-peer Reddit. Communities, posts, threaded comments and votes live in a shared Holepunch log (Autobase + Hyperbee) and replicate directly between peers. No servers, no data center. Runs as a P2P site inside PearBrowser, seeded 24/7 on HiveRelay.",
37 "author": "defidon",
37 "author": "bigdestiny2",
3838 "version": "1.0.0",
3939 "type": "hypersite",
4040 "categories": [
……@@ -74,7 +74,7 @@
7474 "id": "p2pbuilders",
7575 "name": "P2P Builders",
7676 "description": "Permissionless peer-to-peer Hacker News for anons who build P2P — in the browser. Proof-of-work-gated posts, reputation-weighted votes, boards, threaded comments, follows and subscribable blocklists replicate directly between peers over the same Holepunch engine as peerit. Runs as a P2P site inside PearBrowser, seeded 24/7 on HiveRelay.",
77 "author": "defidon",
77 "author": "bigdestiny2",
7878 "version": "1.0.0",
7979 "categories": [
8080 "community",
……@@ -96,7 +96,7 @@
9696 "id": "pear-dealroom",
9797 "name": "Pear Dealroom",
9898 "description": "Zero-infrastructure P2P virtual data room for M&A and due diligence. End-to-end encrypted documents, a signed tamper-evident audit trail, and cryptographic access tiers — no cloud, no server, no vendor. Built on Holepunch.",
99 "author": "defidon",
99 "author": "bigdestiny2",
100100 "version": "1.0.0",
101101 "categories": [
102102 "productivity",
……@@ -122,7 +122,7 @@
122122 "id": "pearpaste",
123123 "name": "Paste",
124124 "description": "Local-first, end-to-end encrypted notes & clipboard sync for your own devices. No account, no hosted database, no plaintext replication — built on Pear, Holepunch, Hypercore, Hyperbee, Autobase and Hyperswarm. Tap-to-decrypt rows keep secrets sealed until you reveal them. Desktop (macOS / Windows / Linux) + Expo mobile.",
125 "author": "defidon",
125 "author": "bigdestiny2",
126126 "version": "0.1.0",
127127 "categories": [
128128 "productivity",
docs/RELEASE_NETWORK_EVIDENCE_2026-07-02.md +1 -1
……@@ -4,7 +4,7 @@
44PearBrowser Desktop is source-green in the current checkout, but it is not announcement-ready. The remaining release work is operator evidence: desktop GUI and real-network rows, Peercord human trust approval, mobile real-device and production signing/store rows, and the final announcement decision.
55
66## Checkout
7- Root: `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop`
7- Root: `~/pear-ecosystem/01-browser/pearbrowser-desktop`
88- Branch: `fix/native-packaging-linux-deps`
99- Head: `bb3bb68`
1010- Package version: `pearbrowser-desktop@0.5.2`
docs/RELEASE_READINESS_2026-06-23.md +2 -2
……@@ -143,7 +143,7 @@ The mobile app logic is tested, and native simulator/device release smoke is par
143143- The mobile backend now isolates `CMD_NAVIGATE` parsing in `backend/navigation.js`; tests cover hex/z32 drive keys, path/query/hash preservation, proxy-port validation, and fail-closed API-token issuance.
144144- An installed iOS simulator build launched and exposed `[runtime not ready]: Error: Cannot find native module 'ExpoLinking'`.
145145- `expo-linking@~55.0.15` is now tracked in `package.json`/`package-lock.json`; `npm ls expo-linking` resolves `expo-linking@55.0.15`, and Expo autolinking resolves the `ExpoLinking` pod/module.
146- A follow-up generated Expo iOS Debug simulator build now succeeds with signing disabled and DerivedData under `/private/tmp`; it includes the `ExpoLinking` pod, runs `[Expo] Configure project`, and copies/strips the BareKit xcframework stack. The generated Expo Release simulator path is also release-build-cleared when the build pins `HERMES_CLI_PATH` to `ios/Pods/hermes-engine/destroot/bin/hermesc` as an Xcode build setting. The earlier stalled path invoked `/Users/localllm/Desktop/PearBrowser/node_modules/hermes-compiler/hermesc/osx-bin/hermesc`; the Pods compiler successfully bytecodes the same 7.5 MB JS bundle, and the full generated Expo Release simulator build now succeeds.
146- A follow-up generated Expo iOS Debug simulator build now succeeds with signing disabled and DerivedData under `/private/tmp`; it includes the `ExpoLinking` pod, runs `[Expo] Configure project`, and copies/strips the BareKit xcframework stack. The generated Expo Release simulator path is also release-build-cleared when the build pins `HERMES_CLI_PATH` to `ios/Pods/hermes-engine/destroot/bin/hermesc` as an Xcode build setting. The earlier stalled path invoked `~/Desktop/PearBrowser/node_modules/hermes-compiler/hermesc/osx-bin/hermesc`; the Pods compiler successfully bytecodes the same 7.5 MB JS bundle, and the full generated Expo Release simulator build now succeeds.
147147- The tracked SwiftUI `ios-native` shell builds, installs, launches, and reaches green `Connected` on the iPhone 17 simulator. The smoke also verified stale-Corestore recovery: the first launch failed with `Another corestore is stored here`, then the fallback build recovered into an identity-scoped subdirectory and booted the worklet.
148148- Android native Gradle inspection, Kotlin/Java compile, and `:app:assembleDebug` pass with Eclipse Temurin 17; Homebrew OpenJDK 17.0.19 hung in AGP's JDK image transform on this machine. The fresh debug APK (`android-native/app/build/outputs/apk/debug/app-debug.apk`, 169 MB diagnostic build with bare-kit/addons and two ARM ABIs) installed and launched on a headless `pp_avd` emulator. The app reached a green `Connected` Home screen after extracting the bundled worklet and starting the local proxy.
149149- Android native `:app:assembleRelease` and `:app:bundleRelease` pass with R8/resource shrink after suppressing unused React Native adapter warnings from the local Bare Kit AAR. Env-driven release signing was verified with a disposable test keystore: `app-release.apk` is 142 MB and verifies with certificate `CN=PearBrowserTest, O=PearBrowser, C=US`; `app-release.aab` is 49 MB and passes `jarsigner -verify` with expected self-signed test-certificate warnings.
……@@ -201,7 +201,7 @@ npm audit fix # mobile/native, non-force only
201201npm audit --audit-level=high # mobile/native after fix
202202npm run validate # publisher catalogue
203203node scripts/gen-catalogue-seed.mjs
204node scripts/publish-catalog-bee.js catalog-source/pearbrowser-network.catalog.json --storage /Users/localllm/Projects/pear-ecosystem/03-sites/pearbrowser-publishers/catalog
204node scripts/publish-catalog-bee.js catalog-source/pearbrowser-network.catalog.json --storage ~/pear-ecosystem/03-sites/pearbrowser-publishers/catalog
205205npm run check:appling-release -- --tag v0.5.0 # desktop native packaging metadata, latest run passed
206206cd appling && npm ci && npm run generate && npm run build # desktop native local macOS build, latest run produced an ad-hoc signed PearBrowser.app
207207npm run package:appling -- --tag v0.5.0 # desktop native local macOS collection, produced PearBrowser-0.5.0-macos-arm64.app.zip
docs/RELEASE_SMOKE_EVIDENCE_LOG_2026-06-23.md +1 -1
……@@ -18,7 +18,7 @@ manual gate.
1818| Desktop PR/CI URL | PR #28: `https://github.com/bigdestiny2/pearbrowser-desktop/pull/28`; Desktop CI pull_request run `https://github.com/bigdestiny2/pearbrowser-desktop/actions/runs/28320741592`, job `83902114643`, passed |
1919| Mobile repo/head | `bigdestiny2/PearBrowser`, `main`, `9101200d8bb54ff31b21d6d90154cb2321756a6c` |
2020| Mobile preflight CI URL | `https://github.com/bigdestiny2/PearBrowser/actions/runs/28316870344` (`mobile-release-preflight` artifact downloaded and verified locally) |
21| macOS machine | `Locals-Mac-Studio.local`, macOS 26.4.1 build 25E253 |
21| macOS machine | `localhost`, macOS |
2222| iOS simulator/device(s) | Prior simulator proof in `PearBrowser/ios-native/BUILD.md`: iPhone 17 simulator green `Connected`; not rerun in this loop |
2323| Android emulator/device(s) | Prior emulator proof in `PearBrowser/android-native/BUILD.md`: headless `pp_avd` green `Connected`; not rerun in this loop |
2424| Network/location | Local shell in Asia/Dubai timezone; 2026-06-24 Pear hotfix release ran with real network access |
docs/SECURITY-BOUNDARY-ALIGNMENT-2026-06-23.md +19 -19
……@@ -2,7 +2,7 @@
22
33Generated: 2026-06-23
44Loop candidate: `pearbrowser-desktop-security-crosscheck`
5Source root: `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop`
5Source root: `~/pear-ecosystem/01-browser/pearbrowser-desktop`
66
77## Executive Status
88
……@@ -127,21 +127,21 @@ Local validation completed in this loop:
127127
128128## Source Evidence
129129
130- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/backend/hyper-proxy.js`
131- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/backend/http-bridge.js`
132- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/backend/pear-bridge.js`
133- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/backend/swarm-bridge.js`
134- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/backend/catalog-safety.cjs`
135- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/backend/sheets-catalog.js`
136- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/backend/index-room-client.js`
137- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/backend/capability-verify.cjs`
138- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/backend/search-handler.js`
139- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/backend/search-federation.cjs`
140- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/backend/identity-binding.cjs`
141- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/backend/nostr-binding-store.cjs`
142- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/backend/nostr-events-apply.cjs`
143- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/backend/federated-nostr-feed.cjs`
144- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/docs/SEARCH-HANDOVER.md`
145- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/docs/P2P-BROWSER-FEATURE-ROADMAP.md`
146- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/docs/DEEP_AUDIT_CATALOG_SEARCH_NAMING_NOSTR_2026-06-21.md`
147- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/docs/TEST-COMMAND-MATRIX-2026-06-23.md`
130- `~/pear-ecosystem/01-browser/pearbrowser-desktop/backend/hyper-proxy.js`
131- `~/pear-ecosystem/01-browser/pearbrowser-desktop/backend/http-bridge.js`
132- `~/pear-ecosystem/01-browser/pearbrowser-desktop/backend/pear-bridge.js`
133- `~/pear-ecosystem/01-browser/pearbrowser-desktop/backend/swarm-bridge.js`
134- `~/pear-ecosystem/01-browser/pearbrowser-desktop/backend/catalog-safety.cjs`
135- `~/pear-ecosystem/01-browser/pearbrowser-desktop/backend/sheets-catalog.js`
136- `~/pear-ecosystem/01-browser/pearbrowser-desktop/backend/index-room-client.js`
137- `~/pear-ecosystem/01-browser/pearbrowser-desktop/backend/capability-verify.cjs`
138- `~/pear-ecosystem/01-browser/pearbrowser-desktop/backend/search-handler.js`
139- `~/pear-ecosystem/01-browser/pearbrowser-desktop/backend/search-federation.cjs`
140- `~/pear-ecosystem/01-browser/pearbrowser-desktop/backend/identity-binding.cjs`
141- `~/pear-ecosystem/01-browser/pearbrowser-desktop/backend/nostr-binding-store.cjs`
142- `~/pear-ecosystem/01-browser/pearbrowser-desktop/backend/nostr-events-apply.cjs`
143- `~/pear-ecosystem/01-browser/pearbrowser-desktop/backend/federated-nostr-feed.cjs`
144- `~/pear-ecosystem/01-browser/pearbrowser-desktop/docs/SEARCH-HANDOVER.md`
145- `~/pear-ecosystem/01-browser/pearbrowser-desktop/docs/P2P-BROWSER-FEATURE-ROADMAP.md`
146- `~/pear-ecosystem/01-browser/pearbrowser-desktop/docs/DEEP_AUDIT_CATALOG_SEARCH_NAMING_NOSTR_2026-06-21.md`
147- `~/pear-ecosystem/01-browser/pearbrowser-desktop/docs/TEST-COMMAND-MATRIX-2026-06-23.md`
docs/TEST-COMMAND-MATRIX-2026-06-23.md +16 -16
……@@ -3,7 +3,7 @@
33Generated: 2026-06-23
44Loop candidate: `pearbrowser-desktop-test-matrix`
55Autonomy level: Level 1 docs-tests
6Source root: `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop`
6Source root: `~/pear-ecosystem/01-browser/pearbrowser-desktop`
77
88## Executive Status
99
……@@ -250,18 +250,18 @@ Run the PearBrowser Desktop release-evidence cleanup pass:
250250
251251## Source Evidence
252252
253- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/package.json`
254- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/backend/package.json`
255- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/examples/headless-tab/package.json`
256- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/docs/CURRENT_STATUS_AUDIT_2026-06-23.md`
257- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/docs/RELEASE_READINESS_2026-06-23.md`
258- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/docs/MANUAL_RELEASE_SMOKE_2026-06-23.md`
259- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/runtime-rpc-smoke.mjs`
260- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/check-release-evidence.mjs`
261- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/check-relays.js`
262- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/verify-pin.js`
263- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/verify-live-catalog.js`
264- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/verify-release-contents.js`
265- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/verify-app-full.js`
266- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/verify-pear-bundle-contract.js`
267- `/Users/localllm/Projects/pear-ecosystem/01-browser/pearbrowser-desktop/test`
253- `~/pear-ecosystem/01-browser/pearbrowser-desktop/package.json`
254- `~/pear-ecosystem/01-browser/pearbrowser-desktop/backend/package.json`
255- `~/pear-ecosystem/01-browser/pearbrowser-desktop/examples/headless-tab/package.json`
256- `~/pear-ecosystem/01-browser/pearbrowser-desktop/docs/CURRENT_STATUS_AUDIT_2026-06-23.md`
257- `~/pear-ecosystem/01-browser/pearbrowser-desktop/docs/RELEASE_READINESS_2026-06-23.md`
258- `~/pear-ecosystem/01-browser/pearbrowser-desktop/docs/MANUAL_RELEASE_SMOKE_2026-06-23.md`
259- `~/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/runtime-rpc-smoke.mjs`
260- `~/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/check-release-evidence.mjs`
261- `~/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/check-relays.js`
262- `~/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/verify-pin.js`
263- `~/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/verify-live-catalog.js`
264- `~/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/verify-release-contents.js`
265- `~/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/verify-app-full.js`
266- `~/pear-ecosystem/01-browser/pearbrowser-desktop/scripts/verify-pear-bundle-contract.js`
267- `~/pear-ecosystem/01-browser/pearbrowser-desktop/test`
docs/research/payments.md +9 -9
……@@ -675,15 +675,15 @@ External (web) sources — every external claim above is cited by number:
67567529. iroh — project repo (n0-computer/iroh). <https://github.com/n0-computer/iroh>
676676
677677Internal source files read for this doc (all absolute):
678- `/Users/localllm/Desktop/pear-pos/app/backend/payments.js` (crypto sale path, `status:'pending'`, no confirmation — verified by zero-hit grep)
679- `/Users/localllm/Desktop/pear-pos/app/backend/processors/{interface,registry,btcpay}.js` (adapter seam; btcpay `POLL_INTERVAL_MS=3000`, `Settled→CAPTURED`)
680- `/Users/localllm/Desktop/pear-pos/app/backend/config.js` (`DEFAULT_CONFIG`, `SENSITIVE_FIELDS` AES-256)
681- `/Users/localllm/Desktop/pear-pos/app/backend/receipt-delivery.js` (unsigned print/email/SMS)
682- `/Users/localllm/Desktop/pear-exchange/app/backend/escrow.js` (`createEscrowAPI`, fund/release/refund, signatures[])
683- `/Users/localllm/Desktop/pear-exchange/app/backend/escrow-btc.js` (`monitorAddress`/`monitorConfirmations`/`broadcastTx`, mempool.space/Blockstream, 2-of-3 P2WSH)
684- `/Users/localllm/Desktop/pear-exchange/app/backend/escrow-cashu.js` (NUT-11 P2PK, `verifySignatures`, placeholder mint URL)
685- `/Users/localllm/Desktop/pear-exchange/app/backend/crypto.js` (Ed25519 sign **and** verify; deterministic replay-bound messages)
686- `/Users/localllm/Desktop/pear-exchange/app/backend/price-feeds.js` (multi-source median + `rejectOutliers`)
678- `~/Desktop/pear-pos/app/backend/payments.js` (crypto sale path, `status:'pending'`, no confirmation — verified by zero-hit grep)
679- `~/Desktop/pear-pos/app/backend/processors/{interface,registry,btcpay}.js` (adapter seam; btcpay `POLL_INTERVAL_MS=3000`, `Settled→CAPTURED`)
680- `~/Desktop/pear-pos/app/backend/config.js` (`DEFAULT_CONFIG`, `SENSITIVE_FIELDS` AES-256)
681- `~/Desktop/pear-pos/app/backend/receipt-delivery.js` (unsigned print/email/SMS)
682- `~/Desktop/pear-exchange/app/backend/escrow.js` (`createEscrowAPI`, fund/release/refund, signatures[])
683- `~/Desktop/pear-exchange/app/backend/escrow-btc.js` (`monitorAddress`/`monitorConfirmations`/`broadcastTx`, mempool.space/Blockstream, 2-of-3 P2WSH)
684- `~/Desktop/pear-exchange/app/backend/escrow-cashu.js` (NUT-11 P2PK, `verifySignatures`, placeholder mint URL)
685- `~/Desktop/pear-exchange/app/backend/crypto.js` (Ed25519 sign **and** verify; deterministic replay-bound messages)
686- `~/Desktop/pear-exchange/app/backend/price-feeds.js` (multi-source median + `rejectOutliers`)
687687- `backend/identity.js` (sign/signForApp/getAppKeypair; verifier has since landed; seed-at-rest hardening remains separate)
688688- `backend/anongpt-buyer.js` (signed-receipt dial pattern; verify path has since been un-stubbed)
689689- `backend/autobee-catalog-ops.cjs` (op schema + `validateOp` tri-state template)
docs/research/privacy-routing.md +2 -2
……@@ -110,7 +110,7 @@ Every path below was read on `feat/phase5-relay-directory`.
11011012. RFC 9230 — *Oblivious DNS over HTTPS* (Independent Submission, experimental) — https://datatracker.ietf.org/doc/rfc9230/
11111113. *Private Information Retrieval* (Chor/Goldreich/Kushilevitz/Sudan) — https://www.cs.umd.edu/~gasarch/TOPICS/pir/first.pdf ; CPIR overview — https://en.wikipedia.org/wiki/Private_information_retrieval
11211214. iroh connectivity & relays (docs + DERP lineage) — https://docs.iroh.computer/concepts/relays ; https://www.iroh.computer/blog/what-is-derp (IP/NodeId-visibility synthesized — flagged)
11315. pear-pos Tor relay architecture (in-house prior art) — `/Users/localllm/Desktop/pear-pos/docs/tor-relay-architecture.md`
11315. pear-pos Tor relay architecture (in-house prior art) — `~/Desktop/pear-pos/docs/tor-relay-architecture.md`
11411416. HyperDHT / Hyperswarm privacy — README + privacy issues — https://github.com/holepunchto/hyperdht ; https://github.com/holepunchto/hyperdht/issues/50 ; https://github.com/holepunchto/hyperdht/issues/2
115115
116116## 6. Candidate approaches (with tradeoffs)
……@@ -341,7 +341,7 @@ External prior-art claims are cited inline by bracketed number to this list; int
34134112. RFC 9230 — *Oblivious DNS over HTTPS* (Independent Submission, experimental — "not endorsed by the IETF") — https://datatracker.ietf.org/doc/rfc9230/
34234213. *Private Information Retrieval* (Chor, Goldreich, Kushilevitz, Sudan) — https://www.cs.umd.edu/~gasarch/TOPICS/pir/first.pdf ; cPIR/itPIR overview — https://en.wikipedia.org/wiki/Private_information_retrieval ; CACM survey — https://cacm.acm.org/research/private-information-retrieval/
34334314. iroh connectivity & relays — https://docs.iroh.computer/concepts/relays ; DERP lineage (blog) — https://www.iroh.computer/blog/what-is-derp ; holepunching — https://www.iroh.computer/docs/protocols/net/holepunching (IP/NodeId-visibility synthesized from blog/docs — flagged; re-read the relay protocol spec before citing as load-bearing)
34415. pear-pos Tor relay architecture (in-house prior art, design-only, Node-20/Docker not Bare) — `/Users/localllm/Desktop/pear-pos/docs/tor-relay-architecture.md`
34415. pear-pos Tor relay architecture (in-house prior art, design-only, Node-20/Docker not Bare) — `~/Desktop/pear-pos/docs/tor-relay-architecture.md`
34534516. HyperDHT / Hyperswarm privacy — README (server-mode announces keypair to the DHT) — https://github.com/holepunchto/hyperdht ; privacy issues — https://github.com/holepunchto/hyperdht/issues/50 , https://github.com/holepunchto/hyperdht/issues/2 ; independent analysis — https://hypha.coop/dripline/p2p-primer-part-3/
346346
347347---
test/peerit-catalog.test.js +1 -1
……@@ -15,7 +15,7 @@ test('peerit is seeded as a browsable hypersite, not a standalone app', () => {
1515 assert.equal(app.type, 'hypersite')
1616 assert.equal(app.driveKey, PEERIT_KEY)
1717 assert.equal(app.link, PEERIT_URL)
18 assert.equal(app.author, 'defidon')
18 assert.equal(app.author, 'bigdestiny2')
1919 assert.equal(app.version, '1.0.0')
2020 assert.ok(app.categories.includes('featured'), 'peerit must be featured')
2121 assert.ok(app.categories.includes('site'))