29 lines
1.7 KiB
Markdown
29 lines
1.7 KiB
Markdown
# LLM 履歴永続化 plan(superseded)
|
||
|
||
> Status: superseded / historical note.
|
||
>
|
||
> この文書は、`session-store` / segment log / Pod metadata 分離が入る前の検討メモ。現在の実装仕様として読まないこと。現行仕様は `docs/architecture.md` の「セッション永続化」と `crates/session-store` / `crates/pod-store` / `crates/pod` を正とする。
|
||
|
||
## 現在の要点
|
||
|
||
- 会話・worker replay の authority は `session-store` の append-only JSONL segment log。
|
||
- fresh conversation は新しい `SessionId` を作る。
|
||
- compact / fork / rewind は同じ `SessionId` 配下の `SegmentId` を切り替える。
|
||
- segment 出自は `LogEntry::SegmentStart` 内の `SegmentOrigin`(`compacted_from` / `forked_from`)で表す。
|
||
- Pod 名からの current state は `pod-store` metadata が持つ。
|
||
- active `(SessionId, SegmentId)` pointer
|
||
- `resolved_manifest_snapshot`
|
||
- spawned child delegation / reclaim state
|
||
- runtime socket path / registry mirror は live/derived state であり、conversation history や Pod-name current state の durable authority ではない。
|
||
|
||
## Superseded な旧前提
|
||
|
||
この旧 plan は以下の前提を含んでいたため、現在の仕様とは一致しない。
|
||
|
||
- session を単一ファイル・単一系列として扱う前提。
|
||
- compact/fork で新 SessionId を作る前提。
|
||
- entry hash を replay lineage の主参照にする前提。
|
||
- Pod 名 current state と conversation log authority を分離しない前提。
|
||
|
||
履歴としては有用だが、実装時の根拠には使わない。新しい変更を検討する場合は、まず current code と work item を読むこと。
|