{
  "repo": "tidbcloud/ecosystem-service",
  "full_name": "tidbcloud/ecosystem-service",
  "status": "pending_review",
  "scan_started_at": "2026-03-25T13:00:00+08:00",
  "scan_completed_at": "2026-03-25T13:30:00+08:00",
  "review_status": "pending_review",
  "expected_binaries": [
    {
      "name": "server",
      "path": "cmd/server/main.go",
      "status": "completed",
      "role": "primary_service"
    },
    {
      "name": "worker",
      "path": "cmd/worker/main.go",
      "status": "completed",
      "role": "worker"
    },
    {
      "name": "migrate",
      "path": "cmd/migrate/main.go",
      "status": "completed",
      "role": "admin_cli"
    }
  ],
  "scanned_binaries": [
    {
      "name": "server",
      "output_file": "cmd-server"
    },
    {
      "name": "worker",
      "output_file": "cmd-worker"
    },
    {
      "name": "migrate",
      "output_file": "cmd-migrate"
    }
  ],
  "skipped_binaries": [],
  "files_generated": [
    "interfaces/cmd-server.json",
    "service-mapping/cmd-server.json",
    "interfaces/cmd-worker.json",
    "service-mapping/cmd-worker.json",
    "interfaces/cmd-migrate.json",
    "service-mapping/cmd-migrate.json"
  ],
  "scan_summary": {
    "http_routes": 26,
    "cron_jobs": 4,
    "background_workers": 6,
    "grpc_dependencies": 6,
    "external_apis": 4
  },
  "codex_rescan_at": "2026-03-28T09:43:35+08:00",
  "codex_rescan_verdict": "stale_fixed",
  "codex_rescan_note": "Manual meta validation showed role drift in addition to the earlier route audit. cmd/worker is a background worker with a metrics listener rather than a user-facing primary service, and cmd/migrate is an operator CLI that spins up a temporary MySQL container to print migration DDL instead of a skipped runtime. The approved state was downgraded to pending_review because the repo-level runtime scope changed."
}
