Volver a la wiki

Pulse tiempo real + Grafo vivo

Pulse tiempo real + Grafo vivo

User value

Cada sesión de trabajo arranca con foto completa del estado del proyecto: qué pasó en las últimas 24h, qué tareas urgentes abiertas, cuántos nodos del grafo desactualizados y si el último CI pasó o falló. Sin esto, Edu o cualquier agente entraría a ciegas y perdería minutos reconstruyendo contexto. Pulse convierte el workspace en panel de control vivo: no hay que preguntar “¿cómo va?”, la respuesta está precalculada y disponible en <1s.

Cómo usarla

Endpoint principal: GET /api/hot-cache (con ?format=md → Markdown listo para prompt; sin parámetro → JSON). Respuesta con Cache-Control: private, max-age=60, navegador y agente reusan durante 60s.

Widget CI Pipeline del dashboard de salud: GET /api/health. Devuelve 4 filas (Backup D1, Biblioteca, Grafo, CI Pipeline) con colores semáforo. Bloque CI consulta https://api.github.com/repos/CreaRackSL/CreaRack-Pro/actions/runs?branch=main&per_page=5: últimas 5 runs, distingue jobs en progreso, rojo si última falló. Es la única ventana al estado del repo CreaRack-Pro desde el workspace.

Para leer estado del Supercontexto sin abrir archivos: sección ## Supercontexto del hot-cache en Markdown — fase actual, avance, bloqueos, próximo paso extraídos en tiempo real de public/supercontext/STATE.md.

Implementación

Hot-cache (60s, functions/_lib/hot-cache.ts): buildHotCache lanza 8 promesas en paralelo (Promise.all): actividad 24h, alertas activas, tareas urgentes, in-flight, salud grafo (GraphHealth con nodos/edges/comunidades/cohesión/stale), commits recientes via GitHub API, skips 7d, estado Supercontexto. Todo en una pasada sobre D1 y GitHub, sin waterfalls. graph_health.stale_count extraído del último entity_type='system' en activity_log con título Biblioteca:% — lo vincula directo a runs del cron.

Widget CI Pipeline (functions/api/health.ts): checkCI apunta a CreaRackSL/CreaRack-Pro (no workspace). Clasifica runs success/failure/in_progress, devuelve Cache-Control: private, max-age=600 (10 min) para no agotar quota GitHub API, degrada a DIM sin GH_PAT o timeout 5s.

Cron bib-reindex Staging (scripts/cron-bib-reindex.sh): corre en Hetzner Staging via /etc/cron.d/bib-reindex. git pull --rebase origin main, itera 7 apps (core, racks, blueprints, terminal, network, monitoring, signage) con python3 scripts/bib_ast.py --push --apps <app>. Si todas OK, ejecuta bib_compute_communities via curl a MCP → actualiza cohesión y comunidades. Log rota al pasar 5 MB, mantiene últimas 500 líneas. Este ciclo alimenta last_indexed y stale_count del widget.

Decisiones

Commits relacionados

Véase también

Subir