snapcontext

Robustez del Graph RAG y LSP (Fase 16 — degradación elegante)

SnapContext es tolerante a fallos: si el servidor LSP falla o aún no está terminado el índice del Graph RAG, degrada automáticamente a una búsqueda más ligera sin interrumpir el flujo ni mostrar un traceback.

LSP: degradación elegante

Si el servidor LSP no está presente, no responde o lanza una excepción, SnapContext:

  1. Espera como mucho 2 segundos (timeout global TIMEOUT_DEGRADACION / TIMEOUT_LSP_DEGRADACION) por la respuesta.
  2. Si el LSP falla o agota el tiempo, cae automáticamente a:
    • Búsqueda por expresiones regulares (regex) sobre los archivos del proyecto (rápida, sin dependencias).
    • Embeddings sintácticos ligeros (AST de Python, y tree-sitter si está instalado) para extraer funciones/clases.
  3. Muestra una sola vez por archivo el aviso: ⚠ LSP no disponible, usando búsqueda por regex.

Nunca se propaga una excepción al usuario: los fallbacks devuelven el mismo formato de resultados (lista de coincidencias con ruta y línea).

Graph RAG: indexación en segundo plano

Para que el CLI arranque instantáneamente (incluso con la primera consulta), la indexación del grafo no bloquea:

API

Función Descripción
cargar_grafo(directorio) Devuelve el mejor grafo disponible sin bloquear.
indexar_en_background(directorio) Lanza un hilo demonio que popula el grafo.
indexacion_en_curso(directorio) True si aún se está indexando.
grafo_indexable(directorio) El gestor (GrafoIndexable) del proyecto o None.

Garantías