better-code-review-graph

Grafo de conocimiento para revisiones de código eficientes en tokens con análisis Tree-sitter, incrustación de modo dual (ONNX + LiteLLM) y análisis de radio de explosión mediante herramientas MCP.

Documentación

Better Code Review Graph

Renombrado (2026-09-13): el repositorio ahora es crg — primero CLI (comando crg). El paquete de PyPI sigue siendo better-code-review-graph; el servidor MCP es una superficie secundaria.

mcp-name: io.github.n24q02m/better-code-review-graph

Grafo de conocimiento para revisiones de código eficientes en tokens: búsqueda semántica y resolución de grafos de llamadas en todo tu código.

Mode CI codecov PyPI License: Apache-2.0

Python MCP semantic-release Renovate

Proyectos hermanos de n24q02m (clic para expandir)
ProyectoEsloganEtiqueta
agent-chat-pluginAgentes de IA pares que chatean en una carpeta compartida: sin relé humano, sin orquestador, fun...Herramientas
better-code-review-graphGrafo de conocimiento para revisiones de código eficientes en tokens: búsqueda semántica y resolución de...MCP
better-driveSincronización bidireccional de Google Drive con filtro .driveignore: motor rclone, bandeja de WindowsHerramientas
better-email-mcpCorreo IMAP/SMTP para agentes de IA: leer, enviar, organizar carpetas y gestionar archivos adj...MCP
better-godot-mcpServidor MCP compuesto para Godot Engine: 17 herramientas compuestas para desarrollo de juegos asistido por IA...MCP
better-notion-mcpNotion centrado en Markdown para agentes de IA: páginas, bases de datos, bloques y comentarios...MCP
better-semantic-releaseBifurcación directa de python-semantic-release con protecciones de seguridad de lanzamiento integradas (orp...)Herramientas
better-telegram-mcpTelegram para agentes de IA: mensajes, chats, medios y contactos en ambas cuen...MCP
better-workspace-mcpServidor MCP de Google Workspace (Docs/Drive/Calendar/Gmail/Sheets/Slides/Tasks/Ch...)MCP
claude-pluginsMercado de plugins de Claude Code para los servidores MCP de n24q02m: instala búsqueda we...Mercado
imagine-mcpComprensión y generación de imágenes y video para agentes de IA: en Gemini, Op...MCP
jules-task-archiverExtensión de Chrome para operaciones masivas en tareas de Jules mediante la API batchexecute: a...Herramientas
mcp-coreBase compartida para construir servidores MCP: transporte HTTP Streamable, OAut...MCP
mnemo-mcpMemoria persistente de IA con búsqueda híbrida y sincronización integrada. Abierta, gratuita, ilimit...MCP
fastretrievalEntorno de ejecución rápido de recuperación multimodelo para embeddings ONNX y GGUF, reranking y contratos de modelosBiblioteca
skretSecretos sin el servidor.CLI
tacetUna cascada neuro-simbólica autodestilante que amortiza el costo de LLM en el conocim...Herramientas
web-corePaquete compartido de infraestructura web para búsqueda, scraping, seguridad HTTP y almac...Biblioteca
wet-mcpServidor MCP de código abierto para agentes de IA: búsqueda web, extracción de contenido y bibli...MCP
better-code-review-graph MCP server

Un servidor MCP que analiza tu código con Tree-sitter, construye un grafo estructural de funciones/clases/importaciones y le da a Claude (o a cualquier cliente MCP) contexto preciso para que lea solo lo que importa en lugar de todo el árbol. La búsqueda semántica se ejecuta a través del registro local de modelos ONNX de fastretrieval de forma predeterminada (cero configuración, sin clave API), con una cadena opcional de embeddings en la nube. Bifurcación de code-review-graph con búsqueda de varias palabras corregida, resolución de llamadas calificada, embeddings de doble modo, paginación de salida y CI/CD de producción.

Migración a v2.0 (RUPTURA)

