{
  "repo": "serverless-service",
  "full_name": "tidbcloud/serverless-service",
  "status": "scan_complete",
  "scan_started_at": "2026-03-25T00:00:00Z",
  "scan_completed_at": "2026-03-27T23:20:00+08:00",
  "expected_binaries": [
    {
      "name": "server",
      "path": "cmd/server/main.go",
      "status": "completed",
      "role": "primary_service"
    }
  ],
  "scanned_binaries": [
    {
      "name": "server",
      "output_file": "cmd-server"
    }
  ],
  "skipped_binaries": [],
  "files_generated": [
    "interfaces/cmd-server.json",
    "service-mapping/cmd-server.json"
  ],
  "review_status": "pending_review",
  "review_participants": [
    "codex"
  ],
  "review_cycles": 0,
  "codex_rescan_at": "2026-03-30T22:20:50+08:00",
  "codex_rescan_verdict": "scan_complete",
  "codex_rescan_note": "Fresh codex rescan rebuilt serverless-service around the real cobra runtime modes of cmd/server, converted the legacy proto-derived output into canonical method keys, added eventbus subscriber and worker-task surfaces, treated grpc-gateway exposure as transport aliases instead of duplicate business methods, and recorded the highest-signal cross-service conditions for cluster, branch, billing, import, backup, jobs, and ops paths. A follow-up outward-expansion pass for tidb-management-service root-call-graph work then canonicalized the spend-limit chain: GetSpendLimit and GetSpendLimitDetails now point to the concrete billing HTTP roots instead of abstract BillingService helper names, SetSpendLimit is no longer empty but records the real mgmt GetCluster gate plus the billing GET/POST/PUT branches used for create-versus-modify behavior, and DeleteSpendLimit now records the real mgmt GetCluster gate plus the billing GET/DELETE sequence used to remove an existing spend-limit setting. A later canonicalization pass also rewired the remaining clusterproxy helper aliases used by console cluster/branch and RPC branch-user paths onto the canonical clusterproxy TiDBService.QueryByNamespacedCluster and TiDBService.ExecuteByNamespacedCluster roots, and normalized the accompanying account JWT lookup onto the existing canonical account root AccessService.GetJwtByUser.",
  "scan_progress": "1/1",
  "statistics": {
    "total_binaries": 1,
    "total_services": 36,
    "total_methods": 250,
    "output_files": 2
  }
}
