Skip to content

Peapod v0.3.0 🫛

Latest

Choose a tag to compare

@andre28abr andre28abr released this 11 Sep 03:38
· 15 commits to main since this release

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/fork aceitam allow (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_file sem 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; reap limpa sidecars/redes órfãos e usa atividade (último exec) 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 staticcheck e 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.json portável.
  • Manual técnico atualizado (embutido no app).

⬇️ Instalar

  • App (macOS 13+, Apple Silicon): baixe o Peapod.dmg abaixo, 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