v2.0 agrega columnas temporales (valid_from_sha / valid_to_sha en cada nodo y borde) y un escáner de seguridad opcional. La migración del esquema se aplica automáticamente en la primera apertura de GraphStore, y se guarda una copia de seguridad de la base de datos anterior a 2.0 en <graph_db>.pre-2.0.bak para que puedas revertir. Consulta BREAKING_CHANGES.md para ver la lista completa de cambios de esquema, cambios de comportamiento, requisitos de entorno y el procedimiento de degradación (CRG_DOWNGRADE_TO_1_X=1 uv run better-code-review-graph).

Tabla de contenidos

Instalación

Para OMP y otros entornos de desarrollo locales, la superficie principal es el CLI del paquete más los flujos de trabajo skills/ incluidos. Las habilidades invocan el CLI directamente y no requieren un mapeo de servidor MCP.

# Run without a persistent install (short `crg` script; PyPI package name stays
# better-code-review-graph, so `uvx` needs the explicit --from form)
uvx --python 3.13 --from better-code-review-graph crg graph build --full-rebuild \
  --repo-root /path/to/repo
uvx --python 3.13 --from better-code-review-graph crg graph stats \
  --repo-root /path/to/repo

# Or install the console scripts (installs both `crg` and the legacy long name)
pip install better-code-review-graph
crg query search --search-query "authentication" \
  --repo-root /path/to/repo

El motor opcional de Semgrep para análisis de seguridad más profundos es un extra separado:

pip install 'better-code-review-graph[security]'

MCP stdio sigue siendo un adaptador de protocolo secundario para clientes que lo requieran:

{
  "mcpServers": {
    "better-code-review-graph": {
      "command": "uvx",
      "args": ["--python", "3.13", "better-code-review-graph"],
      "env": { "MCP_TRANSPORT": "stdio" }
    }
  }
}

Matriz de instalación (stdio salvo que se indique; el uso primero-CLI anterior sigue siendo la superficie principal):

ClienteInstalación
Claude Code (plugin)/plugin marketplace add n24q02m/claude-plugins luego /plugin install better-code-review-graph@n24q02m-plugins
Claude Code (stdio)claude mcp add better-code-review-graph -- uvx --python 3.13 better-code-review-graph
Codexregistra el comando stdio uvx --python 3.13 better-code-review-graph bajo mcp_servers en ~/.codex/config.toml
Gemini CLIagrega el JSON de mcpServers anterior a ~/.gemini/settings.json
Cursor / Windsurfagrega el JSON de mcpServers anterior mediante la configuración MCP del cliente (mcp.json)
Cualquier cliente (HTTP autoalojado)apunta el cliente a https://<your-host>/mcp (MCP_TRANSPORT=http) — solo autoalojado, sin endpoint alojado

Instala con un agente de IA: pega esto a tu agente de codificación de IA:

Instala el servidor MCP better-code-review-graph siguiendo los pasos en https://raw.githubusercontent.com/n24q02m/claude-plugins/main/plugins/better-code-review-graph/setup-with-agent.md

El uso completo del CLI está en CLI. La configuración opcional por cliente de MCP está en mcp.n24q02m.com/servers/better-code-review-graph/setup/.

Límite local-primero

CRG es local-primero para flujos de trabajo de codificación:

  • El CLI y las Habilidades incluidas son las superficies principales para construcción/consulta de grafos, análisis de impacto, contexto de revisión, análisis de seguridad e incorporación de repositorios.
  • MCP stdio es el adaptador de protocolo secundario sobre los mismos servicios de dominio local; no mantiene una implementación de grafo separada.
  • El estado del grafo permanece en <repo>/.better-code-review-graph/graph.db salvo que una configuración explícita multiusuario/autoalojada seleccione otro directorio de datos.
  • PyPI, CI, análisis de seguridad, lanzamientos de GitHub y la publicación elegible de MCP Registry estable siguen activos. Las etiquetas OCI públicas históricas se conservan, pero ya no se publican nuevas imágenes públicas de Docker Hub/GHCR.
  • CRG no tiene un entorno de ejecución alojado de Cloudflare en la topología objetivo.

