リファレンス
データとプライバシー
レビューはプロジェクトのフォルダに、設定は ~/.ferret/ に、キーとアカウントは OS のユーザーデータのフォルダに置かれます。開発者に届くのは Sentry 経由のクラッシュレポートだけで、これは止められます。アプリから自分で送ったフィードバックは、公開の GitHub の issue になります。
#.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
名前を変える前に作ったレビューは .ade-movie/reviews/ にあります。これも一覧に出て開けます。新しいレビューは .ferret/reviews/ に入ります。
録画を始めると、.git/info/exclude に .ferret/ を書き足します。worktree と submodule にも対応しています。.gitignore は書き換えません。途中で止まったレビューは、記録が残っていれば履歴から復元できます。そのときは、最後の数秒が欠けているかもしれないと警告が出ます。
#保管期間
録画の保管(最初の設定は7日。30日か ずっと も選べます): 起動したとき、その期間より古い完了済みのレビューから recording.webm と work/ を消します。feedback.md と指摘の画像は残ります。完了していないレビューは消しません。消す処理は起動時に、最後に開いたプロジェクトに対して行います。
#外に出るデータ
| いつ | 送り先 | データ |
|---|---|---|
| 文字起こし: この端末(無料) | なし | — |
| 文字起こし: OpenAI / 互換 | OpenAI か、自分で決めた Base URL | 音声の断片 |
| モデルのダウンロード | Hugging Face | ファイルの要求 |
| 整理 | 自分の Claude Code / Codex CLI か、organizer で設定した LLM のエンドポイント | 文字と操作の記録だけ(画像・音声・動画は送らない) |
| 受け入れの判定(判定モデル。最初はオフ) | 自分のエージェントから、ローカルの中継を通って Ollama / Cloudflare / AI Gateway / TypeSafe / 自分の URL へ | エージェントが送るもの: 指摘の文、「完了の条件」、BEFORE/AFTER のスクリーンショット(画像を扱えるモデルのときだけ) |
| Agentへ送信 | ターミナルのエージェント | feedback.md を指す指示1つ |
| GitHub に送る | gh 経由で GitHub | 本文だけ(画像は送らない) |
| フッターの使用量(Claude Code と Codex だけ) | Anthropic、ChatGPT | 自分のログインで使用量を問い合わせる |
| GitHub の star のお願い | 自分の gh 経由で GitHub | リポジトリに star 済みかを確かめ、GitHub で star を押したときだけ star する |
| 更新を確認(手動) | ダウンロードのサーバー(Cloudflare R2) | latest.json の要求 |
| アプリからフィードバックを送る(送ったときだけ。準備中) | 開発者のフィードバック中継(Cloudflare Worker)。ここが JapanMarketing-Dev/ferret に公開の issue を作る | 書いた文、不具合か案か、アプリ / OS のバージョンと CPU、添えたスクリーンショット3枚まで。キー、トークン、メールアドレス、ホームフォルダのパスは伏せます。中継は IP アドレスを保存しません(アプリからのフィードバックを参照) |
| クラッシュやエラー(クラッシュレポートを送る がオン) | Sentry | スタックトレースと OS / CPU / アプリのバージョン(クラッシュレポートを参照) |
- アプリにはアクセス解析も、パフォーマンスのトレースも、セッションリプレイもありません。頼まれずに送るのはクラッシュレポートだけです。中身はエラー、起動ごとに1つのセッション、遅い起動と固まったときの警告で、どれも下で説明しているとおり クラッシュレポートを送る で止められます。
- URL の中の秘密らしい値(トークン、キー)は、
feedback.mdに書く前に伏せます。 - ページから取った文字は
feedback.mdでデータとして印を付けるので、エージェントにはその中の指示に従わないよう伝わります。 - この Web サイト(アプリではなく)は、Cloudflare Web Analytics でページの閲覧数を数えています。Cookie を使わず、サイトをまたいだ追跡もせず、個人のデータも取りません。
#アプリからのフィードバック
準備中
アプリ内のフィードバックの入力画面と、その中継はまだ公開していません。この節では、公開後の動きを説明します。
GitHub のアカウントが無くても、Ferret の中から不具合の報告や案を送れるようになります。送るのは自分で送ったときだけで、JapanMarketing-Dev/ferret (新しいタブで開きます) に from-app のラベル付きで公開の issue として載ります。人前に出したくないことは書かないでください。
- アプリは自分のパソコンから小さな中継(開発者が動かす Cloudflare Worker)へ送り、中継が自分の GitHub のトークンで issue を作ります。書いた内容を受け取る開発者のサーバーは、この中継だけです。
- 送るもの: 題名と本文、不具合か案か、アプリのバージョン、添えた PNG か JPEG のスクリーンショット3枚まで。OS の名前とバージョン、CPU のアーキテクチャ、ランダムなインストール ID は、含めたままにしたときだけ送ります。送らないもの: 名前、メールアドレス、GitHub のアカウント、プロジェクトのファイル、録画、指摘。
- issue を作る前に、中継はキーやトークンに見える文字、メールアドレス、ホームフォルダのパスの中のユーザー名を伏せ、
@mentionsで誰かに通知が飛ばないようにします。スクリーンショットからは位置情報などのメタデータも取り除きます。それでも伏せきれないことがあるので、文は自分でも確かめてください。 - 中継は IP アドレスを保存しません。1人が投稿できる回数(1時間に5回、1日に20回)を抑えるため、IP アドレス(と、送っていればインストール ID)の鍵付きハッシュを最長24時間数え、その後に消します。どちらも issue には出ません。
- スクリーンショットは、中継が推測できない名前で Cloudflare R2 に置き、issue に表示します。issue やそのスクリーンショットを消してほしいときは、その issue にコメントするか、新しい issue を作ってください。
- 中継のコードはリポジトリの
workers/feedback-relayにあります。
#クラッシュレポート
アプリが落ちたり、処理されないエラーが起きたりすると、Ferret は不具合を直せるよう Sentry (新しいタブで開きます) にクラッシュレポートを送ります。最初の設定ではオンです。設定 → プライバシー → クラッシュレポートを送る か、初回の起動で出るお知らせの OFF にする で止められます。止めるとすぐに効きます。もう一度オンにしたときは、次の起動から効きます。開発用のビルド(pnpm dev)も development の札を付けて送るので、開発者は作業中に出会ったクラッシュも直せます。E2E の実行と単体テストからは送りません。
| 送るもの | 送らないもの |
|---|---|
|
|
インストールしたアプリが送るのは起動ごとに最大10件で、JavaScript のエラーは半分だけ送ります(ネイティブのクラッシュは必ず送ります)。開発用のビルドはすべてのエラーを、起動ごとに50件まで送ります。同じエラーは起動ごとに1回だけ送ります。遅い起動(5秒を超えるもの)と、アプリが長く固まったとき(1秒を超えるもの)は警告として、10分に1回まで送ります。パフォーマンスのトレースとセッションリプレイは使いません。アプリは Sentry の無料プランを使っています。上限に達したら余った分は捨てられ、誰にも料金はかかりません。
Ferret を自分でビルドする場合は、FERRET_SENTRY_DSN(古い名前の MOVIE_ADE_SENTRY_DSN も使えます)に自分の Sentry の DSN を入れるか、空の文字列にして何も送らないようにします。コードは src/main/telemetry.ts と src/shared/telemetry.ts にあります。