# 0045 — DM rooms creados por notify-developer.sh sin E2EE ## Objetivo El script `notify-developer.sh` (paso 12 del pipeline de creacion de agentes) crea salas DM sin encriptacion E2EE. Esto causa que Element muestre "End-to-end encryption isn't enabled" en las conversaciones con bots creados recientemente (father-bot, test-bot, test-personality), mientras que los bots mas antiguos (assistant-bot, asistente-2) tienen E2EE porque sus DMs fueron iniciados desde Element Web (que encripta por defecto). ## Contexto El `createRoom` actual usa `preset: trusted_private_chat` que configura permisos pero **no activa E2EE**. Para activar encriptacion se necesita un `initial_state` con evento `m.room.encryption`. Archivo afectado: `dev-scripts/agent/notify-developer.sh` (linea ~109). ## Arquitectura - `dev-scripts/agent/notify-developer.sh` — script bash (impuro, shell) - No hay cambios en `pkg/` (puro) ## Tareas ### Fase 1: Fix - [ ] 1.1 Agregar `initial_state` con `m.room.encryption` (algorithm `m.megolm.v1.aes-sha2`) al JSON del `createRoom` en `notify-developer.sh` ### Fase 2: Tests - [ ] 2.1 Test de shell que valide que el JSON del createRoom incluye encryption ### Fase 3: Docs - [ ] 3.1 Cerrar issue, mover a completed ## Ejemplo de uso Antes (sin E2EE): ```json { "is_direct": true, "invite": ["@dev:server"], "preset": "trusted_private_chat" } ``` Despues (con E2EE): ```json { "is_direct": true, "invite": ["@dev:server"], "preset": "trusted_private_chat", "initial_state": [ { "type": "m.room.encryption", "state_key": "", "content": { "algorithm": "m.megolm.v1.aes-sha2" } } ] } ``` ## Decisiones de diseno - Se usa `m.megolm.v1.aes-sha2` que es el algoritmo estandar de Matrix para group encryption. - El `preset: trusted_private_chat` se mantiene para los permisos (invite-only, admins). - No se requieren cambios en el codigo Go — solo el script bash. ## Prerequisitos Ninguno. ## Riesgos - Bajo: cambio minimo y bien definido en un solo archivo.