Evaluate: Tree-structured session storage (Pi pattern) for terraphim_persistence
まだ誰も着手していません。
評価
調査の方向性
Start with terraphim_persistence (#637) and ADF session persistence (#639), then read the linked Pi session format. Prototype the id/parentId JSONL approach and compare parsing and storage for 1000+ entries against the current linear format. Document trade-offs and finish with an adopt, adapt, or reject decision.
索引モデルが issue の本文から書いたものです。
説明
Parent Epic
#682 -- Evaluate Pi architectural patterns
Pattern
Pi (badlogic/pi-mono) uses tree-structured JSONL for session storage. Each entry has id and parentId fields, enabling in-place branching without creating new files. A visual /tree navigator lets users jump to any point and continue from there. All branches are preserved in a single file.
Current State
- terraphim_persistence (#637-#642) plans to use Persistable trait + DeviceStorage with SQLite/redb backends
- Claude Code uses linear JSONL with lossy auto-compaction (no branching within a session)
- ADF session persistence (#639) captures Claude Code's
--output-format stream-jsonoutput as linear JSONL - terraphim-agent sessions import reads linear JSONL from
~/.claude/projects/
Evaluation Questions
- Does tree-structured JSONL improve debugging and replay for ADF agent sessions? Current linear format loses context on compaction. Tree format preserves all branches.
- Is the id/parentId overhead justified? Each entry gains two fields. Measure storage and parse overhead for typical 500-2000 message sessions.
- Can tree structure coexist with Claude Code's linear format? terraphim-agent imports Claude Code sessions. If we adopt tree format internally, we need a conversion layer.
- Does the tree structure enable new capabilities? E.g., comparing different agent approaches on the same prompt, replaying from a checkpoint with different models.
Acceptance Criteria
- Document trade-offs (storage overhead, parsing complexity, tooling requirements)
- Prototype tree-structured session format for terraphim_persistence
- Benchmark parse performance vs linear JSONL for 1000+ entry sessions
- Decision: adopt, adapt, or reject with rationale
References
- Pi session format: https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/docs/session.md
- terraphim_persistence: #637
- ADF session persistence: #639
- 主要言語
- Rust
- スター
- 62
- フォーク
- 5
- 平均マージ
- 2時間 27分
- マージ済み PR(30日)
- 1
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
terraphim/terraphim-ai のほかの issue
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
terraphim/terraphim-ai#885 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
terraphim/terraphim-ai#871 ·
-
enhancement
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
terraphim/terraphim-ai#810 · コメント 2 件 ·
-
enhancement
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
terraphim/terraphim-ai#729 ·
-
enhancement
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
terraphim/terraphim-ai#728 ·
terraphim/terraphim-ai の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
-
bug good first issue package: quic
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
-
`dora trace view` sends a non-canonical full UUID as-is, so a valid trace ID shows "No spans found" オープンcli coordinator rust
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
area: tasks enhancement good first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
Jason-jo17/Polybench#15 · コメント 1 件 ·