terraphim / terraphim/terraphim-ai

Evaluate: Tree-structured session storage (Pi pattern) for terraphim_persistence

Aperta
#683 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

enhancement
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-json output as linear JSONL
  • terraphim-agent sessions import reads linear JSONL from ~/.claude/projects/

Evaluation Questions

  1. Does tree-structured JSONL improve debugging and replay for ADF agent sessions? Current linear format loses context on compaction. Tree format preserves all branches.
  2. Is the id/parentId overhead justified? Each entry gains two fields. Measure storage and parse overhead for typical 500-2000 message sessions.
  3. 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.
  4. 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

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. 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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.