{
  "timestamp": "2026-05-07T15:06:57.647461+08:00",
  "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260507-145720-5140af",
  "profile": "__runtime_batch-20260507-145720-5140af",
  "concurrency": 3,
  "resume_mode": "each",
  "pending_song_count": 2,
  "groups": [
    {
      "group_index": 1,
      "songs": [
        "/srv/music-files-platform-next/pipeline/batch-20260507-145720-5140af/01_People_20260507",
        "/srv/music-files-platform-next/pipeline/batch-20260507-145720-5140af/02_Calm Down_20260507"
      ],
      "success_count": 2,
      "failed_count": 0,
      "results": [
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260507-145720-5140af/01_People_20260507",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260507-145720-5140af/01_People_20260507/step2_json_b.json",
          "agent_summary": "API direct: Fold Before Dawn",
          "returncode": 0,
          "stderr": "",
          "attempt": 1,
          "attempts": [
            {
              "status": "success",
              "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260507-145720-5140af/01_People_20260507",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260507-145720-5140af/01_People_20260507/step2_json_b.json",
              "agent_summary": "API direct: Fold Before Dawn",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        },
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260507-145720-5140af/02_Calm Down_20260507",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260507-145720-5140af/02_Calm Down_20260507/step2_json_b.json",
          "agent_summary": "API direct: Sugarcane Rush",
          "returncode": 0,
          "stderr": "",
          "attempt": 1,
          "attempts": [
            {
              "status": "success",
              "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260507-145720-5140af/02_Calm Down_20260507",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260507-145720-5140af/02_Calm Down_20260507/step2_json_b.json",
              "agent_summary": "API direct: Sugarcane Rush",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        }
      ]
    }
  ],
  "resume": {
    "status": "success",
    "returncode": 0,
    "stdout_tail": "\n======================================================================\nmusic-pipeline3000 v2 | 2 songs\n======================================================================\nGemini concurrency: 2 | Suno concurrency: 3\nOutput: /srv/music-files-platform-next/pipeline/batch-20260507-145720-5140af\nSkip Suno: False | Step1 only: False | Version: v4\n======================================================================\n\n[15:09:06] 🏥 Health check...\n[15:09:08] ✅ qishui: OK\n[15:09:08] ✅ netease: OK\n[15:09:08] ✅ qq: OK\n\n  📝 [01_People_20260507] lyrics stripped: 4299c → 4293c\n[15:09:08] 🎵 [01_People_20260507] Step 3: Suno generation (weirdness=50, style_influence=50)...\n[15:09:08] 🎨 [01_People_20260507] Step 4: SeeDream cover (parallel)...\n  📝 [02_Calm Down_20260507] lyrics stripped: 6896c → 5000c\n[15:09:08] 🎵 [02_Calm Down_20260507] Step 3: Suno generation (weirdness=50, style_influence=50)...\n[15:09:08] 🎨 [02_Calm Down_20260507] Step 4: SeeDream cover (parallel)...\n  ✅ submitted: ['0fd926f2', 'f5001d3d']\n  ✅ submitted: ['f7d29f6d', 'a13a1cc3']\n  🎵 0fd926f2... → submitted\n  🎵 f5001d3d... → submitted\n  🎵 f7d29f6d... → submitted\n  🎵 a13a1cc3... → submitted\n  🎵 0fd926f2... → queued\n  🎵 f5001d3d... → queued\n  🎵 f7d29f6d... → queued\n  🎵 a13a1cc3... → queued\n  🎵 0fd926f2... → streaming\n  🎵 f5001d3d... → streaming\n  🎵 f7d29f6d... → streaming\n  🎵 a13a1cc3... → streaming\n  🎵 0fd926f2... → complete\n  🎵 f7d29f6d... → complete\n  🎵 a13a1cc3... → complete\n[15:11:36]    🎧 [01_People_20260507] Song 1: https://cdn1.suno.ai/f7d29f6d-b169-4e9f-b1d3-fb2fa011768e.mp3\n[15:11:36]    🎧 [01_People_20260507] Song 2: https://cdn1.suno.ai/a13a1cc3-19d7-43dc-8d5d-874ec564dc2d.mp3\n[15:11:36] 🎛️ [01_People_20260507] Step 3.5: 混音...\n[15:11:54]    🎚️ [01_People_20260507] Song 1: pop | 低66/中31/高3%\n  🎵 f5001d3d... → complete\n[15:11:54]    🎧 [02_Calm Down_20260507] Song 1: https://cdn1.suno.ai/0fd926f2-929f-4db3-9def-c9925e0516bd.mp3\n[15:11:54]    🎧 [02_Calm Down_20260507] Song 2: https://cdn1.suno.ai/f5001d3d-1051-4cba-aaa4-82c94bd5eeae.mp3\n[15:11:54] 🎛️ [02_Calm Down_20260507] Step 3.5: 混音...\n[15:12:09]    🎚️ [01_People_20260507] Song 2: edm | 低60/中37/高3%\n[15:12:09] ✅ [01_People_20260507] Step 3.5: 32.9s | 2 songs mixed\n[15:12:09] ⚠️  [01_People_20260507] Step 4: http_403 (non-fatal)\n[15:12:22]    🎚️ [02_Calm Down_20260507] Song 1: pop | 低78/中20/高2%\n[15:12:35]    🎚️ [02_Calm Down_20260507] Song 2: pop | 低77/中20/高4%\n[15:12:35] ✅ [02_Calm Down_20260507] Step 3.5: 41.3s | 2 songs mixed\n[15:12:35] ⚠️  [02_Calm Down_20260507] Step 4: http_403 (non-fatal)\n\n======================================================================\nSUMMARY | 207s (3.5min)\n======================================================================\n✅ Done: 2 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0\n[MasterDB] ✅ 批次 batch-20260507-145720-5140af → +2 新增, ~0 更新 | 总计 638 首\n",
    "stderr_tail": "[profile] ✅ Loaded profile '__runtime_batch-20260507-145720-5140af' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260507-145720-5140af.yaml\n",
    "summary": {
      "timestamp": "2026-05-07T15:12:35.516813+08:00",
      "wall_clock": 207.3,
      "total": 2,
      "success": 2,
      "awaiting_step2": 0,
      "failed": 0
    }
  },
  "status": "success"
}