{
  "schemaVersion": 1,
  "completedAt": "2026-09-27T09:34:22.389Z",
  "command": "npm run validation:report",
  "runner": "Node.js test runner with tsx; tests/*.test.ts",
  "environment": {
    "node": "24.9.0",
    "next": "15.5.24",
    "react": "19.2.8",
    "platform": "darwin",
    "architecture": "arm64",
    "storage": "Isolated local SQLite test databases",
    "email": "Simulated provider responses"
  },
  "sourceSha256": "407920df7c5c8957cb7e1b4978ad4bfc231bc5d407441992fa984db5927124c5",
  "total": 43,
  "passed": 43,
  "failed": 0,
  "tests": [
    {
      "name": "Catalog rejects duplicate identities, URLs, ordering, missing covers and malformed dimensions",
      "result": "passed"
    },
    {
      "name": "Photo and series identities survive renamed slugs and rearranged display order",
      "result": "passed"
    },
    {
      "name": "Build prepares only published imports and rejects missing delivery assets or stale dimensions",
      "result": "passed"
    },
    {
      "name": "Collections resolve an explicit cross-shoot sequence without changing canonical photo records",
      "result": "passed"
    },
    {
      "name": "Collection validation rejects missing, duplicate, cross-source and unavailable references",
      "result": "passed"
    },
    {
      "name": "Unlisted old series stay routable; new source-only series do not gain routes or inquiry references",
      "result": "passed"
    },
    {
      "name": "Configured featured works resolve and preserve the single 16-photo Graduation collection",
      "result": "passed"
    },
    {
      "name": "Hero curation resolves the configured distinct published landscape photographs with descriptive alternatives",
      "result": "passed"
    },
    {
      "name": "Slideshow navigation wraps in both directions and skips failed photographs",
      "result": "passed"
    },
    {
      "name": "T06 multilingual names and empty optional fields are accepted",
      "result": "passed"
    },
    {
      "name": "T07 runtime validation catches wrong types, email, length, enum, impossible date, and extra data",
      "result": "passed"
    },
    {
      "name": "T04/T05 public references are allowlisted, arbitrary objects and traversal are rejected",
      "result": "passed"
    },
    {
      "name": "T08 simultaneous requests create exactly one durable record; a restart can replay the receipt",
      "result": "passed"
    },
    {
      "name": "T08 same key different payload conflicts; same email with a new key is allowed",
      "result": "passed"
    },
    {
      "name": "T09 failed storage cannot return a successful receipt",
      "result": "passed"
    },
    {
      "name": "Rate limiting is durable and retries do not consume another slot",
      "result": "passed"
    },
    {
      "name": "T10 failure preserves the record; concurrent workers send once and explicit retry recovers",
      "result": "passed"
    },
    {
      "name": "T10 uncertain sends and interrupted workers require review before resend",
      "result": "passed"
    },
    {
      "name": "Preview notification processing does not claim acceptance",
      "result": "passed"
    },
    {
      "name": "Retention removes only resolved old records and retains unresolved notifications",
      "result": "passed"
    },
    {
      "name": "T02 catalog photos exist, are nonempty, and all covers belong to the series",
      "result": "passed"
    },
    {
      "name": "Outbox processing finds an old pending record behind more than 100 resolved records",
      "result": "passed"
    },
    {
      "name": "Reference display name is resolved by the server and preserved with the inquiry",
      "result": "passed"
    },
    {
      "name": "Resend adapter uses a fixed recipient/subject, plain text and a stable provider idempotency key",
      "result": "passed"
    },
    {
      "name": "A Vercel runtime fails closed without durable remote storage",
      "result": "passed"
    },
    {
      "name": "Operator review exports one private record without overwriting files or changing notification state",
      "result": "passed"
    },
    {
      "name": "Public series have unique routes and stable inquiry IDs; featured order is explicit",
      "result": "passed"
    },
    {
      "name": "Publication and curated sorting apply before route lookup; renaming a slug preserves identity",
      "result": "passed"
    },
    {
      "name": "Sitemap and public API expose the same published series links",
      "result": "passed"
    },
    {
      "name": "Stored return positions reject unsafe paths, malformed values and expired visits",
      "result": "passed"
    },
    {
      "name": "Local photo dimensions match oriented files; remote delivery preserves series identity and order",
      "result": "passed"
    },
    {
      "name": "Delivery assets reject unapproved hosts, mutable paths and malformed dimensions",
      "result": "passed"
    },
    {
      "name": "T06/T08 receipt comes after persistence, is retry-safe, and never returns customer data",
      "result": "passed"
    },
    {
      "name": "Local loopback aliases are accepted for the same port",
      "result": "passed"
    },
    {
      "name": "T07/T11 route rejects cross-origin, invalid content type, extra privileged fields, malformed and oversized bodies",
      "result": "passed"
    },
    {
      "name": "T05 stale reference returns a correctable field error and creates no record",
      "result": "passed"
    },
    {
      "name": "Production notification attempts run after persistence; retries do not resend accepted jobs and failures still return a receipt",
      "result": "passed"
    },
    {
      "name": "Production environment values with surrounding whitespace still send the saved inquiry once",
      "result": "passed"
    },
    {
      "name": "T09 database failure produces an uncertain-receipt error, never success",
      "result": "passed"
    },
    {
      "name": "Studio validates selections, own-series covers, ordering and both crop bounds",
      "result": "passed"
    },
    {
      "name": "Curation changes public covers and featured order while preserving photo order and URLs",
      "result": "passed"
    },
    {
      "name": "Local editor is disabled in production and rejects remote hosts and cross-site requests",
      "result": "passed"
    },
    {
      "name": "Atomic save backs up the prior version; stale, concurrent and invalid writes cannot overwrite it",
      "result": "passed"
    }
  ]
}
