Pra revisar um PR com o contexto certo, o Kodus parseia o repositório inteiro num AST graph (nós + arestas) e usa ele pra buscar contexto cross-file, validar sugestões e alimentar o agente. O parser roda dentro de um sandbox pra poder fazerDocumentation Index
Fetch the complete documentation index at: https://docs.kodus.io/llms.txt
Use this file to discover all available pages before exploring further.
git clone, instalar dependências, e
executar o CLI isolado do processo da API.
Esta página explica os modos de sandbox disponíveis, o que é o AST
graph, e como o cache mantém reviews por PR rápidos.
Como o AST graph funciona
O Kodus usa o@kodus/kodus-graph,
um CLI que percorre um repositório e emite um JSON graph (funções,
classes, arquivos, imports, calls). O CLI já vem pré-instalado na
imagem do worker (kodus-ai-worker) — no modo local, não tem setup
extra.
Ciclo de vida:
- Quando você seleciona um repositório (no setup, ou ao adicionar
um repo depois na UI) — o Kodus enfileira um job
AstGraphBuildque rodakodus-graph parse --allno branch default, persiste no Postgres (tabelasast_graph_*), e marca o repo como indexado. Isso roda em background — você não precisa esperar terminar pra abrir PRs. - Quando um PR é mergeado no branch default — handlers de webhook enfileiram um rebuild incremental que re-parseia apenas os arquivos alterados e mescla os deltas no graph cacheado. O cache continua fresco sem precisar de rebuild completo.
- Em toda review de PR — o Kodus carrega o graph cacheado, parseia apenas os arquivos tocados pelo PR, e alimenta o agente com um subgraph focado. Esse é o caminho quente; nunca re-parseia o repo todo.
Modos de sandbox
O sandbox é selecionado porSANDBOX_PROVIDER no .env:
| Modo | O que faz | Trade-off |
|---|---|---|
local (default do installer) | Roda o kodus-graph dentro do próprio container worker. Bun + CLI já vêm pré-instalados. | Sem dependência externa. Worker precisa de mais RAM em repos grandes. |
e2b | Sobe um sandbox remoto E2B por job. Requer API_E2B_KEY. | Isolamento forte, escala pra repos enormes. Serviço terceiro pago. |
auto | Usa e2b quando API_E2B_KEY está setada, senão cai em sem-sandbox. | Útil em rollouts faseados, ex.: migrando de none pra e2b. |
none | Sem sandbox. Desliga AST graph e contexto cross-file. | Reviews ficam menos ricos (sem call-graph context, sem análise cross-file). |
Escolhendo um modo
- Tá começando, quer que “funcione e pronto” →
local. É o default do installer e não precisa de conta externa. - Repos enormes (milhões de LOC) ou quer isolamento forte →
e2b. Cadastre em e2b.dev, setaAPI_E2B_KEY, trocaSANDBOX_PROVIDER=e2b. - Você não quer que sandbox nenhum rode →
none. O agente de review roda sem contexto cross-file; sugestões ainda funcionam mas ficam menos informadas.
Migrando uma instalação self-hosted existente
Se você atualizou de uma versão anterior ao AST graph, seus repositórios já selecionados ainda não têm graph — o build dispara automaticamente só em novas seleções. Pra indexar os antigos, rode o script de backfill que vem no installer:AstGraphBuild pra cada repo selecionado cujo astGraphStatus seja
NULL, PENDING ou FAILED. Os builds rodam em background — você pode
continuar usando o Kodus enquanto terminam.
O script é idempotente: re-execuções pulam repos que já estão
READY, nunca re-enfileiram jobs BUILDING, e você pode parar e
retomar livremente.
Flags comuns:
Configuração
.env e reinicia a stack.
O que roda onde
Dimensionamento de recursos
O sandboxlocal roda git clone e kodus-graph parse dentro do
container worker, então RAM do worker importa:
- Repos pequenos a médios (< 100k LOC) — host com 8GB padrão dá conta.
- Repos grandes (100k–1M LOC) — dê 4–8GB de RAM extra ao container worker; considere 16GB total no host.
- Monorepos enormes (> 1M LOC) — troque pra
e2bpra parsing fora do host.
Troubleshooting
Reviews não estão incluindo contexto cross-file (modolocal):
Veja os logs do worker pra erros de install ou parse do kodus-graph:
e2b travam ou não iniciam:
Verifique se API_E2B_KEY está setada e válida:
SANDBOX_PROVIDER=none e reinicie o worker. Reviews vão pular o
estágio do graph e rodar com a visão crua do diff pelo LLM.