Référence
Données et confidentialité
Les relectures se trouvent dans le dossier de votre projet. Les réglages se trouvent dans ~/.ferret/, et les clés et les comptes dans le dossier de données utilisateur de l'OS. Seuls les rapports de plantage parviennent au développeur, via Sentry, et vous pouvez les désactiver. Les retours que vous choisissez d'envoyer depuis l'application deviennent une issue GitHub publique.
#Contenu 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
Les relectures faites avant le changement de nom se trouvent dans .ade-movie/reviews/. Elles restent listées et peuvent toujours être ouvertes, et les nouvelles relectures vont dans .ferret/reviews/.
Au démarrage d'un enregistrement, .ferret/ est ajouté à .git/info/exclude. Les worktrees et les sous-modules sont pris en charge. .gitignore n'est jamais modifié. Une relecture interrompue peut être récupérée depuis l'historique si ses enregistrements ont survécu. L'application avertit alors que les dernières secondes peuvent manquer.
#Conservation
Conserver les enregistrements (7 jours par défaut, 30 jours ou Indéfiniment) : au démarrage, les relectures terminées plus anciennes que ce délai perdent recording.webm et work/. feedback.md et les images des remarques sont conservés. Les relectures incomplètes ne sont jamais élaguées. L'élagage s'exécute au lancement, pour le dernier projet ouvert.
#Ce qui quitte votre machine
| Quand | Destination | Données |
|---|---|---|
| Transcription : Sur l'appareil (gratuit) | aucune | — |
| Transcription : OpenAI / compatible | OpenAI ou votre Base URL | segments audio |
| Téléchargement d'un modèle | Hugging Face | requête de fichier |
| Organiser | votre CLI Claude Code / Codex, ou l'endpoint de LLM défini dans organizer | texte et journal des actions uniquement (ni images, ni audio, ni vidéo) |
| Vérification d'acceptation (modèle de décision, désactivée par défaut) | votre agent, via le relais local, vers Ollama / Cloudflare / AI Gateway / TypeSafe / votre URL | ce que l'agent envoie : texte de la remarque, « Terminé quand » et captures d'écran AVANT/APRÈS (modèles lisant les images uniquement) |
| Envoyer à l'agent | l'agent de votre terminal | une instruction qui renvoie vers feedback.md |
| Envoyer sur GitHub | GitHub via gh | texte du corps uniquement (pas d'images) |
| Utilisation dans le pied de page (Claude Code et Codex uniquement) | Anthropic, ChatGPT | requête d'utilisation avec votre propre connexion |
| Demande d'étoile GitHub | GitHub via votre gh | vérifie si vous avez mis une étoile au dépôt, et n'en met une que si vous cliquez sur Mettre une étoile sur GitHub |
| Rechercher des mises à jour (manuel) | serveur de téléchargement (Cloudflare R2) | requête de latest.json |
| Envoi d'un retour depuis l'application (uniquement si vous l'envoyez ; bientôt disponible) | le relais de retours du développeur (un Cloudflare Worker), qui ouvre une issue publique dans JapanMarketing-Dev/ferret | votre texte, bug ou idée, la version de l'application et de l'OS, le processeur, et jusqu'à 3 captures d'écran jointes. Les clés, jetons, adresses e-mail et chemins du dossier personnel sont masqués. Le relais ne conserve pas votre adresse IP (voir Retours depuis l'application) |
| Plantage ou erreur (Envoyer les rapports de plantage activé) | Sentry | stack trace et versions de l'OS / du processeur / de l'application (voir Rapports de plantage) |
- L'application n'a ni analytics, ni traçage des performances, ni enregistrement de session (session replay). Les seules données qu'elle envoie sans que vous le demandiez sont les rapports de plantage : erreurs, une session par lancement, et avertissements de démarrage lent et de blocage, tous décrits ci-dessous et tous contrôlés par Envoyer les rapports de plantage.
- Les valeurs des URL qui ressemblent à des secrets (jetons, clés) sont masquées avant d'être écrites dans
feedback.md. - Le texte capturé sur la page est marqué comme données dans
feedback.md: l'agent est donc invité à ne pas suivre les instructions qu'il y trouverait. - Ce site web (et non l'application) compte les pages vues avec Cloudflare Web Analytics : sans cookie, sans pistage intersites et sans données personnelles.
#Retours depuis l'application
Bientôt disponible
Le formulaire de retours intégré à l'application et son relais ne sont pas encore publiés. Cette section décrit leur futur fonctionnement.
Vous pourrez envoyer un rapport de bug ou une idée depuis Ferret, sans compte GitHub. L'envoi n'a lieu que lorsque vous le déclenchez, et il devient une issue publique dans JapanMarketing-Dev/ferret (s'ouvre dans un nouvel onglet), avec le label from-app. N'y mettez rien que vous ne publieriez pas.
- L'application l'envoie depuis votre ordinateur vers un petit relais (un Cloudflare Worker exploité par le développeur), qui ouvre l'issue avec son propre jeton GitHub. Ce relais est le seul serveur du développeur qui reçoit ce que vous écrivez.
- Envoyé : votre titre et votre texte, s'il s'agit d'un bug ou d'une idée, la version de l'application, et jusqu'à 3 captures d'écran PNG ou JPEG jointes. Le nom et la version de l'OS, l'architecture du processeur et l'ID d'installation aléatoire ne sont envoyés que si vous les laissez inclus. Non envoyé : votre nom, votre e-mail, votre compte GitHub, les fichiers du projet, les enregistrements ou les remarques.
- Avant la création de l'issue, le relais masque le texte qui ressemble à des clés ou des jetons, les adresses e-mail et le nom d'utilisateur dans les chemins du dossier personnel, et empêche les
@mentionsde notifier qui que ce soit. Il supprime aussi la localisation et les autres métadonnées des captures d'écran. Relisez quand même votre texte : le masquage ne peut pas tout détecter. - Le relais ne conserve pas votre adresse IP. Pour limiter la fréquence des envois d'un même expéditeur (5 par heure, 20 par jour), il compte une empreinte à clé de l'adresse IP (et de l'ID d'installation, s'il est envoyé) pendant 24 heures au maximum, puis la supprime. Ni l'une ni l'autre n'apparaît dans l'issue.
- Les captures d'écran sont conservées par le relais dans Cloudflare R2 sous des noms impossibles à deviner, et affichées dans l'issue. Pour faire supprimer une issue ou ses captures d'écran, commentez l'issue ou ouvrez-en une nouvelle.
- Le code du relais se trouve dans
workers/feedback-relaydu dépôt.
#Rapports de plantage
Lorsque l'application plante ou rencontre une erreur non gérée, Ferret envoie un rapport de plantage à Sentry (s'ouvre dans un nouvel onglet) pour que le bug puisse être corrigé. C'est activé par défaut. Désactivez-le dans Réglages → Confidentialité → Envoyer les rapports de plantage, ou avec Désactiver dans l'avis affiché au premier lancement. La désactivation prend effet immédiatement. La réactivation prend effet au lancement suivant. Les versions de développement (pnpm dev) envoient aussi des rapports, marqués development, pour que les développeurs puissent corriger les plantages rencontrés pendant leur travail. Les exécutions E2E et les tests unitaires n'envoient jamais rien.
| Envoyé | Non envoyé |
|---|---|
|
|
L'application installée envoie au maximum 10 rapports par lancement et seulement la moitié des erreurs JavaScript (les plantages natifs sont toujours envoyés). Les versions de développement envoient chaque erreur, jusqu'à 50 par lancement. Une même erreur n'est envoyée qu'une fois par lancement. Les démarrages lents (plus de 5 secondes) et les longs blocages de l'application (plus de 1 seconde) sont envoyés comme avertissements, au maximum une fois toutes les 10 minutes. Aucun traçage des performances ni enregistrement de session n'est utilisé. L'application utilise l'offre gratuite de Sentry. Si elle est saturée, les rapports en trop sont abandonnés et personne n'est facturé.
Vous compilez Ferret vous-même ? Définissez FERRET_SENTRY_DSN (l'ancien nom MOVIE_ADE_SENTRY_DSN fonctionne aussi) avec votre propre DSN Sentry, ou avec une chaîne vide pour ne rien envoyer. Le code se trouve dans src/main/telemetry.ts et src/shared/telemetry.ts.
Aider à traduire cette page sur GitHub (s'ouvre dans un nouvel onglet)