Repository navigation
Peapod v0.3.0 🫛
Release de revisão e endurecimento: 9 bugs corrigidos, firewall disponível para os agentes, proxy anti-SSRF, app sem travar e CI que compila o app. Sandboxes isolados, descartáveis e auditados para a IA (ou você) rodar código não-confiável.
🔒 Segurança
- Firewall no MCP —
peapod_sandbox_create/forkaceitamallow(lista de domínios): o agente pede egresso mínimo em vez de "tudo ou nada". - Anti-SSRF — o proxy recusa destinos que resolvam para IPs privados/loopback/link-local mesmo em domínios liberados (fecha DNS rebinding); disca o IP resolvido, não o nome.
- Política de rede fail-closed — um valor inválido (typo em
--net) agora dá erro, em vez de cair silenciosamente na rede completa. - Timeout de verdade — o limite do
execé aplicado dentro do sandbox (watchdog, exit 137); antes só o cliente desistia e o processo continuava. - CSRF no dashboard — os endpoints de mutação exigem JSON e checam origem.
write_filesem interpolação de shell — paths com$, crase ou aspas são literais.- Sidecar do firewall com limites de CPU/memória/PIDs e imagem fixada;
reaplimpa sidecars/redes órfãos e usa atividade (últimoexec) em vez de idade.
🖥️ App de macOS
- Nada roda mais na thread principal — a janela não engasga a cada atualização.
- Erros visíveis: falhas (imagem inexistente, etc.) aparecem num aviso fixo com a causa; snapshot mostra a referência criada.
- A tela "OrbStack não está rodando" só aparece quando o motor está mesmo inalcançável.
- O app agora exige de fato macOS 13+ (antes o binário pedia 26 sem avisar). Apple Silicon.
🧪 Qualidade
- CI compila o app num runner macOS (e confere o macOS mínimo), roda
staticchecke o race detector. - Testes: 14 → 23 funções, incluindo verificações ao vivo (watchdog, path com metacaracteres, anti-SSRF, reap).
- Versão com fonte única (CLI, MCP e app sempre iguais);
.mcp.jsonportável. - Manual técnico atualizado (embutido no app).
⬇️ Instalar
- App (macOS 13+, Apple Silicon): baixe o
Peapod.dmgabaixo, arraste para Aplicativos e, na primeira abertura, botão direito → Abrir (app assinado ad-hoc, não notarizado). Ou:brew install --cask peapod. - CLI + servidor MCP:
brew tap andre28abr/peapod && brew trust andre28abr/peapod && brew install peapod - Requer OrbStack (ou Docker) rodando.
📖 Manual técnico · 🫛 Guia para todos
AGPL-3.0 © André Augusto Azarias De Souza