FaundrDocumentaçãoAbrir o painelPainel

Proteção e automações

Proteção contra desastres

Uma IA programando erra como qualquer pessoa, só que mais rápido. O Faundr não tenta impedir todo erro. Ele faz três coisas: barra o que não tem volta, pede a sua confirmação no que é arriscado e guarda pontos de volta para você desfazer o resto.

Comandos barrados

Estes comandos nunca rodam quando o agente tenta. O agente é orientado a não procurar outro jeito de fazer a mesma coisa. Se você quiser mesmo, rode o comando à mão, no seu terminal.

  • Apagar tudo: rm -rf na raiz do disco, na pasta pessoal ou na própria pasta do projeto.
  • Formatar disco: mkfs, format C:, diskpart e parecidos.
  • Zerar o banco ligado: supabase db reset --linked, que normalmente aponta para o banco de produção.
  • Instalar um pacote que não existe: quando o agente tenta npm install, pnpm add, pip install (ou yarn, bun, uv, poetry) de um pacote que o npm ou o PyPI não conhecem. IAs às vezes inventam nomes de pacotes, e golpistas registram esses nomes com código malicioso.

Comandos que pedem a sua confirmação

Estes comandos têm uso legítimo, mas podem apagar trabalho ou dados. Quando o agente tenta um deles, ele para e pergunta a você antes, com uma explicação do risco.

Git

  • git push --force, que pode sobrescrever o trabalho de outras pessoas;
  • git reset --hard, git checkout ., git restore ., git checkout -f e git clean -f, que descartam mudanças não salvas;
  • git stash drop e git stash clear;
  • git branch -D;
  • git filter-branch e git filter-repo, que reescrevem o histórico;
  • git push direto na branch principal enquanto outra pessoa do time está trabalhando no projeto. O combinado é juntar pela mesa de trabalho, com /faundr:merge.

Banco de dados

  • SQL que apaga ou altera em massa: DROP, TRUNCATE, DELETE ou UPDATE sem WHERE, ALTER TABLE … DROP;
  • comandos de migração e reset: supabase db push, supabase db reset, supabase migration up --linked, prisma migrate reset, prisma migrate deploy, prisma db push --accept-data-loss, drizzle-kit push, rails db:drop, dropdb, redis-cli flushall, comandos de reset do Firebase e do Heroku;
  • SQL perigoso rodado no banco D1 da Cloudflare na nuvem (wrangler d1 execute --remote).

Banco na nuvem

  • Migração, seed ou script de banco enquanto o .env aponta para um banco na nuvem. O aviso diz se é o mesmo banco do app publicado, ou seja, se o comando mexe nos dados reais dos usuários.

Pastas

  • Apagar uma pasta fora do projeto.

Pacotes suspeitos

  • Pacote com menos de 30 dias de vida ou com menos de 100 downloads por semana. Pode ser legítimo, mas também é o perfil de um pacote falso.
Quando o risco é nos arquivos, o Faundr salva um ponto de volta antes de perguntar. Quando o risco é no banco, o aviso lembra que o ponto de volta não guarda dados e pede para conferir se existe backup.

Pontos de volta

Um ponto de volta é uma foto dos arquivos do projeto. O Faundr salva um sozinho:

  • antes da primeira mudança de cada sessão;
  • a cada 30 minutos de edições;
  • antes do primeiro comando da sessão que pode mudar arquivos;
  • antes de um comando arriscado que você confirmou.

Você também pode salvar um quando quiser: faundr checkpoint "antes de mexer no pagamento".

Voltar para quando funcionava

Use /faundr:undo, com ou sem uma pista de quando:

/faundr:undo
/faundr:undo antes de mexer no login

O agente:

  1. lista os pontos de volta mais recentes, com o que mudou depois de cada um;
  2. mostra o que a volta vai mudar: arquivos que voltam como eram, arquivos criados depois (que serão apagados) e arquivos apagados depois (que voltam);
  3. pede o seu OK antes de voltar.

Mesmo que o agente tente voltar sem passar por esses passos, ele para e pergunta no terminal, mostrando a mesma lista do que muda. Nenhuma volta acontece sem você aprovar.

Antes de voltar, ele salva o estado atual como um ponto novo. Então, se a volta não era o que você queria, dá para desfazê-la também.

No painel, a seção Proteção → Pontos de volta lista os últimos 30 pontos. Cada um mostra o pedido da sessão e o que você perde se voltar para ele: quantos arquivos voltam como eram (e perdem as mudanças feitas depois), quantos criados depois são apagados e quantos apagados depois voltam. Em Ver os arquivos aparece a lista. Cada ponto tem um botão que copia o comando para voltar a ele.

