Volver a la wiki

I5 — Plataforma wiki Supercontexto + fix tools MCP (sesión 27)

I5 — Plataforma wiki Supercontexto + fix tools MCP (sesión 27)

Cierre de la iniciativa I5 del plan post-audit (sesiones 26-27, 2026-04-25). Con esta iniciativa queda completo el plan post-audit I1–I5 de CreaRack Pro. Cubre cuatro sub-bloques funcionales: ampliación de la UI wiki, re-tagging masivo de product, fix de rendimiento en bib_doc_coverage y fix funcional en bib_list_endpoints.


Sub-bloques completados

I5-1 · UI wiki [...slug].astro

Ampliaciones al renderer de páginas wiki del workspace Astro:

ComponenteDetalle
TOC flotanteh2/h3 extraídos del body; visible en desktop ≥1400px, oculto en mobile.
BacklinksLista de pages cuyo campo related[] incluye el slug actual. Cross-corpus.
Metadata badgesHeader muestra type, status, last_verified, tags clicables.
Next / PrevNavegación por mismo product + category, ordenada por order y slug.

Mobile: TOC colapsado, navegación apilada.

I5-2 · Re-tagging masivo de product (90 pages)

I5-3 · Fix bib_doc_coverage — N+1 → single JOIN

Problema: el handler ejecutaba 1 query por nodo (3839 nodos × 1 query D1 = subrequest budget overflow CF Workers), causando HTTP 429.

Solución implementada en functions/api/mcp/handlers/biblioteca.ts:

SELECT
  n.id, n.qualified_name, n.node_type, n.app, n.display_name,
  MAX(CASE WHEN e.edge_type = 'documents' THEN 1 ELSE 0 END) AS has_doc
FROM bib_nodes n
LEFT JOIN bib_edges e ON (e.source_id = n.id OR e.target_id = n.id)
WHERE n.node_type != 'doc'
GROUP BY n.id

Una sola query reemplaza el loop. El campo has_doc (0/1) separa documentados de no-documentados en memoria.

I5-4 · Fix bib_list_endpoints — lee de bib_nodes

Problema: la tabla bib_endpoints estaba vacía (nunca repoblada tras un cambio del indexer). La tool siempre devolvía [].

Solución: refactor para leer directamente de bib_nodes WHERE node_type='endpoint' y parsear method, path y operationId desde el campo metadata JSON. Verificado: 496 endpoints accesibles.

// Antes
SELECT ep.*, n.qualified_name, n.app FROM bib_endpoints ep JOIN bib_nodes n ...

// Ahora
SELECT id, qualified_name, display_name, app, metadata
FROM bib_nodes WHERE node_type = 'endpoint'

La decisión arquitectónica de abandonar bib_endpoints como fuente primaria está documentada en [[decision—20260425—bib-endpoints-leer-bib-nodes]].


Sub-bloque diferido (I5-5)

Edges documents para 496 endpoints — diferido a Fase 8 (Enrichment Agent del blueprint).

Motivos:

  1. El fix de I5-4 ya resuelve el problema operativo (endpoints listables).
  2. Generación automática de edges requiere parser de menciones path con validación de false positives — trabajo no trivial.
  3. Encaja mejor en el blueprint del Enrichment Agent que en una sesión de cierre.

Deuda registrada explícitamente en public/supercontext/STATE.md.


Pendientes operativos post-I5


Véase también

Subir