Smithery

El repositorio incluye un smithery.yaml para que el servidor pueda compilarse y ejecutarse mediante Smithery. Se despliega sobre stdio y no necesita configuración de inicio: el esquema de configuración está vacío, y cualquier clave opcional de embeddings/resúmenes en la nube se proporciona en tiempo de ejecución mediante el flujo de configuración propio del servidor (consulta Configuración abajo). El comando de lanzamiento es la misma invocación de uvx que una instalación local:

startCommand:
  type: stdio
  commandFunction: |-
    (config) => ({ command: 'uvx', args: ['--python', '3.13', 'better-code-review-graph'] })

Configuración

Todo funciona listo para usar con cero configuración: la búsqueda semántica usa el registro local de ONNX de fastretrieval (Qwen3-Embedding-0.6B es la entrada de referencia integrada actual, ~570 MB descargados en el primer graph embed). Esta entrada de referencia no es un límite solo-Qwen: cualquier ID de registro integrado o manifiesto de artefacto válido que no sea Qwen sigue el mismo resolvedor. Todas las variables de entorno a continuación son opcionales y solo se necesitan para embeddings en la nube, resúmenes de LLM o un artefacto local BYO explícito.

Selección de modelos

Los embeddings seleccionan la primera entrada de provider/model en EMBEDDING_MODELS; las entradas posteriores se conservan como configuración pero no son respaldos en tiempo de ejecución. Los resúmenes también seleccionan la primera entrada de SUMMARY_MODELS, sin respaldo en tiempo de ejecución. Los proveedores se infieren de los prefijos de modelo y usan el <PROVIDER>_API_KEY correspondiente.

VariablePropósitoVacío (predeterminado)
EMBEDDING_MODELSSelección de embeddings en la nube; la primera entrada está activaRegistro local de fastretrieval
SUMMARY_MODELSSelección del modelo de finalización para graph(action="summarize")Resúmenes deshabilitados

Cohere embed-v4.0 solicita y almacena 1024 dimensiones; otros backends conservan almacenamiento de 768 dimensiones. CRG nunca corta, rellena ni acepta silenciosamente un ancho de proveedor diferente. La fila del embedding debe coincidir en modelo y ancho de bytes antes de reutilizarse. Ejecuta graph(action="embed") después de cambiar modelos o actualizar un índice antiguo de Cohere de 768 de ancho. Las búsquedas rechazan anchos incompatibles antes de una llamada al proveedor; los nodos del grafo se conservan y el re-embedding reemplaza solo los vectores obsoletos.

Claves API de proveedores

Los modelos en la nube necesitan la clave del proveedor para el prefijo de modelo seleccionado. Las claves solas nunca seleccionan modelos: una cadena de embeddings vacía permanece local, y una cadena de resúmenes vacía permanece deshabilitada. Un error de nube configurado no recurre a local ni a otro proveedor. Los resumidores requieren un modelo de finalización de chat.

Prefijo de modeloVariable de entorno de clave APIObtener una clave
jina_ai/JINA_AI_API_KEYhttps://jina.ai/api-key
gemini/GEMINI_API_KEY (o GOOGLE_API_KEY)https://aistudio.google.com/apikey
openai/ (o text-embedding-* simple)OPENAI_API_KEYhttps://platform.openai.com/api-keys
cohere/COHERE_API_KEYhttps://dashboard.cohere.com/api-keys
openrouter/OPENROUTER_API_KEYhttps://openrouter.ai/settings/keys
vertex_express/GOOGLE_VERTEX_EXPRESS_API_KEYhttps://cloud.google.com/vertex-ai/generative-ai/docs/start/express-mode/overview

Avanzado

