feat(episode): DEPURA_edge-case-codeheavy-john-pega_S20260406.R1_XX.imp.3.hot_inf.pr.fi.es.0RC.HPQ_J.PFDBX_E.CTNFD

Skill: NONE | Type: design
Summary: EPISODIO 31 — ANTES: EDGE CASE CODE-HEAVY: JOHN PEGA DOCKER-COMPOSE MASIVO CON..
This commit is contained in:
Ember 2026-04-13 13:07:56 +00:00
parent 995f8a9464
commit fb540f1b79

View file

@ -0,0 +1,56 @@
---
episode_id: "9e43a2e4-dace-4ad4-ab8d-213272ca1ca9"
puente_flat: "DEPURA_edge-case-codeheavy-john-pega_S20260406.R1_XX.imp.3.hot_inf.pr.fi.es.0RC.HPQ_J.PFDBX_E.CTNFD"
session_code: "S20260413"
acto_dialogico: "informar"
actor_flujo: "multi_actor"
criticidad_aegis: "moderate"
skill_dominante: "NONE"
fase_proyecto: "implementation"
tipo_semantico: "design"
summary_one_line: "EPISODIO 31 — ANTES: EDGE CASE CODE-HEAVY: JOHN PEGA DOCKER-COMPOSE MASIVO CON..."
source_type: "chat_ember"
trust_boundary: "private"
created_at: "2026-04-13T12:07:34.073619+00:00"
relectura_tagged: false
forgejo_commit_sha: "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`:
```yaml
# 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 ✅