4.6 KiB
4.6 KiB
Sprint v0.1.5 - Cerrar Async Real y Probar Section-Aware de Punta a Punta
Fecha: 2026-03-30
Este sprint reemplaza a docs/SPRINT_v0.1.4_NEXT.md como sprint activo.
Estado de partida real
temp\smoke_test_async.pyya no falla por parsing ni por shape incorrecto deget_tracks- evidencia actual en
temp\smoke_test_async_report.json:connection_check: PASSlaunch_async_job: PASSverify_tracks_created: PASSpoll_job_status: FAIL por timeout a 300s
- durante ese timeout la cantidad de tracks subio de
122a165, asi que el job estaba haciendo trabajo real reference_listener.pysigue usando logica hardcoded en_select_candidate()y no hay evidencia runtime deJOINT_SCORE
Objetivo
Pasar de "hay trabajo real ocurriendo pero sin cierre observable" a "el sistema async y el section-aware tienen evidencia end-to-end o un bug localizado con precision".
Tarea 1 - Instrumentar el job async de verdad
Problema:
- el smoke test ya no esta roto en lo basico
- ahora el problema real es que el job no completa dentro del timeout de 300s
- hoy no hay suficiente visibilidad de en que etapa exacta se queda
Haz esto:
- agregar mas
stageupdates en el flujo async real - guardar
last_progress_atolast_commanden_generation_jobs - si el job sigue vivo, el polling debe mostrar progreso util
- si el job queda colgado, debe quedar claro en que etapa exacta
Archivos:
AbletonMCP_AI/AbletonMCP_AI/MCP_Server/server.pytemp\smoke_test_async.py
Criterio de salida:
get_generation_job_statusdevuelve informacion util mientras corre- el reporte final incluye
last_status,last_stagey evidencia de progreso real
Tarea 2 - Determinar si el timeout es lentitud o cuelgue
Problema:
- hoy sabemos que el job crea tracks, pero no si termina tarde o si se queda en loop
- el proceso del smoke test puede seguir vivo despues del timeout porque el worker sigue corriendo
Haz esto:
- correr
python temp\smoke_test_async.py --use-track --genre reggaeton --bpm 95 - medir cuanto tarda hasta completarse de verdad
- si tarda mas de 300s pero completa, documentarlo y ajustar timeout/reporting
- si no completa, localizar el bucle o cuello de botella
Pistas actuales:
- logs muestran muchos
get_track_routing - logs muestran
ZAIJudgescon429y backoff - logs muestran creacion sostenida de tracks y devices
Criterio de salida:
- queda claro si el problema es performance, bloqueo o falta de cierre de estado
Tarea 3 - Probar o cablear section-aware de verdad
Problema:
reference_listener.pysetea contexto por seccion- pero
_select_candidate()sigue usando logica hardcoded - no hay evidencia runtime de
SECTION_CONTEXTniJOINT_SCOREen generacion real
Haz esto:
- capturar logs reales de una generacion con
SECTION_CONTEXT - demostrar si
JOINT_SCOREentra o no entra - si no entra, cablear la seleccion real al
SampleSelectoro documentar explicitamente que sigue desacoplada
Archivos:
AbletonMCP_AI/AbletonMCP_AI/MCP_Server/reference_listener.pyAbletonMCP_AI/AbletonMCP_AI/MCP_Server/sample_selector.py
Criterio de salida:
- hay evidencia runtime o fix real, no solo narrativa
Tarea 4 - Reducir latencia inutil en la ruta de generacion
Problema:
- los
429deZAIJudgesy ciertos loops de consultas a Live pueden inflar la duracion del job
Haz esto:
- medir cuanto aportan los retries de Z.ai al tiempo total
- revisar si
get_track_routingo consultas similares estan ocurriendo demasiado - si hace falta, agregar modo smoke-test con judges desactivados o mas agresivamente cacheados
Archivos:
AbletonMCP_AI/AbletonMCP_AI/MCP_Server/zai_judges.pyAbletonMCP_AI/AbletonMCP_AI/MCP_Server/server.py
Criterio de salida:
- una corrida de smoke test tiene tiempo explicable y acotado
Tarea 5 - Solo despues seguir con mejoras musicales
No entres primero aca.
Primero cierra Tareas 1-4.
Recien despues:
- mejorar coherencia musical por seccion
- hacer que groove extraction afecte el ritmo real
- seguir afinando reggaeton selection
Reglas duras
- usa PowerShell, no bash
- usa rutas absolutas de Windows en docs
- no declares exito por compilacion sola
- no inventes root causes si no estan respaldados por codigo o runtime
- si el smoke test cambia de fallo, actualiza el handoff activo
Comandos utiles
python temp\smoke_test_async.py --use-track --genre reggaeton --bpm 95
Get-Content temp\smoke_test_async_report.json
Get-Content "$env:APPDATA\Ableton\Live 12.0.15\Preferences\Log.txt" -Tail 200
rg -n "_generation_jobs|last_progress_at|stage|get_track_routing" AbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.py