No time, cada pessoa volta só os próprios pontos. A foto fica no git do computador de quem estava trabalhando; o painel recebe só a lista. Por isso a lista abre em Meus pontos, e em Time aparecem os pontos das outras pessoas, com o nome de quem salvou, sem o botão de voltar. Se precisar que alguém volte um ponto, mande um pedido em Atividade → Agora.

A volta vale para o projeto inteiro, não só para alguns arquivos. Voltar para um ponto de uma semana atrás deixa todos os arquivos como estavam naquele momento: o que foi feito na semana sai dos arquivos junto, inclusive o que veio de outras pessoas com git pull. Como tudo volta junto, o código fica coerente. O que pode não bater é o que fica de fora da foto: o banco de dados (uma migração aplicada na semana continua lá), os pacotes instalados (rode npm install depois) e o .env. O trabalho não se perde: o estado de antes da volta fica salvo como ponto novo, e o que já tinha commit continua no histórico do git.

O que um ponto de volta não guarda

  • O banco de dados. Dados apagados não voltam. Para isso, você precisa de backup do banco (veja o item "Backup testado" em Lançamento e LGPD).
  • Arquivos ignorados pelo git, como o .env e o node_modules.
  • A pasta .faundr/.

Como funciona por dentro

Os pontos ficam guardados no próprio git do projeto, numa área separada (refs/faundr/checkpoints). Eles não mexem na sua branch, no histórico de commits, no stash nem no git status, e funcionam sem internet. O Faundr guarda os 50 mais recentes.

Por isso, pontos de volta precisam de git na pasta. Se o projeto ainda não usa git, o agente oferece rodar git init.

Pontos de volta funcionam mesmo para mudanças feitas por comandos (um script que reescreveu arquivos, por exemplo), não só para edições do agente.

Chaves e senhas

  • O Faundr barra a gravação das chaves mais perigosas direto no código (veja O que o Faundr faz sozinho).
  • A checagem de segurança procura chaves já escritas no código e, uma vez por semana, no histórico do git.
  • Ela também avisa quando o .env foi para o git e quando uma variável que vai para o navegador (VITE_, NEXT_PUBLIC_) guarda um segredo.

Se uma chave vazou, não basta apagá-la do código: ela continua no histórico do git e pode já ter sido copiada. /faundr:security-fix S-n corrige o código e explica como trocar a chave no provedor.

O agente andando em círculos

Quando o agente tenta a mesma correção várias vezes sem resolver, ele costuma piorar o código a cada tentativa. O Faundr percebe dois sinais:

  • o mesmo erro voltou 3 vezes seguidas no mesmo comando;
  • o mesmo arquivo vai ser mudado pela 7ª vez enquanto um comando continua falhando.

Nos dois casos, o agente recebe a orientação de parar, explicar a você o que está acontecendo, procurar a causa em vez de tentar mais uma vez, e sugerir voltar a um ponto anterior com /faundr:undo.

Testes e o banco de produção

Se os testes do projeto parecem apontar para o banco de produção, o Faundr não roda os testes até você confirmar. O caminho seguro é um arquivo .env.test apontando para um banco de teste. Veja Testes.

Comandos

Os pontos de volta são fotos dos arquivos guardadas no git do seu computador, sem mexer nas suas branches nem no histórico. Use estes comandos no seu agente de IA, na pasta ligada ao projeto.

Antes da primeira mudança de cada sessão (e a cada 30 min de edições), o Faundr salva um ponto de volta dos arquivos. Comandos que apagam trabalho ou dados (git reset --hard, DROP TABLE, rm -rf…) pedem a sua confirmação antes, e os que não têm volta são barrados.

  • /faundr:undo [quando ou o que desfazer]

    Volta os arquivos para um ponto de volta, "para quando funcionava". A IA mostra o que muda e só volta com o seu OK; o estado de antes também fica salvo.

    ex.: /faundr:undo antes de mexer no login

  • !faundr checkpoints

    Lista os pontos de volta no terminal, com o motivo e o que mudou depois de cada um.

  • !faundr checkpoint "<motivo>"

    Salva um ponto de volta agora, antes de uma mudança grande.

    ex.: !faundr checkpoint "antes de trocar o banco"

  • !faundr restore <nº> [--yes]

    Sem --yes, só mostra o que mudaria. Com --yes, salva o estado atual como um ponto novo e então volta os arquivos, então a volta também pode ser desfeita.

    ex.: !faundr restore 2