Aplicacao local para cadastrar repositorios GitHub, sincronizar pull requests e executar reviews automatizados em worktrees descartaveis com codex exec.
O fluxo principal esta implementado: cadastro de repositorios, clone local, sync de PRs, importacao de comentarios, analise com Codex, publicacao manual de comentarios inline, resposta e resolucao de threads.
Documentacao complementar:
- Node.js 22 LTS ou superior
- npm 10 ou superior
- Git
- GitHub CLI (
gh) autenticado localmente - Codex CLI instalado e autenticado
node --version
npm --version
git --version
gh --version
gh auth status
codex --versioncp .env.example .envVariaveis principais:
APP_HOSTeAPP_PORT: bind local do ExpressSESSION_SECRET: segredo da sessaoADMIN_USERNAMEeADMIN_PASSWORD: seed do administradorSQLITE_FILENAME: arquivo SQLitePROJECTS_ROOTeSTORAGE_ROOT: diretorios locais gerenciados pela aplicacao
npm installnpm run migrate
npm run seednpm run devComandos separados:
npm run dev:server
npm run dev:worker
npm run dev:clientExemplo de cron local:
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin
PROJECT_DIR=/path/to/local-pr-review-board
*/10 * * * * cd "$PROJECT_DIR" && npm run sync:prs >> storage/logs/sync-prs.log 2>&1
*/15 * * * * cd "$PROJECT_DIR" && npm run reviews:cron >> storage/logs/reviews-cron.log 2>&1Comandos operacionais:
npm run sync:prs
npm run reviews:cronO sync:prs faz:
- recovery de estados expirados
- sync de todos os repositorios
configuredeready - importacao de PRs elegiveis
- importacao de comentarios inline, respostas e resolucoes
O reviews:cron faz:
- lock global para impedir duas execucoes concorrentes
- recovery de locks expirados, review runs travados e worktrees orfaos
- sincronizacao dos PRs elegiveis antes de montar a fila
- execucao sequencial em modo
analysis - persistencia do resultado validado
O reviews:cron nao publica comentarios automaticamente. A publicacao e manual pela interface.
client/ frontend Vue 3 + Vite
server/ backend Express + Knex + SQLite
docs/ instrucoes centrais, schema e modelo de banco
data/ banco SQLite local
projects/ clones e worktrees descartaveis
storage/ logs e artefatos operacionais
- todos os comandos externos devem usar
spawn(..., { shell: false }) - o Codex nao publica nada diretamente no GitHub
- reviews so podem ocorrer com repositorio
configured = 1 - worktrees sao descartaveis
- markdown renderizado na UI deve ser sanitizado
- o bind padrao e
127.0.0.1
- login local com sessao
- cadastro de repositorio e upload opcional de instrucoes
- enfileiramento de clone assincrono
- sincronizacao de PRs via
gh - execucao de reviews pelo cron local com
codex exec
O Codex roda dentro de um worktree descartavel criado a partir do clone local do repositorio, no head_sha exato do PR. Para comparar com a base, o backend atualiza a branch base, informa base_sha no prompt e o Codex pode usar comandos Git locais como git diff <base_sha>...HEAD ou git show <base_sha>:<path>.
Detalhes: Arquitetura - Uso do Repositorio Local pelo Codex.
GET /api/health: healthcheck simplesGET /api/diagnostics: status inicial de ferramentas e diretorios- logs operacionais ficam em
storage/logs - eventos operacionais tambem sao persistidos em
audit_logs npm run sync:prsenpm run reviews:cronexecutam recovery basico antes do fluxo principal- worktrees descartaveis sem
review_runativo sao limpos automaticamente
- publicacao automatica de comentarios esta desligada por seguranca
- paginacao de comentarios/review threads ainda usa limite de 100 itens por PR
- cobertura de testes ainda pode ser expandida
- ver
todo.mdpara proximos passos