{
  "timestamp": "2026-06-27T23:03:45.433754+08:00",
  "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2",
  "profile": "__runtime_batch-20260627-230040-6d84a2",
  "concurrency": 3,
  "resume_mode": "end",
  "pending_song_count": 4,
  "groups": [
    {
      "group_index": 1,
      "songs": [
        "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/01_琵琶曲（东船与西舫）_20260627",
        "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/02_踏山河 (DJ Yaha)_20260627",
        "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/03_身骑白马_20260627"
      ],
      "success_count": 3,
      "failed_count": 0,
      "results": [
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/01_琵琶曲（东船与西舫）_20260627",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/01_琵琶曲（东船与西舫）_20260627/step2_json_b.json",
          "agent_summary": "API direct: 这一场江湖 偏偏为你停",
          "returncode": 0,
          "stderr": "",
          "attempt": 1,
          "attempts": [
            {
              "status": "success",
              "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/01_琵琶曲（东船与西舫）_20260627",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/01_琵琶曲（东船与西舫）_20260627/step2_json_b.json",
              "agent_summary": "API direct: 这一场江湖 偏偏为你停",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        },
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/02_踏山河 (DJ Yaha)_20260627",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/02_踏山河 (DJ Yaha)_20260627/step2_json_b.json",
          "agent_summary": "API direct: 烈骨未凉",
          "returncode": 0,
          "stderr": "",
          "attempt": 1,
          "attempts": [
            {
              "status": "success",
              "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/02_踏山河 (DJ Yaha)_20260627",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/02_踏山河 (DJ Yaha)_20260627/step2_json_b.json",
              "agent_summary": "API direct: 烈骨未凉",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        },
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/03_身骑白马_20260627",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/03_身骑白马_20260627/step2_json_b.json",
          "agent_summary": "API direct: 烈火渡我去找你",
          "returncode": 0,
          "stderr": "",
          "attempt": 1,
          "attempts": [
            {
              "status": "success",
              "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/03_身骑白马_20260627",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/03_身骑白马_20260627/step2_json_b.json",
              "agent_summary": "API direct: 烈火渡我去找你",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        }
      ]
    },
    {
      "group_index": 2,
      "songs": [
        "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/04_半壶纱(DJ名龙版)_20260627"
      ],
      "success_count": 1,
      "failed_count": 0,
      "results": [
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/04_半壶纱(DJ名龙版)_20260627",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/04_半壶纱(DJ名龙版)_20260627/step2_json_b.json",
          "agent_summary": "API direct: 你是我渡不过的那条河",
          "returncode": 0,
          "stderr": "",
          "attempt": 1,
          "attempts": [
            {
              "status": "success",
              "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/04_半壶纱(DJ名龙版)_20260627",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260627-230040-6d84a2/04_半壶纱(DJ名龙版)_20260627/step2_json_b.json",
              "agent_summary": "API direct: 你是我渡不过的那条河",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        }
      ]
    }
  ],
  "resume": {
    "status": "success",
    "returncode": 0,
    "stdout_tail": "kip Suno: False | Step1 only: False | Version: v4\n======================================================================\n\n[23:07:26] 🏥 Health check...\n[23:07:28] ✅ qishui: OK\n[23:07:28] ✅ netease: OK\n[23:07:28] ✅ qq: OK\n\n  📝 [01_琵琶曲（东船与西舫）_20260627] lyrics stripped: 2445c → 2438c\n[23:07:28] 🎵 [01_琵琶曲（东船与西舫）_20260627] Step 3: Suno generation (weirdness=50, style_influence=50)...\n  📝 [02_踏山河 (DJ Yaha)_20260627] lyrics stripped: 3254c → 3247c\n[23:07:28] 🎵 [02_踏山河 (DJ Yaha)_20260627] Step 3: Suno generation (weirdness=50, style_influence=50)...\n  📝 [03_身骑白马_20260627] lyrics stripped: 3083c → 3076c\n[23:07:28] 🎵 [03_身骑白马_20260627] Step 3: Suno generation (weirdness=50, style_influence=50)...\n  📝 [04_半壶纱(DJ名龙版)_20260627] lyrics stripped: 2847c → 2841c\n[23:07:28] 🎵 [04_半壶纱(DJ名龙版)_20260627] Step 3: Suno generation (weirdness=50, style_influence=50)...\n  ✅ submitted: ['961632d8', 'a4ff46cd']\n  ✅ submitted: ['4b604746', 'ec3e36c5']\n  🎵 961632d8... → submitted\n  🎵 a4ff46cd... → submitted\n  ✅ submitted: ['6bd4a127', 'cad86530']\n  🎵 4b604746... → submitted\n  🎵 ec3e36c5... → submitted\n  🎵 6bd4a127... → submitted\n  🎵 cad86530... → submitted\n  🎵 961632d8... → queued\n  🎵 a4ff46cd... → queued\n  🎵 4b604746... → queued\n  🎵 ec3e36c5... → queued\n  🎵 6bd4a127... → queued\n  🎵 cad86530... → queued\n  🎵 6bd4a127... → streaming\n  🎵 a4ff46cd... → streaming\n  🎵 4b604746... → streaming\n  🎵 ec3e36c5... → streaming\n  🎵 cad86530... → streaming\n  🎵 961632d8... → streaming\n  🎵 961632d8... → complete\n  🎵 a4ff46cd... → complete\n[23:09:52]    🎧 [01_琵琶曲（东船与西舫）_20260627] Song 1: https://cdn1.suno.ai/961632d8-13f3-4f98-b245-c0b49645903a.mp3\n[23:09:52]    🎧 [01_琵琶曲（东船与西舫）_20260627] Song 2: https://cdn1.suno.ai/a4ff46cd-9be5-41a9-bbc9-65a28dfab6bd.mp3\n[23:09:52] 🎛️ [01_琵琶曲（东船与西舫）_20260627] Step 3.5: 混音...\n  ✅ submitted: ['fbc9d0ec', '2dbf5c5d']\n[23:10:16]    🎚️ [01_琵琶曲（东船与西舫）_20260627] Song 1: pop | 低44/中55/高2%\n  ⏱  poll timeout, retry...\n  🎵 6bd4a127... → complete\n  🎵 cad86530... → complete\n[23:10:16]    🎧 [03_身骑白马_20260627] Song 1: https://cdn1.suno.ai/6bd4a127-bd70-46b7-870a-75256c6fb66c.mp3\n[23:10:16]    🎧 [03_身骑白马_20260627] Song 2: https://cdn1.suno.ai/cad86530-e576-4334-adbb-9f30eab78957.mp3\n[23:10:16] 🎛️ [03_身骑白马_20260627] Step 3.5: 混音...\n[23:10:33]    🎚️ [01_琵琶曲（东船与西舫）_20260627] Song 2: pop | 低43/中55/高2%\n[23:10:33] ✅ [01_琵琶曲（东船与西舫）_20260627] Step 3.5: 40.7s | 2 songs mixed\n  🎵 fbc9d0ec... → streaming\n  🎵 2dbf5c5d... → streaming\n[23:10:54]    🎚️ [03_身骑白马_20260627] Song 1: edm | 低68/中29/高4%\n[23:11:15]    🎚️ [03_身骑白马_20260627] Song 2: edm | 低65/中32/高3%\n[23:11:15] ✅ [03_身骑白马_20260627] Step 3.5: 59.4s | 2 songs mixed\n  🎵 4b604746... → complete\n  🎵 ec3e36c5... → complete\n[23:11:21]    🎧 [02_踏山河 (DJ Yaha)_20260627] Song 1: https://cdn1.suno.ai/4b604746-4828-494f-9fa8-743ec034b5ad.mp3\n[23:11:21]    🎧 [02_踏山河 (DJ Yaha)_20260627] Song 2: https://cdn1.suno.ai/ec3e36c5-e6c1-4e6b-9e55-095fc97fe73e.mp3\n[23:11:21] 🎛️ [02_踏山河 (DJ Yaha)_20260627] Step 3.5: 混音...\n[23:11:47]    🎚️ [02_踏山河 (DJ Yaha)_20260627] Song 1: pop | 低52/中44/高4%\n[23:12:14]    🎚️ [02_踏山河 (DJ Yaha)_20260627] Song 2: pop | 低58/中39/高3%\n[23:12:14] ✅ [02_踏山河 (DJ Yaha)_20260627] Step 3.5: 53.2s | 2 songs mixed\n  🎵 fbc9d0ec... → complete\n  🎵 2dbf5c5d... → complete\n[23:12:14]    🎧 [04_半壶纱(DJ名龙版)_20260627] Song 1: https://cdn1.suno.ai/fbc9d0ec-db61-47f2-8c7f-7be4cdbcf151.mp3\n[23:12:14]    🎧 [04_半壶纱(DJ名龙版)_20260627] Song 2: https://cdn1.suno.ai/2dbf5c5d-7970-4fdc-95bb-7f624b5687ad.mp3\n[23:12:14] 🎛️ [04_半壶纱(DJ名龙版)_20260627] Step 3.5: 混音...\n[23:12:37]    🎚️ [04_半壶纱(DJ名龙版)_20260627] Song 1: edm | 低64/中31/高5%\n[23:13:00]    🎚️ [04_半壶纱(DJ名龙版)_20260627] Song 2: edm | 低74/中21/高6%\n[23:13:00] ✅ [04_半壶纱(DJ名龙版)_20260627] Step 3.5: 46.0s | 2 songs mixed\n\n======================================================================\nSUMMARY | 332s (5.5min)\n======================================================================\n✅ Done: 4 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0\n[MasterDB] ✅ 批次 batch-20260627-230040-6d84a2 → +4 新增, ~0 更新 | 总计 797 首\n",
    "stderr_tail": "[profile] ✅ Loaded profile '__runtime_batch-20260627-230040-6d84a2' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260627-230040-6d84a2.yaml\nUnclosed connection\nclient_connection: Connection<ConnectionKey(host='localhost', port=12138, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)>\nUnclosed connection\nclient_connection: Connection<ConnectionKey(host='localhost', port=12138, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)>\nUnclosed connection\nclient_connection: Connection<ConnectionKey(host='localhost', port=12138, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)>\nUnclosed connection\nclient_connection: Connection<ConnectionKey(host='localhost', port=12138, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)>\nUnclosed connection\nclient_connection: Connection<ConnectionKey(host='localhost', port=12138, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)>\nUnclosed connection\nclient_connection: Connection<ConnectionKey(host='localhost', port=12138, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)>\nUnclosed connection\nclient_connection: Connection<ConnectionKey(host='localhost', port=12138, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)>\nUnclosed connection\nclient_connection: Connection<ConnectionKey(host='localhost', port=12138, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)>\n",
    "summary": {
      "timestamp": "2026-06-27T23:13:00.648617+08:00",
      "wall_clock": 332.3,
      "total": 4,
      "success": 4,
      "awaiting_step2": 0,
      "failed": 0
    }
  },
  "status": "success"
}