- Dockerfile minimal con Python 3.11
- docker-compose.yml con volumenes controlados
- .dockerignore para build eficiente
- Script de inicio start.sh
- .env.example para configuración
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Elimina líneas hline duplicadas
- Mejora limpieza de comandos LaTeX en celdas
- Usa regex para manejar {contenido}
- Filtra celdas vacías
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Compara nombres exactos (stem.txt) en vez de substrings
- Agrega verificación en callback de descarga
- Evita re-procesamiento de archivos
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Corrige PDFGenerator para pasar contenido (no ruta)
- Agrega prompt siguiendo código.md (español, estructura académica)
- Limpia thinking tokens de respuesta AI
- Agrega skip de archivos ya procesados en watcher
- Implementa tablas LaTeX en PDFs (reportlab Table)
- Agrega load_dotenv() en main.py
- Actualiza .env con MiniMax config
- Agrega transcriptions/ a .gitignore
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Implementa ProcessingMonitor singleton para procesamiento secuencial de archivos
- Agrega AI summary service con soporte para MiniMax API
- Agrega PDF generator para resúmenes
- Agrega watchers para monitoreo de carpeta remota
- Mejora sistema de notificaciones Telegram
- Implementa gestión de VRAM para GPU
- Configuración mediante variables de entorno (sin hardcoded secrets)
- .env y transcriptions/ agregados a .gitignore
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Cambios principales:
## Nuevos archivos
- services/ai/parallel_provider.py: Ejecución paralela de múltiples proveedores AI
- services/ai/prompt_manager.py: Gestión centralizada de prompts (resumen.md como fuente)
- latex/resumen.md: Template del prompt para resúmenes académicos LaTeX
## Mejoras en generación LaTeX (document/generators.py)
- Nueva función _sanitize_latex(): Corrige automáticamente errores comunes de AI
- Agrega align=center a nodos TikZ con saltos de línea (\\)
- Previene errores 'Not allowed in LR mode' antes de compilar
- Soporte para procesamiento paralelo de proveedores AI
- Conversión DOCX en paralelo con generación PDF
- Uploads a Notion en background (non-blocking)
- Callbacks de notificación para progreso en Telegram
## Mejoras en proveedores AI
- claude_provider.py: fix_latex() con instrucciones específicas para errores TikZ
- gemini_provider.py: fix_latex() mejorado + rate limiting + circuit breaker
- provider_factory.py: Soporte para parallel provider
## Otros cambios
- config/settings.py: Nuevas configuraciones para Gemini models
- services/webdav_service.py: Mejoras en manejo de conexión
- .gitignore: Ignora archivos LaTeX auxiliares (.aux, .toc, .out, .pdf)
## Archivos de ejemplo
- latex/imperio_romano.tex, latex/clase_revolucion_rusa_crisis_30.tex
- resumen_curiosidades.tex (corregido y compilado exitosamente)
## ✨ Novedades
- **Soporte LaTeX**: Generación de PDFs y DOCX con fórmulas matemáticas renderizadas correctamente usando Pandoc.
- **Sanitización Automática**: Corrección de caracteres Unicode (griegos/cirílicos) y sintaxis LaTeX para evitar errores de compilación.
- **GLM/Claude Prioritario**: Cambio de proveedor de IA predeterminado a Claude/GLM para mayor estabilidad y capacidad de razonamiento.
- **Mejoras en Formato**: El formateo final del resumen ahora usa el modelo principal (GLM) en lugar de Gemini para consistencia.
## 🛠️ Cambios Técnicos
- `document/generators.py`: Reemplazo de generación manual por `pandoc`. Añadida función `_sanitize_latex`.
- `services/ai/claude_provider.py`: Soporte mejorado para variables de entorno de Z.ai.
- `services/ai/provider_factory.py`: Prioridad ajustada `Claude > Gemini`.
- `latex/`: Añadida documentación de referencia para el pipeline LaTeX.
- Instalado notion-client SDK oficial para integración robusta
- Refactorizado services/notion_service.py con SDK oficial de Notion
- Rate limiting con retry y exponential backoff
- Parser Markdown → Notion blocks (headings, bullets, paragraphs)
- Soporte para pages y databases
- Manejo robusto de errores
- Integración automática en document/generators.py
- PDFs se suben automáticamente a Notion después de generarse
- Contenido completo del resumen formateado con bloques
- Metadata rica (tipo de archivo, path, fecha)
- Configuración de Notion en main.py
- Inicialización automática al arrancar el servicio
- Validación de credenciales
- Actualizado config/settings.py
- Agregado load_dotenv() para cargar variables de .env
- Configuración de Notion (NOTION_API, NOTION_DATABASE_ID)
- Scripts de utilidad creados:
- test_notion_integration.py: Test de subida a Notion
- test_pipeline_notion.py: Test del pipeline completo
- verify_notion_permissions.py: Verificación de permisos
- list_notion_pages.py: Listar páginas accesibles
- diagnose_notion.py: Diagnóstico completo
- create_notion_database.py: Crear database automáticamente
- restart_service.sh: Script de reinicio del servicio
- Documentación completa en opus.md:
- Análisis exhaustivo del codebase (42 archivos Python)
- Bugs críticos identificados y soluciones
- Mejoras de seguridad (autenticación, rate limiting, CORS, CSP)
- Optimizaciones de rendimiento (Celery, Redis, PostgreSQL, WebSockets)
- Plan de testing (estructura, ejemplos, 80% coverage goal)
- Roadmap de implementación (6 sprints detallados)
- Integración avanzada con Notion documentada
Estado: Notion funcionando correctamente, PDFs se suben automáticamente
🚀 Mejoras principales:
- Dashboard Flask ahora corre en thread daemon independiente
- Integración con python-dotenv para variables de entorno
- Configuración de puerto vía DASHBOARD_PORT (default: 5000)
- Mejor logging con Thread-ID para debugging
📦 Nuevos archivos:
- kubectl: binary de Kubernetes para deployments
- plus.md: documentación adicional del proyecto
- todo.md: roadmap y tareas pendientes
🔧 Cambios técnicos:
- run_dashboard_thread(): ejecuta Flask en thread separado
- start_dashboard(): crea y arranca daemon thread
- Configuración de reloader desactivado en threaded mode
Esto permite que el dashboard corra sin bloquear el loop principal
de procesamiento, mejorando la arquitectura del servicio.
- Corregir endpoints /api/transcription y /api/summary para manejar filenames con extensión
- Agregar endpoint /api/versions para listar archivos generados
- Agregar tab 'Versiones' en panel lateral con lista de archivos
- Mejorar modal de progreso con barra animada y estados
- Cambiar archivos para que se abran en pestaña en lugar de descargarse
- Agregar botón 'Regenerar' en lista de archivos procesados