terraphim / terraphim/terraphim-ai
Evaluate: Tree-structured session storage (Pi pattern) for terraphim_persistence
Nessuno ha ancora preso questa issue.
- Lingua principale
- Rust
- Stelle
- 62
- Fork
- 5
- Merge medio
- 2h 27m
- PR unite (30g)
- 1
Descrizione
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
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- backend
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100