1仕組みと動作原理
機能の実体は 6 つのローカル Python CLI(list_local_history / read_claude_session / extract_user_messages / analyze_sessions / history_index / recover_content)であり、それぞれインベントリ、正確なセッション再構築、人間入力のエクスポート、キーワード検索、ハイブリッド再現、トリアージ、ファイル復元に対応します。エージェントは SKILL ルーティングテーブルに従って呼び出し、古いプロセスの再開は明確に禁止されています。
| Recent Claude Code sessions, titles, dates, or IDs | `scripts/list_local_history.py --source claude` |
「見つからない」はコストの高い回答です。マルチホームにわたる網羅的な検出が正確性の根幹となります。homes.py は CLAUDE_CONFIG_DIR、~/.claude、~/.claude-profiles/*、および ~/.claude-* の兄弟ホームを列挙します。sources.py はさらに ~/.claude/history-sources.json に登録されたアーカイブを統合します。Session ID で重複排除し、mtime ではなくレコード内のタイムスタンプでソートします。
# CLAUDE_CONFIG_DIR wins first when set, then the default home.
Claude のレコードに対して文字面ではなくセマンティックな処理を実行します。ストレージラベル(type: user)は作成者と一致するとは限りません。ビジー状態中のキューイングされた指示は attachment.queued_command.prompt(origin.kind: human)に隠れており、user レコードのみを読み取ると修正指示を見落とします。
Treat Claude's record labels as storage metadata, not authorship proof.
オプションの「ハイブリッド再現」パス(history_index.py recall):中国語形態素解析 FTS5(wangfenjin/simple libsimple、固定バージョン v0.7.1 + SHA256 検証ダウンロード)+ Qwen3 埋め込みベクトル(Apple Silicon MLX)、BM25 とベクトルの融合により、「言い回しが変わった」場合のセマンティック検索を解決します。デフォルトの読み取り専用パスには含まれません。
EMBEDDING_MODEL_ID = "Qwen/Qwen3-Embedding-0.6B"
ファイル復元(recover_content.py)は「レポート - 承認 - 書き込み」の 3 段階ゲートを通過します。まず正確な Session ファイルに対して復元レポートを出力し、人間が各対象パスを確認した後にのみ書き込みを実行します。また、現在のプロジェクトツリーへの直接の上書きは禁止されています。
First run the recovery report against the exact Session file, review every proposed destination, then write only after the user asked to recover content. Never restore directly over the current project tree.
Kimi CLI の履歴はこのスキルが担当するアクティブなサーフェスです。インベントリは list_local_history.py --source kimi、全文検索は analyze_sessions.py search --kimi を経由し、~/.kimi-code 配下の state.json / wire JSONL を解析します(ホームの優先順位は --kimi-home > KIMI_HOME > ~/.kimi-code)。
Kimi CLI (kimi-code) stores conversations under ``~/.kimi-code/`` (override with ``KIMI_HOME``).
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| cli | git |
| cli | rg/grep(可选路径预过滤) |
| network | github.com 发布物下载(wangfenjin/simple libsimple,固定版本+SHA256 校验,仅混合索引 setup) |
| network | Hugging Face 模型(Qwen/Qwen3-Embedding-0.6B,仅 --download-model 经 mlx_embeddings.load) |
| package | 可选 Python 依赖 chonkie/transformers(分块)与 mlx-embeddings/mlx(Apple Silicon 向量) |
4推奨統制措置と判定根拠
- scripts/: ローカルスクリプトまたはコマンドの実行: python3 で同梱の 6 つのスクリプトを実行(デフォルトは完全な標準ライブラリのみ)
- 网络端点: 外部ネットワークアクセスの宣言: urllib.urlopen により https://github.com/wangfenjin/simple/releases/download/v0 からダウンロード
- 本地工作目录: ファイルの読み書きと成果物出力: extract_user_messages.py がユーザー指定の出力ベースパスに Markdown/HTML を書き込み
5二重目の独立検証
- [ok] libsimple 下载(github.com/wangfenjin/simple)调用点 — history_index.py url 构造 + urlopen;sha256 校验与 _safe_extract_zip 穿越防护真实存在。
- [ok] 无其他网络调用(排除 requests/curl/wget/其他 urlopen) — 全目录扫描仅 history_index.py 引入 urllib.request;其余脚本零网络 import。
- [ok] Kimi 表面真实存在且只读 — list_local_history.py argparse choices 含 kimi;analyze_sessions.py search 有 --kimi/--kimi-home;_core/kimi.py 只解析 state.json/wire.jsonl,无 kimi CLI 调用。
- [ok] read-only 承诺与写盘面核对 — SKILL guardrails 禁止 resume/continue;写盘仅 extract_user_messages(用户给输出基址)、recover_content(报告后批准)、history_index(可选索引库)。
- [unlocatable] Qwen 嵌入模型网络端点 — 静态证据止于 EMBEDDING_MODEL_ID + mlx_embeddings.load(...) 与 ~/.cache/huggingface 路径;HF 实际网络端点由 mlx-embeddings 库行为决定,源码未直写,未运行验证。
- [ok] 能力声明夸大检查(exact timelines/verbatim input/full-event search) — read_claude_session.py 严格解析含 compaction 前记录、extract_user_messages 去噪逻辑(NOISE_USER_PATTERNS/IMG_TOKEN_RE)、analyze_sessions 预算超时显式失败——均有代码与测试佐证。
6結論
646d5ca94bdfe86a…