{
"schemaVersion": 1,
"kind": "pearbrowser-origin-isolation-smoke-evidence",
"featureFlag": "PEARBROWSER_PER_DRIVE_ORIGINS=1",
"proofKey": "pear-origin-isolation-proof",
"apps": [
{
"label": "Peerit",
"url": "hyper://ec6e2d6d9d22b9d6b40e11a9ca3042be3197e4bdca9e9a7f079be6ee830761b4/",
"driveKey": "ec6e2d6d9d22b9d6b40e11a9ca3042be3197e4bdca9e9a7f079be6ee830761b4",
"origin": "http://127.0.0.1:59548"
},
{
"label": "Pearfeed",
"url": "hyper://5c2807c5ba1383e55d69a2fe5085fdeb563e2e18f175f363f3f18437219c1aec/",
"driveKey": "5c2807c5ba1383e55d69a2fe5085fdeb563e2e18f175f363f3f18437219c1aec",
"origin": "http://127.0.0.1:59549"
}
],
"storage": {
"proofKey": "pear-origin-isolation-proof",
"writtenValue": "peerit-1783173106615",
"appA": {
"localStorage": "peerit-1783173106615",
"cookie": "pear-origin-isolation-proof=peerit-1783173106615",
"indexedDB": "peerit-1783173106615"
},
"appB": {
"localStorage": null,
"cookie": "",
"indexedDB": null
}
},
"strictCsp": {
"status": "PASS",
"evidence": "automated verifier fetched Peerit strict-CSP fixture at http://127.0.0.1:59548/hyper/ec6e2d6d9d22b9d6b40e11a9ca3042be3197e4bdca9e9a7f079be6ee830761b4/index.html and verified CSP shim hashes without unsafe-inline"
},
"tabLifecycle": {
"status": "PASS",
"evidence": "automated verifier released Peerit listener and kept Pearfeed listener healthy at http://127.0.0.1:59549"
},
"realAppBridge": {
"status": "PASS",
"evidence": "automated verifier exercised /api/identity, /api/sync/create, /api/sync/append, /api/sync/get, /api/swarm/ticket, and /api/swarm/events through Peerit origin http://127.0.0.1:59548",
"routes": {
"identity": true,
"sync": true,
"swarmTicket": true,
"swarmEvents": true
}
},
"artifacts": [
"source plan: docs/origin-isolation-smoke-plan-peerit-pearfeed-2026-07-02.json",
"generated by scripts/generate-origin-isolation-smoke-evidence.mjs",
"validated by scripts/check-origin-isolation-smoke-evidence.mjs"
],
"automatedVerifier": {
"kind": "pearbrowser-origin-isolation-automated-verifier",
"generatedAt": "2026-07-04T13:51:46.643Z",
"mode": "local-hyperproxy-httpbridge-fixture",
"package": {
"name": "pearbrowser-desktop",
"version": "0.5.2"
},
"sourcePlan": "docs/origin-isolation-smoke-plan-peerit-pearfeed-2026-07-02.json",
"checks": [
{
"id": "feature-flag",
"ok": true,
"detail": "PEARBROWSER_PER_DRIVE_ORIGINS=1 is represented by HyperProxy perDriveOrigins=true",
"elapsedMs": 5
},
{
"id": "origin-split",
"ok": true,
"detail": "Peerit and Pearfeed resolved to distinct loopback origins",
"elapsedMs": 6,
"originA": "http://127.0.0.1:59548",
"originB": "http://127.0.0.1:59549"
},
{
"id": "app-a-load",
"ok": true,
"detail": "Peerit fixture loaded through its per-drive listener",
"elapsedMs": 14
},
{
"id": "app-b-load",
"ok": true,
"detail": "Pearfeed fixture loaded through its per-drive listener",
"elapsedMs": 14
},
{
"id": "app-a-token",
"ok": true,
"detail": "Peerit HTML includes a pear-api-token meta tag",
"elapsedMs": 14
},
{
"id": "app-b-token",
"ok": true,
"detail": "Pearfeed HTML includes a pear-api-token meta tag",
"elapsedMs": 14
},
{
"id": "app-a-base",
"ok": true,
"detail": "Peerit base href is bound to its own origin",
"elapsedMs": 14
},
{
"id": "app-b-base",
"ok": true,
"detail": "Pearfeed base href is bound to its own origin",
"elapsedMs": 14
},
{
"id": "strict-csp-shim-hashes",
"ok": true,
"detail": "strict CSP was preserved and authorized injected shims with hashes only",
"elapsedMs": 14,
"csp": "default-src 'self'; script-src 'self' 'sha256-MvYmdgMNmh9PW8VGFZJyUlNmLfA/09Gf0Y2bjnfcZ/o=' 'sha256-NKHHeju1zwR2neSTntfHBOVC0g2iZhguCTKlRIdI0Mg=' 'sha256-zb9zVCc9IiwpgE6NxVC65EJkBvMj+E5oM7d4uy78BgA='; connect-src 'self'; style-src 'self'"
},
{
"id": "bound-listener-forbids-other-drive",
"ok": true,
"detail": "Peerit origin refused Pearfeed drive content",
"elapsedMs": 15
},
{
"id": "storage-split",
"ok": true,
"detail": "browser storage buckets are split by the distinct loopback origins",
"elapsedMs": 15
},
{
"id": "bridge-identity",
"ok": true,
"detail": "/api/identity accepted the app A origin-bound token",
"elapsedMs": 16
},
{
"id": "bridge-token-origin-mismatch",
"ok": true,
"detail": "app A token was rejected from app B origin",
"elapsedMs": 17
},
{
"id": "bridge-sync",
"ok": true,
"detail": "/api/sync create/append/get worked through the origin-bound bridge",
"elapsedMs": 20
},
{
"id": "bridge-swarm-ticket",
"ok": true,
"detail": "/api/swarm/ticket minted an origin-bound SSE ticket",
"elapsedMs": 21
},
{
"id": "bridge-swarm-events",
"ok": true,
"detail": "/api/swarm/events accepted the ticket on the matching origin",
"elapsedMs": 27
},
{
"id": "tab-lifecycle-release",
"ok": true,
"detail": "Peerit listener was released while Pearfeed origin remained healthy",
"elapsedMs": 28
}
]
}
}