VariablePropósito
EMBEDDING_API_BASEEndpoint compatible con el proveedor para embeddings en la nube, incluido CF AI Gateway (protegido contra SSRF)
LLM_API_BASEURL base compatible con el proveedor para el resumidor, incluido CF AI Gateway (protegido contra SSRF)
DISABLE_LOCAL_EMBEDOmite la descarga local de ONNX; el embedding no está disponible salvo que se configure una cadena en la nube
LOCAL_EMBEDDING_MODELID de modelo integrado de fastretrieval, o un directorio local que contenga fastretrieval-manifest.json
LOCAL_RERANK_MODELID de modelo TextCrossEncoder de Fastretrieval para reranking semántico acotado
LOCAL_EMBEDDING_DIMDimensión requerida para un ID de modelo externo sin manifiesto
LOCAL_EMBEDDING_MODEL_FILERuta del archivo ONNX dentro de un directorio de artefactos respaldado por manifiesto
LOCAL_EMBEDDING_POOLINGPooling explícito para un ID externo sin manifiesto: CLS, MEAN, LAST_TOKEN o DISABLED
LOCAL_EMBEDDING_NORMALIZENormalización L2 explícita para un ID externo sin manifiesto
CRG_DATA_DIRAnula el directorio de datos por usuario (predeterminado ~/.crg) usado para grafos y credenciales por usuario en modo HTTP multiusuario
EMBEDDING_BACKEND / EMBEDDING_MODEL / SUMMARY_MODELObsoletas variables singulares, respetadas durante un lanzamiento con advertencia: migra a las cadenas de *_MODELS
Cuando LOCAL_RERANK_MODEL está configurado, la búsqueda semántica vectorial recupera un
grupo de candidatos acotado de min(max(limit * 4, limit), 100) filas, aplica los
filtros existentes de kind, repo y filas en vivo, luego reordena ese grupo y devuelve
como máximo limit filas. La respuesta utiliza search_mode="semantic_reranked" y
agrega rerank_score mientras preserva similarity_score. En blanco mantiene la
ruta vectorial existente de limit * 2 y search_mode="semantic". Las fallas
del reordenador configurado devuelven un error explícito; CRG no recurre silenciosamente a
resultados vectoriales o de palabras clave. Las búsquedas por palabras clave, incluidas las
instantáneas de as_of, no invocan el reordenador.

Ejemplo -- embeddings en la nube + resúmenes

{
  "mcpServers": {
    "better-code-review-graph": {
      "command": "uvx",
      "args": ["--python", "3.13", "better-code-review-graph"],
      "env": {
        "MCP_TRANSPORT": "stdio",
        "EMBEDDING_MODELS": "cohere/embed-v4.0",
        "SUMMARY_MODELS": "openrouter/minimax/minimax-m3:free",
        "EMBEDDING_API_BASE": "https://gateway.ai.cloudflare.com/v1/<account>/<gateway>/cohere/v2/embed",
        "LLM_API_BASE": "https://gateway.ai.cloudflare.com/v1/<account>/<gateway>/openrouter/v1",
        "COHERE_API_KEY": "<cohere-key>",
        "OPENROUTER_API_KEY": "<openrouter-key>"
      }
    }
  }
}

El embedding de Cohere es de pago. Autorice un presupuesto acotado antes de un índice/consulta en vivo; la elección de finalización sin Minimax no hace que los embeddings sean gratuitos. Este ejemplo no agrega una anulación de modelo a nivel de proceso: las credenciales de sujeto faltantes fallan de forma cerrada en lugar de heredar el entorno del servidor.

CRG actualmente no tiene llamada de reordenamiento en la nube: LOCAL_RERANK_MODEL es su única ruta de reordenamiento. Configurar RERANK_MODELS o RERANK_API_BASE no habilita una.

Herramientas

Seis herramientas, cada una agrupando acciones relacionadas para mantener la superficie de herramientas pequeña.

graph -- Ciclo de vida del grafo

