Skill: NONE | Type: design Summary: EPISODIO 31 — ANTES: EDGE CASE CODE-HEAVY: JOHN PEGA DOCKER-COMPOSE MASIVO CON..
3.1 KiB
| episode_id | puente_flat | session_code | acto_dialogico | actor_flujo | criticidad_aegis | skill_dominante | fase_proyecto | tipo_semantico | summary_one_line | source_type | trust_boundary | created_at | relectura_tagged | forgejo_commit_sha |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 9e43a2e4-dace-4ad4-ab8d-213272ca1ca9 | DEPURA_edge-case-codeheavy-john-pega_S20260406.R1_XX.imp.3.hot_inf.pr.fi.es.0RC.HPQ_J.PFDBX_E.CTNFD | S20260413 | informar | multi_actor | moderate | NONE | implementation | design | EPISODIO 31 — ANTES: EDGE CASE CODE-HEAVY: JOHN PEGA DOCKER-COMPOSE MASIVO CON... | chat_ember | private | 2026-04-13T12:07:34.073619+00:00 | false | pending |
El bug está en la configuración de redes de mnemo-api. El servicio mnemo-api está conectado ÚNICAMENTE a la red ember-net, pero el servicio postgres (y todos los demás servicios del stack) están conectados ÚNICAMENTE a la red mnemo-net. Las redes ember-net y mnemo-net son redes Docker separadas — los containers en redes distintas NO pueden comunicarse directamente entre sí por nombre de servicio (postgres:5432).
El hostname postgres solo es resolvible dentro de la red mnemo-net. Cuando mnemo-api intenta conectarse a postgresql://mnemo:...@postgres:5432/mnemo_plex, Docker DNS NO puede resolver postgres porque mnemo-api no está en mnemo-net. El resultado es un error de tipo could not translate host name "postgres" to address: Name or service not known.
El siguiente diff muestra el fix: agregar mnemo-net a las redes de mnemo-api:
# ANTES (buggy):
mnemo-api:
networks:
- ember-net # solo ember-net → NO puede ver postgres, qdrant, neo4j
# DESPUÉS (correcto):
mnemo-api:
networks:
- ember-net # para acceso desde otros servicios externos
- mnemo-net # para acceso a postgres, qdrant y neo4j del stack interno
VERIFICADO: En Docker Compose, un container puede estar en múltiples redes simultáneamente. La práctica recomendada para servicios que necesitan comunicarse con ambas una red externa (ember-net) y una red interna del stack (mnemo-net) es listar ambas bajo networks: en el servicio.
HIPÓTESIS: El bug original puede haberse generado al copiar la configuración de redes de otro servicio del ecosistema EMBER que solo necesitaba ember-net. Este es un error de copia frecuente en docker-compose multi-stack.
GROUND TRUTH (abreviado)
Entidades: MEMORIA CX53 (implícito), PostgreSQL (existente), Qdrant (existente), Neo4j (existente), ember-net (existente), mnemo-net (existente)
Negaciones:
- "NO pueden comunicarse directamente" → negación de conectividad
- "NO puede resolver
postgres" → negación de DNS - "NO puede ver postgres, qdrant, neo4j" (en comentario YAML)
Code snippets challenge: El episodio tiene ~1100 palabras de YAML + 1 diff YAML. ¿code_snippets extractor reporta el número correcto? ¿Los backtick inline como postgres:5432 y ember-net se cuentan como snippets individuales?
Clasificación: mode=troubleshooting (intent>content: el intent es "encontrar el bug", no "documentar config")
TP-7 check: Los bloques YAML/diff tienen párrafos introductorios en la misma sección ✅