Files
agents_and_robots/dev/issues/completed/0045-notify-encrypted-rooms.md
T
2026-04-10 22:44:23 +00:00

2.0 KiB

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):

{
  "is_direct": true,
  "invite": ["@dev:server"],
  "preset": "trusted_private_chat"
}

Despues (con E2EE):

{
  "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.