Acciones: build | update | stats | embed | export | summarize

AcciónDescripción
buildConstrucción de grafo completa o incremental. Configure full_rebuild=true para volver a analizar todos los archivos; pase roots para federar directorios de repositorio adicionales en un solo grafo.
updateAlias para build con full_rebuild=false (incremental).
statsTamaño del grafo, idiomas, desglose de nodos/bordes, recuento de embeddings.
embedCalcular embeddings vectoriales para búsqueda semántica. Modo dual: ONNX local o cadena en la nube.
exportExportar el grafo como graphml / json-ld / dot / cypher. En línea o a output_path.
summarizeDocstrings de un párrafo generados por LLM para nodos Function (a través de la primera entrada explícita de SUMMARY_MODELS; sin operación cuando no hay modelo seleccionado). Llamadas limitadas por max_nodes.

query -- Consultas de grafo

Acciones: query | search | impact | large_functions | spot_check | renamed_in_diff | diff

AcciónDescripción
queryPatrones predefinidos: callers_of, callees_of, imports_of, importers_of, children_of, tests_for, inheritors_of, file_summary.
searchBuscar entidades de código por nombre/palabra clave o similitud semántica.
impactRadio de impacto de archivos modificados. Se detecta automáticamente desde git diff. Paginado con max_results.
large_functionsEncontrar funciones/clases que exceden un umbral de recuento de líneas.
spot_checkFragmentos de sitios de llamada aleatorios del último resultado de callers_of/callees_of/inheritors_of/importers_of.
renamed_in_diffSímbolos cuya línea de sitio de llamada se desplazó en comparación con una referencia base.
diffNodos agregados/eliminados/modificados entre dos SHAs de confirmación (from_sha, to_sha).

La mayoría de las acciones de lectura aceptan as_of=<sha> para instantáneas temporales (puntuales) y repo=<repo_id> para delimitar un grafo federado de múltiples repositorios.

review -- Contexto de revisión de código

Acciones: context (predeterminada) | delta

Contexto de revisión optimizado por tokens con resumen estructural, nodos impactados, fragmentos de código fuente y orientación de revisión. context detecta automáticamente los archivos modificados desde el git diff; delta (con from_sha/to_sha, show_line_shifts opcional) superficies de movimientos de refactorización entre dos confirmaciones.

config -- Configuración del servidor y configuración de credenciales

Acciones: status | set | cache_clear | setup_status | setup_start | setup_skip | setup_reset | setup_complete

AcciónDescripción
statusInformación del servidor: versión, ruta del grafo, recuentos de nodos/bordes, backend de embeddings, recuento de embeddings.
setActualizar una configuración en tiempo de ejecución (key=log_level).
cache_clearEliminar todos los embeddings calculados.
setup_statusMostrar el estado actual de credenciales y qué celdas de modelo tienen claves.
setup_startExplicar dónde el host configura las claves de API (celdas de modelo propiedad del host).
setup_skipConfigurar modo local (embedding ONNX local, sin celdas en la nube).
setup_resetRestablecer el estado a local; la configuración del host se vuelve a resolver en la siguiente llamada.
setup_completeVolver a resolver el estado de credenciales desde la configuración del host.

security -- Escaneo de seguridad

Acciones: scan | report | suppress | rule_list

AcciónDescripción
scanEjecutar un escaneo de seguridad (engine='heuristic' predeterminado = 5 reglas regex, o 'semgrep'). Los hallazgos persisten en nodes.security_tags.
reportReemitir hallazgos en caché como JSON (format='json') o SARIF v2.1.0 (format='sarif').
suppressSuprimir un hallazgo por rule_id (o remove=true para anular la supresión).
rule_listListar reglas disponibles para un motor.

El motor semgrep requiere el extra [security] y ejecuta el paquete de registro p/auto de Semgrep más una superposición curada de 3 reglas.

help -- Documentación completa

Temas: graph | query | review | config | security | recipes

