# 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.
