Referência
Dados e privacidade
As revisões ficam na pasta do seu projeto. As configurações ficam em ~/.ferret/, e as chaves e contas na pasta de dados do usuário do sistema. Só os relatórios de falhas chegam ao desenvolvedor, pelo Sentry, e você pode desativá-los. O feedback que você decidir enviar pelo app vira uma issue pública no GitHub.
#Dentro de .ferret/reviews/
<project>/.ferret/reviews/20261003-104500/
├── feedback.md # what the agent reads
├── 01.png, 02.png… # one or more images per finding
├── session.json # review state and edit history
├── events.jsonl # action log (built-in browser only)
├── recording.webm # the video
└── work/ # intermediate audio and frames
As revisões feitas antes da mudança de nome ficam em .ade-movie/reviews/. Elas continuam sendo listadas e abertas, e as novas revisões vão para .ferret/reviews/.
Quando a gravação começa, .ferret/ é acrescentado ao .git/info/exclude. Worktrees e submódulos são tratados. O .gitignore nunca é modificado. Uma revisão interrompida pode ser recuperada pelo histórico se os registros dela sobreviveram. Nesse caso, o app avisa que os últimos segundos podem estar faltando.
#Retenção
Manter gravações (7 dias por padrão, 30 dias ou Para sempre): ao iniciar, as revisões concluídas mais antigas que isso perdem o recording.webm e a pasta work/. O feedback.md e as imagens dos apontamentos são mantidos. Revisões incompletas nunca são limpas. A limpeza é feita ao iniciar, no último projeto aberto.
#O que sai da sua máquina
| Quando | Destino | Dados |
|---|---|---|
| Transcrição: No dispositivo (gratuito) | nenhum | — |
| Transcrição: OpenAI / compatível | OpenAI ou a sua Base URL | trechos de áudio |
| Download de modelo | Hugging Face | requisição do arquivo |
| Organizar | a sua CLI do Claude Code / Codex, ou o endpoint de LLM que você definir em organizer | apenas texto e registro de ações (sem imagens, áudio ou vídeo) |
| Verificação de aceitação (modelo de decisão, desativada por padrão) | o seu agente, pelo relay local, para Ollama / Cloudflare / AI Gateway / TypeSafe / a sua URL | o que o agente envia: o texto do apontamento, o "Done when" e as capturas de tela ANTES/DEPOIS (só modelos de imagem) |
| Enviar ao Agent | o agente no seu terminal | uma instrução que aponta para o feedback.md |
| Enviar ao GitHub | GitHub, via gh | apenas o texto do corpo (sem imagens) |
| Uso no rodapé (só Claude Code e Codex) | Anthropic, ChatGPT | requisição de uso com o seu próprio login |
| Pedido de estrela no GitHub | GitHub, via o seu gh | verifica se você deu estrela ao repositório e só dá a estrela se você clicar em Dar estrela no GitHub |
| Verificar atualizações (manual) | servidor de download (Cloudflare R2) | requisição do latest.json |
| Envio de feedback pelo app (só quando você envia; em breve) | o relay de feedback do desenvolvedor (um Cloudflare Worker), que abre uma issue pública em JapanMarketing-Dev/ferret | o seu texto, se é bug ou ideia, versão do app / do sistema e CPU, e até 3 capturas de tela que você anexar. Chaves, tokens, endereços de e-mail e caminhos da pasta pessoal são mascarados. O relay não armazena o seu endereço IP (veja Feedback pelo app) |
| Uma falha ou erro (Enviar relatórios de falhas ativado) | Sentry | stack trace e versões do sistema / CPU / app (veja Relatórios de falhas) |
- O app não tem analytics, rastreamento de desempenho nem gravação de sessão (session replay). Os únicos dados que ele envia sem você pedir são os relatórios de falhas: erros, uma sessão por execução e avisos de inicialização lenta e de travamento, todos descritos abaixo e todos controlados por Enviar relatórios de falhas.
- Valores com cara de segredo em URLs (tokens, chaves) são ocultados antes de serem gravados no
feedback.md. - O texto capturado da página é marcado como dados no
feedback.md, então o agente é instruído a não seguir instruções encontradas nele. - Este site (não o app) conta visualizações de página com o Cloudflare Web Analytics: sem cookies, sem rastreamento entre sites e sem dados pessoais.
#Feedback pelo app
Em breve
O formulário de feedback dentro do app e o relay dele ainda não foram lançados. Esta seção descreve como vão funcionar.
Você vai poder enviar um relato de bug ou uma ideia de dentro do Ferret sem uma conta no GitHub. Ele só é enviado quando você o envia e vira uma issue pública em JapanMarketing-Dev/ferret (abre em uma nova aba), com o rótulo from-app. Não inclua nada que você não publicaria abertamente.
- O app envia do seu computador para um pequeno relay (um Cloudflare Worker mantido pelo desenvolvedor), que abre a issue com o próprio token do GitHub. Esse relay é o único servidor do desenvolvedor que recebe algo que você escreve.
- Enviado: o seu título e texto, se é um bug ou uma ideia, a versão do app e até 3 capturas de tela PNG ou JPEG que você anexar. O nome e a versão do sistema operacional, a arquitetura da CPU e o ID aleatório de instalação só são enviados se você os mantiver incluídos. Não enviado: seu nome, e-mail, conta do GitHub, arquivos do projeto, gravações ou apontamentos.
- Antes de criar a issue, o relay mascara textos que parecem chaves ou tokens, endereços de e-mail e o nome de usuário em caminhos da pasta pessoal, e impede que
@mentionsnotifiquem alguém. Ele também remove a localização e outros metadados das capturas de tela. Confira o seu texto mesmo assim: o mascaramento não pega tudo. - O relay não armazena o seu endereço IP. Para limitar a frequência com que um mesmo remetente pode publicar (5 por hora, 20 por dia), ele conta um hash com chave do endereço IP (e do ID de instalação, se enviado) por até 24 horas e depois o exclui. Nenhum dos dois aparece na issue.
- As capturas de tela são guardadas pelo relay no Cloudflare R2 com nomes impossíveis de adivinhar e exibidas na issue. Para que uma issue ou as capturas dela sejam removidas, comente na issue ou abra uma nova.
- O código do relay está em
workers/feedback-relayno repositório.
#Relatórios de falhas
Quando o app falha ou encontra um erro não tratado, o Ferret envia um relatório de falha ao Sentry (abre em uma nova aba) para que o bug possa ser corrigido. Isso vem ativado por padrão. Desative em Configurações → Privacidade → Enviar relatórios de falhas ou com Desativar no aviso mostrado na primeira execução. Desativar tem efeito imediato. Reativar tem efeito na próxima execução. As versões de desenvolvimento (pnpm dev) também enviam, marcadas como development, para que os desenvolvedores possam corrigir as falhas que encontram enquanto trabalham. Execuções de E2E e testes unitários nunca enviam.
| Enviado | Não enviado |
|---|---|
|
|
O app instalado envia no máximo 10 relatórios por execução e só metade dos erros de JavaScript (as falhas nativas são sempre enviadas). As versões de desenvolvimento enviam todos os erros, até 50 por execução. O mesmo erro só é enviado uma vez por execução. Inicializações lentas (mais de 5 segundos) e travamentos longos do app (mais de 1 segundo) são enviados como avisos, no máximo uma vez a cada 10 minutos. Não é usado rastreamento de desempenho nem gravação de sessão. O app usa o plano gratuito do Sentry. Se ele lotar, os relatórios extras são descartados e ninguém é cobrado.
Vai compilar o Ferret você mesmo? Defina FERRET_SENTRY_DSN (o nome antigo MOVIE_ADE_SENTRY_DSN também funciona) com o seu próprio DSN do Sentry, ou com uma string vazia para não enviar nada. O código está em src/main/telemetry.ts e src/shared/telemetry.ts.
Ajude a traduzir esta página no GitHub (abre em uma nova aba)