Files
graph_explorer/issues/0020-email-bot-ingest.md
T
egutierrez 9042110ea2 docs(issues): plan enrichers asincronos + recoleccion web (0026-0030)
Cinco issues que componen el plan:
- 0026: sistema de jobs (infra, contrato wire)
- 0027: tipo Webpage + cache de documentos
- 0028: enricher fetch_webpage (MVP end-to-end)
- 0028b: enrichers extract_domain / extract_links / extract_text_entities
- 0029: variantes CDP (Chrome headless, screenshot)
- 0030: macro "Deep enrich" + expand_domain

Tambien anade los issues previos 0012-0025 que estaban untracked.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 18:24:13 +02:00

1.5 KiB

id, title, status, priority, created, depends_on
id title status priority created depends_on
0020 Ingesta via email forwarding y bot Telegram/Signal pending low 2026-05-01
0012

Objetivo

Ingerir entidades sin estar delante del PC. Util para capturar cosas sobre la marcha (movil, lectura en otra pantalla, conversaciones).

Canales

  • Email: direccion dedicada (mailbox o alias) que se chequea via IMAP cada N minutos. Adjuntos -> ingesta como en 0015. Cuerpo -> extract.
  • Bot Telegram/Signal: forwardear un mensaje, una imagen, o escribir comandos (/add empresa Acme, /relate Acme owns Bravo). El bot habla con el endpoint 0012.

Alcance

  • Cliente IMAP minimo o uso de un MTA local (postfix+dovecot) que redirija a un script.
  • Bot Telegram: BotFather + python-telegram-bot o equivalente Go (vive en apps/<bot_name>/ con tag service).
  • Auth: solo procesar mensajes de chat IDs / direcciones whitelisted en config.
  • Confirmacion: el bot responde con preview ("¿añado estas 3 entidades? responde 'si' o 'no'") antes de commit.

Decisiones

  • Bot self-hosted (no SaaS) — corre como service en VPS o en el PC.
  • Multiples grafos: el bot puede targetear distintos operations.db segun el chat de origen (mapping en config).

Definicion de hecho

  • Reenvio un PDF a la direccion dedicada y, en menos de 2 minutos, veo las entidades en el grafo con notificacion del bot.
  • El bot rechaza mensajes de chat IDs no autorizados sin responder.
  • Comando /search Acme desde el bot devuelve hits del grafo.