{
  "generatedAt": "2026-10-30T23:10:33.582Z",
  "scope": "Application service tests with SQLite and an in-process Request/Response receiver; TypeScript compilation",
  "testCommand": "node --test tests/operations.test.mjs",
  "typecheckCommand": "node node_modules/typescript/bin/tsc --noEmit",
  "passed": 24,
  "failed": 0,
  "typecheck": "passed",
  "sourceSha256": "0dcd3b907d7e76c3805af5186074b069b549bae606d6b2fc1ad32de40e3655a9",
  "sourceFiles": [
    "app/api/operations/[[...path]]/route.ts",
    "app/chatgpt-auth.ts",
    "app/evidence/page.tsx",
    "app/evidence/review.tsx",
    "app/globals.css",
    "app/lab/page.tsx",
    "app/lab/projects.tsx",
    "app/layout.tsx",
    "app/operations/page.tsx",
    "app/operations/workspace.tsx",
    "app/route.ts",
    "db/index.ts",
    "db/schema.ts",
    "drizzle/0000_green_ender_wiggin.sql",
    "drizzle/0001_real_blockbuster.sql",
    "drizzle/0002_rainy_guardian.sql",
    "lib/connector-context.ts",
    "lib/connector-preview.d.ts",
    "lib/connectors.ts",
    "lib/operations/core.mjs",
    "tests/adapter.mjs",
    "tests/operations.test.mjs"
  ],
  "tests": [
    "workspace seeds persistent rows and protected session",
    "request, offer, acceptance, delivery, completion and review",
    "company and workspace boundaries reject guessed and forged IDs",
    "CSRF, malformed payload and expired session are rejected",
    "pending providers require administrative verification",
    "competing acceptances create exactly one booking",
    "booking rejects invalid, stale and unauthorized transitions",
    "commerce price authority, idempotency, stock rollback and cancellation",
    "webhooks execute HTTP receiver and persist bounded retries",
    "bad signatures and stale timestamps never produce a receipt",
    "search paginates, normalizes Arabic and validates input",
    "database rejects negative stock independently of application logic",
    "saved workspace is bound to identity after claim and persona switch",
    "concurrent claimants cannot both acquire owner membership",
    "invited users cannot switch personas and invitation redemption is single-use",
    "barrier-controlled accept race has one booking, audit and notification",
    "barrier-controlled claims create one owner membership",
    "offer insertion is rejected if acceptance closes request during submit",
    "retry refreshes timestamp and interrupted last attempt becomes failed",
    "private documents require owning company or administrator",
    "server catalogue uses persisted SQL and does not accept query injection",
    "invited providers receive scoped reports and cannot access owner review labs",
    "export contains only the active workspace business data and no authentication or webhook secrets",
    "bounded request bodies and creation rate limits reject excess work before creating records"
  ],
  "limits": [
    "Does not verify the browser interface, accessibility, deployed D1/R2 or external networking.",
    "Does not constitute a penetration test, load test or production reliability assessment."
  ]
}
