⚒ transforma-cuba
← back to repo
Commit history
* 1816bcc (HEAD -> main) docs(design): estado editable persiste en el volumen a través de updates
* 9f7b99f chore(deploy): Makefile con atajos airgapped (make airgap-usb, -tar, -smoke)
* 7114519 fix(deploy): persistir los almacenes editables nuevos en el volumen /data
* 3dc2dde docs(design): integrar la pantalla de alertas en el diseño
* a290af9 feat(alertas): pantalla #/alertas + badge en la navegación
* b173aa7 feat(alertas): motor de alertas por prioridad (backend)
* 82fe884 docs: spec de alertas (medidas a vigilar por prioridad)
* 3c3e991 docs(design): integrar configuración editable e ingestión en el diseño
* e52c96b feat(config): UI editable de modelo y fuentes en #/setup
* c20be11 feat(config): modelo y fuentes editables en caliente (backend)
* 24e3efe docs: spec de configuración editable (modelo + fuentes)
* e08e451 feat(setup): ingestión de documentos → indicadores + estado de pasos (nivel 2)
* 9c409e8 docs(spec): ingestión de documentos → indicadores + estado de pasos (nivel 2)
* 4951914 feat(setup): sección Fuentes de opinión real + Buscar ahora
* 3236cad fix(web): topbar isolation:isolate — arregla bloque blanco al scrollear
* 24f24ca feat(setup): sección Modelo de IA con config real + probar conexión
* d089cf0 feat(web): navegación principal como desplegable en vez de pills
* cf5d92a feat(opinion): la lectura de cada segmento acumula todas sus fotos
* 996ca79 fix(firecrawl): reintentos sobre 5xx (el scrapeo da 502 intermitentes)
* 8464c04 refactor(opinion): reemplaza Tavily por Firecrawl como motor de búsqueda
* 57fd44b docs(design): opinión persiste en beaver (no JSON)
* 9edbbf8 chore(opinion): semilla con las fotos reales ya publicadas
* b7d8207 refactor(opinion): store en beaver + arregla el pipeline de opinión
* ed6b918 docs(design): reescribe DESIGN.md como síntesis top-down actual
* 6180741 fix(airgapped): usar network_mode host para alcanzar el LLM local
* ab3419e feat(deploy): update-usb-drive.sh + airgap-smoke.sh (e2e verificado)
* e1e5b8c feat(deploy): install.sh interactivo (LLM /models + reintento, basic auth, puerto)
* bcb724f feat(deploy): build-airgapped.sh (uv export + docker build + save) + compose tmpl
* 596b39b docs(deploy): know-how del despliegue airgapped
* 39b960d feat(deploy): Dockerfile airgapped (fastembed horneado + weasyprint + entrypoint)
* 06f8c9d feat(deploy): basic auth opcional (BASIC_AUTH_USER) + /healthz
* 1a40e65 docs: plan de implementación del despliegue airgapped
* 50cc990 docs: spec de despliegue airgapped (install.sh + dashboard-docker.tar.gz)
* 2153c6d fix(llm): no enviar response_format json_object a endpoints locales (LM Studio 400)
* 414b8fe feat(pptx): exportar el resumen como PDF además de PPTX, desde un desplegable
* d86bfe0 feat(pptx): vendorea prism + escudo del Gobierno en la portada (theme cuba)
* 83abb88 feat(pptx): generar presentación (resumen ejecutivo, plantilla Cuba) con prism
* 1787ac2 fix(indicadores): la cobertura se agrega del grafo VIGENTE, no de un corpus obsoleto
* b52eb35 feat(indicadores): sec-cuellos (real) y coh-indice (estimado) desde el grafo
* 65a5965 feat(search): FASTEMBED_CACHE_DIR configurable para despliegues offline
* d2bb406 feat(reporte): páginas de detalle opcionales por sección (Gantt, todas las medidas…)
* 72e7357 feat(chat): el chatbot flotante se contextualiza a la medida en su detalle
* f920923 fix(ui): escudo más pequeño y centrado (crop por flood-fill)
* 4956cf4 feat(chat): contexto de la medida en su detalle (backend)
* d6b9fff feat(ui): escudo del Gobierno de Cuba como favicon, logo del navbar y header del reporte
* c14aea4 style(chat): quita el caret de streaming (no aportaba)
* 498e3b0 feat: streaming del chatbot en todas las superficies (chat, análisis, explicar)
* b0216bc feat(llm): streaming SSE (_chat_stream + ask/analizar/explicar_relacion _stream)
* 2237889 feat(reporte): generar reporte PDF (weasyprint) con secciones a elegir + IA
* e9800d9 feat(medidas): semáforo de nivel de dependencia por medida