Devuelve documentación completa para cada herramienta. Úselo cuando las descripciones comprimidas anteriores sean insuficientes.

CLI

El paquete instala dos scripts de consola: crg (principal) y better-code-review-graph (nombre largo heredado). Ejecutar cualquiera de ellos sin argumentos inicia el servidor MCP sobre stdio; un argumento posicional inicial enruta a un subcomando CLI local que llama a los mismos servicios de dominio utilizados por el adaptador MCP. Ejecútelos directamente después de pip install, o sin una instalación persistente mediante uvx --python 3.13 --from better-code-review-graph crg ....

# Start the MCP server over stdio (default -- no subcommand)
crg

# Build, inspect, and embed the local graph
crg graph build
crg graph stats
crg graph embed

# Query relationships and impact
crg query query \
  --pattern callers_of --target "path/to/module.py::function"
crg query search --search-query "authentication"
crg query impact --changed-files src/app.py

# Produce review context and run a local security scan
crg review context --base HEAD~1
crg security scan --engine heuristic
ComandoDescripción
graph buildConstrucción de grafo completa o incremental. --full-rebuild vuelve a analizar cada archivo; --base <ref> establece la referencia de diff incremental; --repo-root <path> anula la detección automática.
graph embedCalcular embeddings vectoriales usando ONNX local o la cadena en la nube configurada.
graph stats / graph export / graph import / graph summarizeInspeccionar, exportar/importar un grafo portátil crg, o resumir funciones.
query query / query searchEjecutar patrones de relación o búsqueda por palabras clave/semántica.
query impact / query large_functionsAnalizar el radio de impacto de archivos modificados o encontrar nodos sobredimensionados.
query spot_check / query renamed_in_diff / query diffInspeccionar sitios de llamada, desplazamientos de línea o cambios de grafo entre confirmaciones.
review context / review deltaGenerar contexto de revisión o grupos de diff para un cambio de código.
security scan / security report / security suppress / security rule_listEjecutar y gestionar hallazgos de seguridad heurísticos/Semgrep.

Los subcomandos CLI imprimen JSON estructurado y salen con código no cero en caso de error.

Características

Lo que este fork corrige en comparación con el code-review-graph ascendente:

Característicacode-review-graphbetter-code-review-graph
Búsqueda de múltiples palabrasRota (subcadena literal)División de palabras con lógica AND
callers_of/callees_ofResultados vacíos (objetivos de nombre simple)Resolución de nombre calificado + respaldo simple
Embeddingsentence-transformers + torch (1.1 GB)fastretrieval ONNX + nube (200 MB), modo dual
Tamaño de salidaSin límite (500K+ caracteres)Paginado (max_results, indicador truncado)
Diseño de herramientas9 herramientas individuales6 herramientas agrupadas: grafo + consulta + revisión + configuración + seguridad + ayuda
Enlaces de pluginPostEdit/PostGit inválidosPostToolUse válido

Comparación

Cómo better-code-review-graph se compara con competidores directos en cada pilar:

Capacidadbetter-code-review-graphGreptileSourcegraph (Cody / MCP)CodeGraph (colbymchenry)
Grafo de conocimiento del códigoSí (Tree-sitter, 14 idiomas, SQLite)Sí (funciones/clases/deps)Sí (indexación precisa de código)Sí (Tree-sitter, 20+ idiomas, SQLite)
Actualizaciones incrementales persistentesSí (git-diff + re-análisis por hash de archivo)?Sí (indexación continua)Sí (observador de archivos del SO con debounce)
Resolución de llamadas calificadas (callers/callees)Sí (resolución de llamadas simples en el mismo archivo + respaldo)?Sí (ir a definición / encontrar referencias)Sí (callers / callees / impacto)
Búsqueda semántica / embeddingsSí (registro local fastretrieval + Jina/Gemini/OpenAI/Cohere en la nube)?Sí (semántica + palabras clave + regex)No (solo texto completo FTS5)
Contexto de revisión optimizado por tokensSí (herramienta review, delimitado por git-diff)Sí (comentarios de revisión de PR)No (asistente de contexto de código)No (capa de contexto, no revisión)
Escaneo de seguridadSí (Semgrep p/auto + superposición de 3 reglas, SARIF)??No
Auto-alojableSí (stdio predeterminado, vinculado a máquina)Sí (Docker / K8s / aislado de red)Sí (instancia auto-alojada)Sí (100% local, sin claves de API)
Gratuito / código abiertoSí (Apache-2.0)No (SaaS propietario; nivel OSS gratuito)No (licencia Enterprise, código fuente privado)Sí (MIT)

