{
 "at": "2026-10-05T00:08:10.861Z",
 "passed": 16,
 "failed": 0,
 "results": [
  {
   "group": "data",
   "name": "Game data contracts",
   "cmd": "pnpm data:test",
   "ok": true,
   "seconds": 7,
   "tail": "# pass 93\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 6839.115083"
  },
  {
   "group": "data",
   "name": "Docs lint",
   "cmd": "pnpm docs:lint",
   "ok": true,
   "seconds": 0,
   "tail": "> zoen@0.1.0 docs:lint /Users/king/Desktop/Workspace/SRO/zoen\n> node tools/docs-lint.mjs && node tools/build-docs-index.mjs\n\ndocs-lint: 45 files, 38 widgets used, 0 problems\nINDEX.md: 39 docs, 37 data files, 41212 words"
  },
  {
   "group": "data",
   "name": "Public data is fresh and allow-listed",
   "cmd": "pnpm data:public:check",
   "ok": true,
   "seconds": 0,
   "tail": "> zoen@0.1.0 data:public:check /Users/king/Desktop/Workspace/SRO/zoen\n> node packages/game-data/scripts/export-public.mjs --check\n\n✔ public-data is fresh"
  },
  {
   "group": "db",
   "name": "Database rules (pgTAP)",
   "cmd": "pnpm db:test",
   "ok": true,
   "seconds": 2,
   "tail": "/Users/king/Desktop/Workspace/SRO/zoen/packages/db/supabase/tests/170_game_demo.sql ...... ok\n/Users/king/Desktop/Workspace/SRO/zoen/packages/db/supabase/tests/180_site_switches.sql .. ok\nAll tests successful.\nFiles=18, Tests=194,  1 wallclock secs ( 0.04 usr  0.01 sys +  0.08 cusr  0.04 csys =  0.17 CPU)\nResult: PASS\nConnecting to local database..."
  },
  {
   "group": "db",
   "name": "No type drift",
   "cmd": "pnpm db:types:check",
   "ok": true,
   "seconds": 1,
   "tail": "\n\n> @zoen/db@0.1.0 types:check /Users/king/Desktop/Workspace/SRO/zoen/packages/db\n> node scripts/types.mjs --check\n\n✔ database types match the live schema"
  },
  {
   "group": "db",
   "name": "Database package unit tests",
   "cmd": "pnpm --filter @zoen/db test",
   "ok": true,
   "seconds": 3,
   "tail": "# pass 17\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 2523.949583"
  },
  {
   "group": "security",
   "name": "Web tools tests",
   "cmd": "pnpm web:tools:test",
   "ok": true,
   "seconds": 0,
   "tail": "# pass 7\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 96.644292"
  },
  {
   "group": "security",
   "name": "Secrets scan",
   "cmd": "pnpm web:secrets-scan",
   "ok": true,
   "seconds": 1,
   "tail": "> zoen@0.1.0 web:secrets-scan /Users/king/Desktop/Workspace/SRO/zoen\n> node tools/web/secrets-scan.mjs\n\n✔ secrets-scan: 1475 text files clean (3472 files listed)"
  },
  {
   "group": "security",
   "name": "Dependency licences",
   "cmd": "node tools/web/deps-audit.mjs --check",
   "ok": true,
   "seconds": 1,
   "tail": "deps-audit: 789 packages · 18 licence kinds · 0 disallowed · 1 with install scripts\n  ✓ @anthropic-ai/claude-agent-sdk: Unknown — reviewed (Anthropic Commercial Terms (licence file in the package))\n  ✓ @anthropic-ai/claude-agent-sdk-darwin-arm64: Unknown — reviewed (Anthropic Commercial Terms (licence file in the package))\n  · unrs-resolver@1.12.2: postinstall (blocked by pnpm unless approved)"
  },
  {
   "group": "site",
   "name": "Site e2e (desktop, tablet, phone, accessibility)",
   "cmd": "pnpm site:e2e",
   "ok": true,
   "seconds": 118,
   "tail": "  -  65 [mobile] › tests/e2e/support.spec.ts:87:3 › support center › @seo sitemap and robots\n  ✓  63 [mobile] › tests/e2e/smoke.spec.ts:15:1 › @smoke 360 px phones have no sideways scroll (1.1s)\n  ✓  66 [mobile] › tests/e2e/support.spec.ts:97:3 › support center › @support page is clean on every screen size (1.6s)\n\n  27 skipped\n  39 passed (1.8m)"
  },
  {
   "group": "site",
   "name": "Leak scan of the built site",
   "cmd": "pnpm --filter @zoen/site build && pnpm site:leakscan",
   "ok": true,
   "seconds": 8,
   "tail": "\n\n> @zoen/site@0.1.0 leakscan /Users/king/Desktop/Workspace/SRO/zoen/apps/site\n> node scripts/leakscan.mjs\n\n✔ leakscan: 592 built files clean (8 canaries, 6 secret values)"
  },
  {
   "group": "site",
   "name": "Lighthouse scores (mobile)",
   "cmd": "pnpm site:lighthouse --scores-only",
   "ok": true,
   "seconds": 90,
   "tail": "✔ /game/builds           perf 98 · a11y 100 · bp 100 · seo 100 · LCP 2412 ms · CLS 0 · TBT 10 ms\n✔ /game/builds/ravager   perf 94 · a11y 100 · bp 100 · seo 100 · LCP 3080 ms · CLS 0 · TBT 6 ms\n✔ /news                  perf 96 · a11y 100 · bp 100 · seo 100 · LCP 2780 ms · CLS 0 · TBT 10 ms\n✔ /support               perf 92 · a11y 100 · bp 100 · seo 100 · LCP 3305 ms · CLS 0 · TBT 11 ms\n✔ /alpha                 perf 93 · a11y 100 · bp 100 · seo 100 · LCP 3233 ms · CLS 0 · TBT 11 ms\n✔ lighthouse: 7 pages within budget"
  },
  {
   "group": "admin",
   "name": "Admin e2e (every module, all sizes, role matrix)",
   "cmd": "pnpm admin:e2e",
   "ok": true,
   "seconds": 273,
   "tail": "  103 skipped\n  116 passed (4.5m)\n[WebServer] ⨯ Error: The destination stream closed early.\n[WebServer]     at ignore-listed frames {\n[WebServer]   digest: '4011478435'\n[WebServer] }"
  },
  {
   "group": "integration",
   "name": "Site + admin together",
   "cmd": "pnpm web:e2e:integration",
   "ok": true,
   "seconds": 81,
   "tail": "  ✓  14 [integration] › tests/integration/publish.spec.ts:8:1 › @integration a post published in the console is on the site at once and leaves when archived (24.5s)\n\n  14 passed (1.1m)\n[WebServer] Error: Unexpected cache miss after cache warming phase during prerendering. This is likely caused by non-deterministic arguments that differ between the cache warming phase and the final prerender phase (e.g. unstable array order). Ensure that arguments passed to cached functions are deterministic.\n[WebServer]     at ab (.next/server/chunks/ssr/_0llpe4_._.js:16:27562)\n[WebServer]     at async h (.next/server/chunks/ssr/[root-of-the-server]__1u3ygg2._.js:1:1405)"
  },
  {
   "group": "ai",
   "name": "AI worker (prompt fence, fake end-to-end)",
   "cmd": "pnpm ai:test",
   "ok": true,
   "seconds": 1,
   "tail": "# pass 3\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 585.309"
  },
  {
   "group": "wiki",
   "name": "Wiki routes and dependencies unchanged",
   "cmd": "pnpm wiki:build && pnpm web:guard",
   "ok": true,
   "seconds": 8,
   "tail": "   \"tests/round8.spec.ts\"\n  ]\n }\n}\n\n✔ wiki-guard: no wiki routes lost, wiki dependencies and lock sections unchanged (changed source files listed above for attribution)"
  }
 ]
}
