方針: 末尾 entry-count 比較で検知し、元 Segment は immutable のまま (terminal marker を書き戻さない)。fork lineage は新 Segment の SegmentStart.forked_from に前向きに記録するため、log だけから辿れる。 過去 fork と対称で、nested fork も marker 位置の調停が不要。 - session-store ensure_head_or_fork に at_turn_index 引数を追加し 新 Segment へ forked_from を記録 - pod ensure_segment_head の auto-fork も同様に forked_from を記録 (at_turn_index = writer の現 turn_count) - fork_at の doc に「元 Segment を mutate しない」invariant を明記 - test: nested past-fork が祖先を不変に保つ / Pod 並行 writer drift で auto-fork し forked_from を記録 / 元 Segment に marker が書かれない |
||
|---|---|---|
| .. | ||
| examples | ||
| src | ||
| tests | ||
| build.rs | ||
| Cargo.toml | ||
| README.md | ||
pod
独立したエージェント実行単位「Pod」を実装するクレート。LLM ワーカーセッションをマニフェスト設定・ファイルスコープ制約と組み合わせ、Unix ソケット経由の双方向通信で操作可能にする。
公開型
コア
Pod<C, St>— LLM ワーカーセッション + マニフェスト + スコープのラッパー(run(),resume(),from_manifest())PodRunResult— 実行結果(Finished,Paused)PodError— エラー型
制御
PodController— Pod ライフサイクルを管理するアクター(spawn()でタスク起動)PodHandle— Pod への操作ハンドル(send(),subscribe())PodSharedState/PodStatus— 共有状態(Idle,Running,Paused)
ランタイム
RuntimeDir—$XDG_RUNTIME_DIR/insomnia/{pod_name}/配下のランタイムディレクトリ管理(ステータス・履歴のアトミック書き込み)SocketServer— Pod Protocol 用 Unix ソケットサーバー