Riferimento

Dati e privacy

Le revisioni si trovano nella cartella del progetto. Le impostazioni sono in ~/.ferret/, e chiavi e account nella cartella dei dati utente del sistema operativo. Solo i report sugli arresti anomali raggiungono lo sviluppatore, tramite Sentry, e puoi disattivarli. Il feedback che scegli di inviare dall'app diventa una issue pubblica su GitHub.

#Dentro .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

Le revisioni create prima del cambio di nome si trovano in .ade-movie/reviews/. Vengono ancora elencate e aperte, e le nuove revisioni vanno in .ferret/reviews/.

All'avvio della registrazione, .ferret/ viene aggiunto a .git/info/exclude. Worktree e submodule sono gestiti. .gitignore non viene mai modificato. Una revisione interrotta si può recuperare dalla cronologia se i suoi dati sono sopravvissuti. In tal caso l'app avvisa che gli ultimi secondi potrebbero mancare.

#Conservazione

Conserva registrazioni (7 giorni per impostazione predefinita, 30 giorni oppure Per sempre): all'avvio, le revisioni completate più vecchie di così perdono recording.webm e work/. feedback.md e le immagini delle segnalazioni vengono conservati. Le revisioni incomplete non vengono mai ripulite. La pulizia avviene all'avvio, per l'ultimo progetto aperto.

#Cosa lascia la tua macchina

