{"status":"ok","runtime":"cloudflare-pages","edge":true,"checkedAt":"2026-07-23T22:23:51.912Z","portal":"/portal/health/","artifacts":{"opsSummary":{"exists":true,"generated":"2026-07-23T19:38:47.447Z","source":"snapshot"},"staticAggregate":{"exists":true},"monitoring":{"exists":true}},"registry":{"packages":16,"versions":25},"monitoring":{"packageCount":16,"dodQueue":0,"timestamp":"2026-07-23T19:38:47.463Z"},"bunApiProof":{"available":true,"generated":"2026-07-23T06:34:02.601Z","bunVersion":"1.4.0","summary":{"demos":46,"demosPassed":46,"apis":73,"apisVerified":73,"opsDemos":9,"apiDemos":37},"source":"github-raw"},"env":{"summary":{"total":3,"ok":3,"missing":0,"placeholder":0,"requiredMissing":0,"note":"Full secret checklist runs on origin: bun run env:check"},"table":[{"Key":"CLOUDFLARE_API_TOKEN","Group":"cloudflare","Severity":"required","Status":"edge-n/a","Detail":"set on build host / reasonix; not in Pages Function env by default"},{"Key":"R2 binding REGISTRY_BUCKET","Group":"r2","Severity":"required","Status":"binding","Detail":"Pages dashboard binding → factory-wager-registry"},{"Key":"ASSETS","Group":"pages","Severity":"required","Status":"set","Detail":"static file fetch for /registry/*"}],"requiredMissingKeys":[]},"routeStats":{"note":"from last ops snapshot routing slice (edge has no in-process static cache)","routing":{"available":true,"baseUrl":"https://score.factory-wager.com","passed":14,"total":16,"failed":2,"httpOk":14,"criticalFailed":0,"errorRate":0.125,"meanMs":220.79,"p50Ms":133.53,"p95Ms":537.32,"maxMs":537.32,"proofHash":"cdde6780dd64e8c9e17cb6158452b1ee0b9fcecb7c8e6824451c3378332f417a","timestamp":"2026-07-23T19:38:46.814Z","regressions":7,"criticalFailedPaths":[],"routes":[{"path":"/api/registry/@factorywager/test-pkg","status":200,"pass":false,"critical":false,"timeMs":444.21,"contentType":"text/html"},{"path":"/api/registry/static","status":400,"pass":false,"critical":false,"timeMs":32.87,"contentType":"application/json"},{"path":"/portal/ops/","status":200,"pass":true,"critical":true,"timeMs":133.53,"contentType":"text/html"},{"path":"/api/operations/summary","status":200,"pass":true,"critical":true,"timeMs":101.35,"contentType":"application/json"},{"path":"/api/monitoring","status":200,"pass":true,"critical":true,"timeMs":41.28,"contentType":"application/json"},{"path":"/registry/@factorywager/bun-utils-test/latest.json","status":200,"pass":true,"critical":true,"timeMs":36.52,"contentType":"application/json"},{"path":"/registry/ops-summary.json","status":200,"pass":true,"critical":true,"timeMs":36.14,"contentType":"application/json"},{"path":"/health","status":200,"pass":true,"critical":false,"timeMs":537.32,"contentType":"text/html"},{"path":"/api/registry/@factorywager/bun-utils-test/latest.json","status":200,"pass":true,"critical":false,"timeMs":510.78,"contentType":"application/json"},{"path":"/api/registry/@factorywager/routing-test/latest.json","status":200,"pass":true,"critical":false,"timeMs":474.69,"contentType":"application/json"},{"path":"/api/registry","status":400,"pass":true,"critical":false,"timeMs":342.63,"contentType":"application/json"},{"path":"/ready","status":200,"pass":true,"critical":false,"timeMs":304.9,"contentType":"text/html"},{"path":"/portal","status":200,"pass":true,"critical":false,"timeMs":187.65,"contentType":"text/html"},{"path":"/monitoring","status":200,"pass":true,"critical":false,"timeMs":143.26,"contentType":"text/html"},{"path":"/registry/@factorywager/routing-test/latest.json","status":200,"pass":true,"critical":false,"timeMs":103.2,"contentType":"application/json"},{"path":"/registry/static.json","status":200,"pass":true,"critical":false,"timeMs":102.29,"contentType":"application/json"}],"cached":false,"stale":false}},"serve":{"strategies":{"static":"Pages ASSETS + optional R2 for registry keys","file":"large artifacts via R2/ASSETS stream"},"etagScope":"edge /api/health is snapshot-based (no process uptime)"}}