Fuentes: Greptile · Precios de Greptile · Sourcegraph MCP · CodeGraph. Las celdas marcadas con ? son capacidades que el competidor no documenta públicamente, no ausencias confirmadas.

Seguridad

  • Selección explícita -- Los errores de embedding en la nube se informan; el tiempo de ejecución no cambia silenciosamente de modelo ni recurre a ONNX local.
  • Manejo de errores -- Las herramientas devuelven cadenas de error con sugerencias de corrección, nunca fallan.
  • Montaje de solo lectura -- El modo Docker monta el repositorio como :ro (solo lectura).
  • Puntos finales protegidos contra SSRF -- Las URL personalizadas de EMBEDDING_API_BASE / LLM_API_BASE se validan antes de cualquier llamada saliente.

Para informar una vulnerabilidad, consulte SECURITY.md.

Compilar desde el código fuente

git clone https://github.com/n24q02m/crg
cd better-code-review-graph
uv sync --group dev
uv run pytest
uv run better-code-review-graph

Requisitos: Python 3.13, uv.

Modelo de confianza

Este plugin implementa TC-Local (vinculado a máquina, principal de confianza único). Consulte el modelo de confianza de mcp-core para la clasificación completa.

ModoBase de datos de grafoCredenciales en la nube¿Quién puede leer sus datos?
stdio (predeterminado)<repo>/.better-code-review-graph/graph.db (ignorado por git)~/.better-code-review-graph-mcp/config.json (AES-GCM, clave vinculada a máquina)Solo su usuario del SO
HTTP auto-alojado (multi-usuario)~/.crg/subs/<sub>/graph.db por usuario~/.crg/subs/<sub>/config.json por usuarioSolo el usuario autenticado

Migración y registro de cambios

El grafo, la caché de escaneo de seguridad y el estado de supresión ahora usan el directorio .better-code-review-graph/ propiedad del paquete. Ejecute graph(action="build", full_rebuild=true) una vez después de actualizar, seguido de graph(action="embed") si se necesita búsqueda semántica. Las rutas antiguas ambiguas .code-review-graph/ y .code-review-graph.db y sus archivos laterales SQLite se dejan intactos: pueden pertenecer al paquete ascendente separado. Revise y vuelva a aplicar cualquier regla de supresión deseada explícitamente.

El lanzamiento v2.0 agregó columnas temporales (valid_from_sha / valid_to_sha en cada nodo y borde) además de un escáner de seguridad opcional. La migración de esquema se aplica automáticamente en la primera apertura de GraphStore, y se escribe una copia de seguridad de la base de datos anterior a 2.0 en <graph_db>.pre-2.0.bak. Para degradar y restaurarla:

CRG_DOWNGRADE_TO_1_X=1 uvx better-code-review-graph

Lista completa de cambios de esquema, cambios de comportamiento y procedimiento de reversión: BREAKING_CHANGES.md. Historial lanzamiento por lanzamiento: CHANGELOG.md.

Documentación

Documentación completa en mcp.n24q02m.com/servers/better-code-review-graph/setup/:

Use la herramienta help desde cualquier cliente MCP para obtener referencia en línea por herramienta.

Licencia

Apache-2.0 -- Ver LICENCIA.