yoi/crates/pod
Hare a9340a8817 feat: live auto-fork の marker 形式を確定(seq 比較 + forked_from 記録)
方針: 末尾 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 が書かれない
2026-05-20 06:42:09 +09:00
..
examples update: 残存 Session 識別子の Segment 化(review follow-up) 2026-05-20 05:17:49 +09:00
src feat: live auto-fork の marker 形式を確定(seq 比較 + forked_from 記録) 2026-05-20 06:42:09 +09:00
tests feat: live auto-fork の marker 形式を確定(seq 比較 + forked_from 記録) 2026-05-20 06:42:09 +09:00
build.rs cargo fmt 2026-04-27 22:51:07 +09:00
Cargo.toml update: entry hash chain と session_head mutex を撤廃 2026-05-20 04:31:37 +09:00
README.md Remove Pod-ID 2026-04-11 14:18:49 +09:00

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 ソケットサーバー