OverviewFilesCommitsIssuesDocsReleasesPeers

pearbrowser-desktop / docs / origin-isolation-smoke-evidence-peerit-pearfeed-2026-07-04.json

175 lines · json ref:
{
  "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
      }
    ]
  }
}