対応する記録形式は何ですか
下表の形式に対応します。実装の照合と合成コマンドのテストは、CLI のエンドツーエンド認証ではありません。 2026-10-05 に確認した 0.6.0 の実装であり、すべてのリリースへの保証ではありません。
能力と検証表
7 つとも履歴閲覧・検索・エクスポート・ターミナル再開に対応します。内蔵チャットは Claude Code と Codex のみです。再開には対応する CLI のインストールと設定が必要です。コマンド比較を参照してください。
| エージェント | 対象形式 | 内蔵チャット | 検証の根拠 | 今回実行検証した CLI 版 |
|---|---|---|---|---|
| Claude Code | JSONL message.content の文字列/ブロック | 対応 | 合成抽出+Rust 解析投影 | 未検証 |
| Codex | session_meta、event_msg、response_item | 対応 | 合成 cwd/本文+Rust 解析投影 | 未検証 |
| Grok Build | updates.jsonl の ACP 更新 | 非対応 | 合成オブジェクト/配列チャンク | 未検証 |
| Kimi Code | 主 wire イベント、実装には旧形式の代替処理もある | 非対応 | 主イベントの合成例のみ | 未検証 |
| Pi | ヘッダーとメッセージ/ツリー | 非対応 | 保存された全分岐の合成テキスト | 未検証 |
| Antigravity CLI | transcript*.jsonl の step | 非対応 | 合成の複数行 XML | 未検証 |
| opencode | SQLite session、message、part | 非対応 | 合成 DB の読み取り専用 SQL | 未検証 |
macOS、Windows、Linux のインストーラを提供しますが、シェル例は macOS/Linux 構文で、各 OS の GUI 認証ではありません。対応する Antigravity には使用量フィールドがありません。旧形式、別保存先、画像、ツール、分岐、プロバイダの挙動は各リファレンスと確認手順を参照してください。
安全に再現できるサンプル
最小の合成テキスト抽出データであり、実際の会話や再開可能な完全なセッションではありません。画像/ツールの任意フィールドは省略しているため、実際の履歴としてインポート・再開しないでください。パスと入力は架空です。JSONL/SQL と期待出力は npm run docs:test と同じ入力です。
ダウンロード後、対応するリファレンスの抽出コマンドのファイル名を置き換えます。出力順は次のとおりです。
| エージェント | ダウンロード | 期待テキスト |
|---|---|---|
| Claude Code | claude-code.jsonl | Question、Answer、Legacy string |
| Codex | codex.jsonl | Question、Answer。cwd は /synthetic/project |
| Grok Build | grok-build.jsonl | Question、Answer |
| Kimi Code | kimi-code.jsonl | Question、Answer、Legacy string |
| Pi | pi.jsonl | Question、Answer、Other branch。現在の分岐のみではない |
| Antigravity CLI | antigravity-cli.jsonl | Question、on two lines。1 つの複数行入力 |
| opencode | opencode.sql | 照会から user と Question |
claude-code.jsonl を取得した例:
jq -r 'select(.type=="user" or .type=="assistant")
| .message.content
| if type=="string" then . else .[]? | select(.type=="text") | .text end' \
claude-code.jsonlQuestion
Answer
Legacy stringopencode SQL は縮小したスキーマを作ります。新しい一時 DB だけに読み込み、実際の opencode DB には使わないでください。
temp_dir="$(mktemp -d)"
sqlite3 "$temp_dir/synthetic.db" < opencode.sql
sqlite3 "file:$temp_dir/synthetic.db?mode=ro" \
"SELECT json_extract(data, '$.text') FROM part WHERE json_extract(data, '$.type') = 'text';"出力は Question です。テストでは親一覧が子を除外し、コスト合計に子を含め、読み取り後に DB が不変であることも確認します。実際の請求や opencode 移行の検証ではありません。
オフライン解析テストが示す範囲
3 つの検証範囲を区別します。
jq/SQL 抽出:npm run docs:testが上記の小さなサンプルに文書のコマンドを実行します。内容/SEO 回帰と画像の完全性も確認します。コマンド出力はアプリの解析結果ではありません。- 実際の Rust ファイル解析器:2026-10-06、macOS で 0.6.0 の Claude Code/Codex の解析と後処理を隔離した 2 テストが通りました。公開の期待投影と、role、本文、Claude thinking、ツール名/引数/ID/結果、メッセージ順序を照合し、一時入力が不変であることも確認します。Codex には空のタイトル索引を渡し、個人の索引を読みません。home 探索、CLI/ツール実行、プロバイダ通信はありません。
- 実際の CLI/GUI 全工程の受け入れ:今回は未実施です。画像、閲覧/検索/書き出し/再開、インストール済み CLI の版、プロバイダ挙動はこの例で認証しません。表に実行確認済みの CLI 版は追加していません。
| オフライン解析の入力 | 期待メッセージ |
|---|---|
| claude-code-adapter.jsonl | ユーザー質問 → assistant の thinking/本文/ツール呼び出し → user の結果 → 旧式ユーザー文字列 |
| codex-adapter.jsonl | ユーザー質問 → assistant のツール呼び出し → user の結果 → assistant の回答。重複 response 本文と無関係なメタデータを除外 |
adapter-expected.jsonに正確な照合フィールドがあります。これらもインポート/再開可能な完全な CLI 会話ではありません。echo synthetic などのツール引数はデータで、実行しません。
Rust/Tauri の依存関係をキャッシュ済みの環境で、リポジトリのルートから実行します。
npm run docs:test
npm run docs:test:adapters実際のコマンドは cargo test --manifest-path src-tauri/Cargo.toml --lib --locked --offline docs_public_fixture。この 2 テストのみ実行し、crate のキャッシュがなければ取得せず失敗します。既存の Rust CI に含まれ、Node 文書 CI は Rust に依存しません。ローカルの再現可能な根拠であり、公開やインデックスの証明ではありません。
形式の変更を報告するには
アプリ/CLI の版、OS、形式、別保存先、失敗した操作を記載します。最小の合成/匿名化例を使い、認証情報や個人の DB 全体は公開しないでください。実際にその版と操作を実行した場合のみ実行検証済みとします。
根拠:アダプター版 22fefc6。プライバシー、インストール、保守についても参照できます。
