Volver a la wiki

Servicio hot-cache.ts — Construcción y renderizado del HotCache

Descripción

functions/_lib/hot-cache.ts es el módulo central del Workspace que agrega datos de múltiples fuentes D1 en un objeto HotCache serializable. Es consumido por el edge handler que sirve workspace.crearack.com/biblioteca/pulse y por renderMarkdown para generar el informe textual del mismo endpoint.

Opera en Cloudflare Workers (runtime edge), sin acceso a Node.js nativo. Todas las queries son D1 vía env.DB.


Interfaces principales

HotCache

interface HotCache {
  generated_at: string;
  project: string;
  // … actividad, alertas, tareas, grafo …
  graph_health: GraphHealth;
  bib_skips_7d: { total: number; by_actor: Record<string, number> };
  supercontext: SupercontextState | null;
  bibliotecario: BibliotecarioActivity | null;  // ← añadido sesión 22 F3
}

BibliotecarioActivity (añadida 2026-04-24)

Agrega el estado operativo del sistema Supercontexto en una ventana de 7 días:

interface BibliotecarioActivity {
  window_days: number;
  runs_by_operation: Record<string, number>;
  last_run_by_operation: Record<string, string | null>;
  pages_by_status: Record<string, number>;
  contradictions_open: number;
  tokens_7d: number;
  top_utility: Array<{ slug: string; title: string; score: number }>;
  pending_drafts: number;
  actions_24h: number;
}

SupercontextState

Estado de fase, step y next_step del sistema Supercontexto. Obtenido vía fetch HTTP al origin del Workspace.

GraphHealth

Métricas de salud del grafo de conocimiento (nodos, edges, última indexación).


Función pública principal: buildHotCache

export async function buildHotCache(
  env: HotEnv,
  repo: string,
  origin?: string
): Promise<HotCache>

Orquesta 9 fetches en paralelo via Promise.all:

FunciónDescripción
fetchActivity24hActividad de commits/tareas últimas 24h
fetchActiveAlertsAlertas activas del proyecto
fetchUrgentTasksTareas urgentes pendientes
fetchInFlightTasksTareas en curso
fetchGraphHealthEstado del grafo de conocimiento
fetchRecentCommitsCommits recientes al repo
fetchBibSkipsSkips del Bibliotecario (últimos 7d por actor)
fetchSupercontextStateEstado de fase Supercontexto
fetchBibliotecarioActivityNuevo: actividad y corpus del Bibliotecario

Función pública secundaria: renderMarkdown

export function renderMarkdown(c: HotCache): string

Serializa el HotCache como Markdown legible. Secciones emitidas (según disponibilidad de datos):

  1. Header con generated_at y project
  2. Actividad 24h
  3. Alertas activas
  4. Tareas urgentes / en vuelo
  5. Salud del grafo
  6. Commits recientes
  7. Skips del Bibliotecario
  8. ## Bibliotecario · Nd ← nuevo (sesión 22 F3)
  9. ## Supercontexto

Patrón de resiliencia

Cada función fetch* tiene su propio bloque try/catch y retorna un valor por defecto en caso de error. fetchBibliotecarioActivity además usa .catch(() => fallback) por query individual, garantizando que el fallo de una tabla D1 (p.ej. bib_wiki_contradictions inexistente) no bloquea las otras 6 queries.

Proyectos sin Supercontexto: si bib_wiki_pages y bib_wiki_log están vacías o no existen, fetchBibliotecarioActivity retorna null y el campo HotCache.bibliotecario queda a null. El panel UI no se renderiza.


Tablas D1 consultadas

TablaDescripción
bib_wiki_logLog de operaciones del Bibliotecario (ingest, curate, lint…)
bib_wiki_pagesCorpus de páginas wiki con status y utility_score
bib_wiki_contradictionsContradicciones detectadas entre páginas
activity_logActividad general del workspace (commits, tareas)
alertsAlertas activas del proyecto
tasksTareas del proyecto (urgentes, en vuelo)

Historial de cambios relevantes

FechaCambio
2026-04-24Añadida BibliotecarioActivity + fetchBibliotecarioActivity + campo bibliotecario en HotCache (sesión 22 F3, commit d216f82)

Véase también

Subir