Overview
Rousseau's session store is durable by design — nothing is ever purged automatically. That means operators own three decisions:
- When to enable LLM-backed compression.
- When to start a fresh session vs continue an existing one.
- When (rarely) to delete or nuke sessions.
When to enable compression
agent.compression.enabled is off by default. Turn it on when:
- You are running against a pay-per-token provider (Anthropic direct, OpenAI, Bedrock, Vertex).
- Your sessions routinely pass 60 messages before wrapping up (the default trigger).
- You care about latency: shorter prompts = faster responses.
Keep it off when:
- You are on
claudecliwith a subscription-tier Claude Code plan. Compression adds a summarisation-call cost you're not otherwise paying. - You want perfect recall for audit purposes (compressed history is a summary, not the transcript).
Sensible defaults:
agent:
compression:
enabled: true
trigger_messages: 60
keep_recent: 8
When to start a fresh session
- New topic — the model conflates unrelated threads if you keep going. Start a new session.
- After an outage — a fresh session with a clean context often outperforms one that carries stale state.
- When switching providers — history transfers cleanly, but the model's tone/style will drift; a fresh session avoids the confusion.
- Per project — one session per repo/feature is a good default.
Use --title on rousseau chat to name sessions distinctly. Titles show up in rousseau session list and MCP tool responses.
Finding old sessions
# Newest first, 10 rows
rousseau session list --limit 10
# FTS5 search across the whole history
rousseau session search "auth refactor"
rousseau session search '"payment webhook" AND signature'
rousseau session search 'kub*'
Deleting
rousseau session delete <session-id> --yes
Nuking the store
# Stop every rousseau process first
systemctl --user stop 'rousseau-*.service'
# Backup
cp -a ~/.local/share/rousseau ~/.local/share/rousseau.pre-nuke
# Nuke
rm ~/.local/share/rousseau/sessions.db*
Reasons to nuke:
- You want a clean slate for a new project laptop.
- The database grew unmanageably (rare — SQLite compresses well).
- A schema migration failed (
sessions.db.pre-migrationshould exist as backup).
Cross-session recall
FTS5 indexing means the agent can pull a snippet from an old session into a new one via the rousseau_search_sessions MCP tool. Even after compression, the raw messages remain until you delete. This lets old-session recall stay accurate while current context stays short.