Skip to content

fix(compose): devuelve scheduler y hub al fichero versionado

isidro requested to merge fix/restore-orphan-services into main

Qué pasaba

cmoagent-scheduler-1 y cmoagent-hub-1 llevaban 8 días corriendo sin estar definidos en docker-compose.yml: se lanzaron el 27-jul desde un compose que nunca se commiteó. Conservaban la imagen y el entorno con que nacieron — incluida la master key de LiteLLM, que hacía su gasto inatribuible (agent-cmoagent marcaba $0.00 de $12 mientras el scheduler llamaba al LLM cada hora).

Lo que no está en este fichero queda fuera del alcance de docker compose build: los fixes del !41 (merged)/!42 (merged)/!43 (merged) no llegaban a estos dos.

Por qué las imágenes van pinned

hub-server y schedule-loop ya no existen en el CLIpython -m agents.gaming_cmo --help no los lista. Reconstruir desde el fuente actual mete a ambos contenedores en crash-loop con invalid choice: 'hub-server'; verificado en carne propia al intentarlo. Por eso quedan pinned a la imagen del 27-jul, etiquetada como cmoagent-legacy-{hub,scheduler}:20260727.

El puente de la key

Ese código del 27-jul es anterior a la precedencia de LITELLM_API_KEY y lee solo LITELLM_MASTER_KEY. Se le pasa la misma virtual key bajo el nombre que espera:

  • con el valor vacío caería en silencio al planner determinista, perdiendo Claude;
  • con la master real volvería a gastar sin dueño.

Así conserva funcionalidad y el gasto queda atribuido a agent-cmoagent. La línea se retira cuando las imágenes se reconstruyan.

Decisión pendiente

Rehacer las imágenes desde el fuente actual (implica devolver los subcomandos al CLI) o retirar los dos servicios. Hoy funcionan, pero corren código congelado hace 9 días.

Test plan

  • docker compose config válido con los 6 servicios
  • docker compose up -d scheduler hub → ambos healthy
  • curl http://127.0.0.1:8791/agent-manifestHTTP 200 (antes y después)
  • docker inspect → ambos con la VK (sk-04r-…), sin la master (sk-litellm-…)
  • Heartbeat del scheduler presente tras el recreate

Merge request reports