{
  "repo": "dataapps",
  "full_name": "tidbcloud/dataapps",
  "status": "scan_complete",
  "scan_started_at": "2026-03-26T10:00:00+08:00",
  "scan_completed_at": "2026-03-27T09:01:59+08:00",
  "expected_binaries": [
    {
      "name": "sqleditor",
      "path": "cmd/sqleditor/main.go",
      "status": "completed",
      "role": "primary_service"
    },
    {
      "name": "chat2queryapi",
      "path": "cmd/chat2queryapi/main.go",
      "status": "completed",
      "role": "primary_service"
    }
  ],
  "scanned_binaries": [
    {
      "name": "sqleditor",
      "output_file": "cmd-sqleditor"
    },
    {
      "name": "chat2queryapi",
      "output_file": "cmd-chat2queryapi"
    }
  ],
  "skipped_binaries": [],
  "files_generated": [
    "interfaces/cmd-sqleditor.json",
    "interfaces/cmd-chat2queryapi.json",
    "service-mapping/cmd-sqleditor.json",
    "service-mapping/cmd-chat2queryapi.json"
  ],
  "review_status": "pending_review",
  "review_participants": [
    "codex"
  ],
  "review_cycles": 0,
  "codex_rescan_at": "2026-03-27T09:01:59+08:00",
  "codex_rescan_verdict": "scan_complete",
  "codex_rescan_note": "Fresh codex rescan rebuilt chat2queryapi and sqleditor from the runtime entrypoints, converted both outputs to canonical method-level schemas, removed the dangling AuthApiKey mapping key, restored sqleditor's separate metrics, gRPC, inner-oplog, and EDA proxy surfaces, and tightened route conditions based on real middleware registration order instead of legacy Always placeholders.",
  "scan_progress": "2/2",
  "statistics": {
    "total_binaries": 2,
    "total_services": 10,
    "total_methods": 60,
    "output_files": 4
  }
}
