OverviewFilesCommitsIssuesDocsReleasesPeers

pearbrowser-desktop commits / 0088415

build: fail closed without embedded v3 runtime host
0088415f67c6b74372def008a10610393b93e93d
by bigdestiny2 <33146784+bigdestiny2@users.noreply.github.com> · 2026-07-22T19:50:35.000Z

Changed files (3) +19 -5

README.md +2 -2
……@@ -157,12 +157,12 @@ mkdir -p pear-ecosystem/01-browser
157157git clone https://github.com/bigdestiny2/pearbrowser-desktop pear-ecosystem/01-browser/pearbrowser-desktop
158158cd pear-ecosystem/01-browser/pearbrowser-desktop
159159npm install
160npm run start
160npm run start # fails closed until the embedded v3 runtime host is configured
161161```
162162
163163Source installs are standalone. The desktop packages default to npm `latest` for HiveRelay; the root package defaults to npm `latest` for `p2p-hiverelay`, `p2p-hiverelay-client`, and `p2p-hiverelay-verifier`, with the current dist-tag resolving to `0.20.2` in the lockfile, so a clone of just this repo resolves them from the registry. `npm install` runs `scripts/check-hiverelay-layout.mjs`, which exits quietly for the registry line and fails only if the HiveRelay dependency/lockfile line drifts or you opt into incomplete/mismatched `file:` workspace dependencies. A sibling `../../00-core/hiverelay` checkout is optional and only needed for HiveRelay co-development.
164164
165UI files use htm + React (no build step). Backend in `backend/` is CommonJS. The source checkout retains its native-shell development wiring while the v3 embedded-runtime host is completed; it does not accept remote app links as worker input.
165UI files use htm + React (no build step). Backend in `backend/` is CommonJS. The source checkout deliberately refuses to start through the removed v2 launcher until the v3 embedded-runtime host is complete; it does not accept remote app links as worker input.
166166
167167## Release pipeline
168168
package.json +3 -3
……@@ -6,8 +6,8 @@
66 "type": "module",
77 "scripts": {
88 "preinstall": "node scripts/check-hiverelay-layout.mjs",
9 "start": "pear run --dev .",
10 "run": "pear run .",
9 "start": "node scripts/native-runtime-required.mjs --dev",
10 "run": "node scripts/native-runtime-required.mjs",
1111 "check:release-evidence": "node scripts/check-release-evidence.mjs",
1212 "check:origin-isolation-smoke-evidence": "node scripts/check-origin-isolation-smoke-evidence.mjs",
1313 "generate:release-evidence-handoff": "node scripts/generate-release-evidence-handoff.mjs",
……@@ -30,7 +30,7 @@
3030 "package:macos-dmg": "node scripts/create-macos-dmg.mjs",
3131 "smoke:qvac:native": "node node_modules/bare/bin/bare qvac-smoke/index.mjs",
3232 "smoke:qvac:browser": "node node_modules/bare/bin/bare qvac-smoke/browser.mjs",
33 "smoke:qvac:pear": "pear run --dev ./qvac-smoke",
33 "smoke:qvac:pear": "node scripts/native-runtime-required.mjs --smoke qvac-smoke",
3434 "smoke:ask-browser:ui": "node qvac-smoke/ask-browser-ui.mjs",
3535 "smoke:ask-browser:native": "node node_modules/bare/bin/bare qvac-smoke/ask-browser.mjs",
3636 "smoke:runtime": "node scripts/runtime-rpc-smoke.mjs",
scripts/native-runtime-required.mjs +14 -0
……@@ -0,0 +1,14 @@
1#!/usr/bin/env node
2
3// The old source commands started PearBrowser through `pear run`. That command
4// accepted remote project links and hides the boundary a native v3 browser must
5// own. Do not revive it as a fallback. This guard stays explicit until the
6// pinned embedded runtime host, local worker boot/shutdown smoke, and native
7// package build are present in this checkout.
8
9const mode = process.argv.includes('--smoke') ? 'smoke' : process.argv.includes('--dev') ? 'development' : 'run'
10
11console.error(`PearBrowser v3 ${mode} host is not configured in this source checkout.`)
12console.error('Use a verified native package, or complete the embedded pear-runtime host migration first.')
13console.error('A remote pear:// record must never be passed to PearRuntime.run().')
14process.exitCode = 1