{
  "repo": "aipower",
  "full_name": "tidbcloud/aipower",
  "status": "scan_complete",
  "scan_started_at": "2026-03-27T20:20:00+08:00",
  "scan_completed_at": "2026-03-27T20:20:00+08:00",
  "expected_binaries": [
    {
      "name": "api",
      "path": "cmd/api/main.go",
      "status": "completed",
      "role": "primary_service"
    }
  ],
  "scanned_binaries": [
    {
      "name": "api",
      "output_file": "cmd-api"
    }
  ],
  "skipped_binaries": [],
  "files_generated": [
    "interfaces/cmd-api.json",
    "service-mapping/cmd-api.json"
  ],
  "current_binary": null,
  "scan_progress": "1/1",
  "review_status": "pending_review",
  "review_participants": [
    "codex"
  ],
  "review_cycles": 0,
  "codex_rescan_at": "2026-03-27T20:20:00+08:00",
  "codex_rescan_verdict": "approved",
  "codex_rescan_note": "Fresh codex rescan invalidated the old approved result. cmd/api was rebuilt from a legacy mixed schema into a canonical lifecycle + HTTP + metrics + gRPC surface with 27/27 interface-to-mapping coverage. The new scan corrected several old distortions: the HTTP router only installs CheckRequestBodySize globally and does not actually attach CheckUser/CheckPermission middleware; the main startup path also launches a background measure-report scheduler indirectly through InitMeasure(...); and the real runtime splits into separate HTTP, metrics, and gRPC listeners. Method-level mapping now distinguishes the gRPC ChatBot path from the HTTP InteractBot path, captures rate-limit behavior only on the gRPC entrypoint, records OpenAI sync-vs-stream branches, tracks Redis persistence for streamed completions, and ties metadata lookup/dry-run validation to the actual dataservices calls (GetClusterMeta, GetDatabaseMeta, ExecSqlDirectly). The repo is scan-complete for codex, but overall review remains pending because there is not yet source-backed triple-consensus approval evidence."
}
