2546e43ee2
Añade un campo `sender effects.MatrixSender` al struct Agent que reemplaza las llamadas directas a `a.matrix` para enviar mensajes (sendReply, typing, SendMarkdown en handleTaskEvent). En produccion, sender apunta al mismo *matrix.Client. Esto permite inyectar un spy en tests sin requerir una conexion real a Matrix. El campo `a.matrix` se mantiene para operaciones que no son de envio (SetPresence, Raw, etc.). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>