QuandoDestinazioneDati
Trascrizione: Sul dispositivo (gratuito)nessuna—
Trascrizione: OpenAI / compatibileOpenAI o il tuo Base URLblocchi di audio
Download del modelloHugging Facerichiesta del file
Organizzala tua CLI di Claude Code / Codex, oppure l'endpoint LLM impostato in organizersolo testo e registro delle azioni (niente immagini, audio o video)
Verifica di accettazione (modello di decisione, disattivata per impostazione predefinita)il tuo agent, tramite il relay locale, verso Ollama / Cloudflare / AI Gateway / TypeSafe / il tuo URLciò che invia l'agent: testo della segnalazione, "Fatto quando" e screenshot PRIMA/DOPO (solo modelli che leggono immagini)
Invia all'Agentl'agent nel tuo terminaleun'istruzione che rimanda a feedback.md
Invia a GitHubGitHub tramite ghsolo il testo del corpo (niente immagini)
Utilizzo nel footer (solo Claude Code e Codex)Anthropic, ChatGPTrichiesta di utilizzo con il tuo accesso
Richiesta di stella su GitHubGitHub tramite il tuo ghcontrolla se hai aggiunto una stella al repository, e la aggiunge solo se fai clic su Aggiungi stella su GitHub
Verifica aggiornamenti (manuale)server di download (Cloudflare R2)richiesta di latest.json
Invio di feedback dall'app (solo quando lo invii; in arrivo)il relay di feedback dello sviluppatore (un Cloudflare Worker), che apre una issue pubblica in JapanMarketing-Dev/ferretil tuo testo, bug o idea, versione dell'app / del sistema operativo e CPU, e fino a 3 screenshot che alleghi. Chiavi, token, indirizzi email e percorsi della cartella home vengono mascherati. Il relay non memorizza il tuo indirizzo IP (vedi Feedback dall'app)
Un arresto anomalo o un errore (Invia report sugli arresti anomali attivo)Sentrystack trace e versioni di sistema operativo / CPU / app (vedi Report sugli arresti anomali)
  • L'app non ha analytics, né tracciamento delle prestazioni, né session replay. Gli unici dati che invia senza che tu lo chieda sono i report sugli arresti anomali: errori, una sessione per avvio e avvisi di avvio lento e di blocco, tutti descritti più sotto e tutti controllati da Invia report sugli arresti anomali.
  • I valori che sembrano segreti negli URL (token, chiavi) vengono oscurati prima di essere scritti in feedback.md.
  • Il testo catturato dalla pagina è contrassegnato come dati in feedback.md, quindi all'agent viene detto di non seguire le istruzioni che vi si trovano.
  • Questo sito web (non l'app) conta le visualizzazioni delle pagine con Cloudflare Web Analytics: senza cookie, senza tracciamento tra siti e senza dati personali.

#Feedback dall'app

In arrivo

Il modulo di feedback nell'app e il suo relay non sono ancora stati rilasciati. Questa sezione descrive come funzioneranno.

Potrai inviare una segnalazione di bug o un'idea dall'interno di Ferret senza un account GitHub. Viene inviata solo quando la invii tu, e diventa una issue pubblica in JapanMarketing-Dev/ferret (si apre in una nuova scheda), con l'etichetta from-app. Non includere nulla che non pubblicheresti apertamente.

  • L'app la invia dal tuo computer a un piccolo relay (un Cloudflare Worker gestito dallo sviluppatore), che apre la issue con il proprio token GitHub. Questo relay è l'unico server dello sviluppatore che riceve qualcosa di ciò che scrivi.
  • Inviati: titolo e testo, se si tratta di un bug o di un'idea, la versione dell'app e fino a 3 screenshot PNG o JPEG che alleghi. Nome e versione del sistema operativo, architettura della CPU e l'ID di installazione casuale vengono inviati solo se li lasci inclusi. Non inviati: il tuo nome, la tua email, il tuo account GitHub, i file del progetto, le registrazioni o le segnalazioni.
  • Prima che la issue venga creata, il relay maschera il testo che sembra una chiave o un token, gli indirizzi email e il nome utente nei percorsi della cartella home, e impedisce alle @mentions di inviare notifiche. Rimuove anche la posizione e gli altri metadati dagli screenshot. Controlla comunque il testo: il mascheramento non può intercettare tutto.
  • Il relay non memorizza il tuo indirizzo IP. Per limitare la frequenza con cui uno stesso mittente può pubblicare (5 all'ora, 20 al giorno), conta un hash con chiave dell'indirizzo IP (e dell'ID di installazione, se inviato) per un massimo di 24 ore, poi lo elimina. Nessuno dei due compare nella issue.
  • Gli screenshot vengono conservati dal relay in Cloudflare R2 con nomi non indovinabili e mostrati nella issue. Per far rimuovere una issue o i suoi screenshot, commenta la issue o aprine una nuova.
  • Il codice del relay si trova in workers/feedback-relay nel repository.

#Report sugli arresti anomali

Quando l'app si arresta in modo anomalo o incontra un errore non gestito, Ferret invia un report a Sentry (si apre in una nuova scheda) perché il bug possa essere corretto. È attivo per impostazione predefinita. Disattivalo in Impostazioni → Privacy → Invia report sugli arresti anomali, oppure con Disattiva nell'avviso mostrato al primo avvio. La disattivazione ha effetto immediato. La riattivazione ha effetto dal successivo avvio. Anche le build di sviluppo (pnpm dev) inviano report, con il tag development, così gli sviluppatori possono correggere gli arresti anomali che incontrano mentre lavorano. Le esecuzioni E2E e i test unitari non inviano mai nulla.

InviatoNon inviato
  • Tipo e messaggio dell'errore, con i percorsi della cartella home mostrati come ~
  • Stack trace (in quale punto del codice di Ferret è successo)
  • Per gli arresti anomali nativi: solo quale processo si è arrestato, perché è terminato (per esempio crashed o oom) e la versione dell'app
  • Nome e versione del sistema operativo, architettura della CPU, versioni di Electron / Chrome / Node, versione dell'app, dimensioni dello schermo, quantità di memoria
  • Eventi del ciclo di vita dell'app subito prima dell'errore (per esempio app.ready) e i fallimenti all'avvio
  • Quale parte dell'app ha avuto il problema: un'area dello schermo che non è stato possibile renderizzare (e i nomi dei suoi componenti React), una chiamata IPC, un terminale che non è stato possibile avviare, un processo arrestato o bloccato, oppure una pagina dell'app che non è stato possibile caricare
  • Dove ti trovavi nell'app: modalità editor o feedback, la scheda aperta (Browser, Segnalazioni, Impostazioni o semplicemente file) e se era in corso una registrazione
  • Una sessione per avvio (avviata, terminata normalmente o arrestata in modo anomalo), così da poter misurare il tasso di sessioni senza arresti anomali di ogni versione
  • Un ID di installazione casuale (creato al primo avvio e conservato nella cartella delle impostazioni dell'app), così da poter contare il numero di installazioni interessate. Non è collegato al tuo nome, alla tua email o al tuo dispositivo
  • Solo per gli arresti anomali JavaScript: le ultime 50 righe di log di Ferret stesso (come [startup] e [recording]), accorciate e con percorsi, URL, email e chiavi rimossi
  • Il percorso della cartella del progetto e i nomi dei file (sostituiti da <project>)
  • Gli URL aperti nel browser integrato e qualsiasi altro indirizzo web (sostituiti da <url>)
  • Output del terminale, trascrizioni, segnalazioni, testo delle pagine, screenshot
  • Indirizzi email e chiavi API o token (sostituiti)
  • Il tuo nome, il nome del dispositivo, l'indirizzo IP (non memorizzato), i cookie, le variabili locali
  • I dump di memoria degli arresti anomali nativi (minidump). Possono contenere qualsiasi cosa fosse in memoria, quindi restano sul tuo computer
  • Clic, richieste di rete e qualsiasi riga di log che non sia di Ferret stesso

L'app installata invia al massimo 10 report per avvio e solo metà degli errori JavaScript (gli arresti anomali nativi vengono sempre inviati). Le build di sviluppo inviano ogni errore, fino a 50 per avvio. Lo stesso errore viene inviato una sola volta per avvio. Gli avvii lenti (oltre 5 secondi) e i blocchi prolungati dell'app (oltre 1 secondo) vengono inviati come avvisi, al massimo una volta ogni 10 minuti. Non si usano tracciamento delle prestazioni né session replay. L'app usa il piano gratuito di Sentry. Se si esaurisce, i report in eccesso vengono scartati e a nessuno viene addebitato nulla.

Compili Ferret da te? Imposta FERRET_SENTRY_DSN (funziona anche il vecchio nome MOVIE_ADE_SENTRY_DSN) sul tuo DSN di Sentry, oppure su una stringa vuota per non inviare nulla. Il codice si trova in src/main/telemetry.ts e src/shared/telemetry.ts.

Aiuta a tradurre questa pagina su GitHub (si apre in una nuova scheda)