Crush
Crush stores conversations in each project’s .crush/crush.db database.
Hansard reads that history without launching Crush or evaluating its configuration.
Source IDs
Section titled “Source IDs”| Source | Use it for |
|---|---|
crush |
Local Crush conversations and linked child sessions. |
How the import works
Section titled “How the import works”Hansard looks for .crush/crush.db under the current directory and common
project folders: Documents/GitHub, Developer, Projects, Code, and
Work in the home directory. Discovery searches up to five nested directories
and skips dependency folders and symbolic links. The directory containing
.crush supplies the conversation’s working folder and project attribution.
Custom locations can be selected with the environment variables below.
Before reading messages, Hansard takes a consistent SQLite snapshot that includes committed changes in the write-ahead log. It preserves that snapshot as a shared raw archive, including file versions and session metadata, and imports each conversation separately. Message parts preserve their ordering, reasoning, tool arguments, and tool results. Compaction summaries and generated continuations remain context rather than additional human prompts. Continuing a session updates its existing archive; changing a different conversation does not reimport it.
Import and keep current
Section titled “Import and keep current”hansard import --source crush --since allhansard index rebuildAutomatic source selection includes crush. For a Custom list:
hansard config sources enable crushhansard watcher restartReview the import in the app
Section titled “Review the import in the app”- When the import finishes, open Conversations and selectFilter & sort.
- Set Source to Crush and setTime to the window you imported. UseFolder to narrow the list when you use this harness in several projects.
- Select a conversation to check its messages, tool calls, files, commits, model, and token usage.
To keep archiving new sessions from a local harness, openSettings → Imports. Automaticfollows every supported harness installed on this computer.Custom lets you turn individual harnesses on or off. Cloud sources and account exports never run from here; each needs its own import command. If a conversation you expect is missing after you reset the filters, run the import command on this page again with --explain-skips where the source supports it.
What Hansard preserves
Section titled “What Hansard preserves”- Prompts, replies, recorded reasoning, compaction summaries, and manual shell output.
- Tool calls and results, including edit arguments used to render diffs.
- Embedded attachment bytes and references to remote images.
- Session titles, timestamps, recorded models, and linked child sessions.
- SQLite file history, todos, latest-context counters, and reported cost in the raw snapshot.
- Instruction backups include global
CRUSH.mdandAGENTS.md, plus project Crush instruction files and their.local.mdvariants. Global paths followCRUSH_GLOBAL_CONFIGandXDG_CONFIG_HOME;hansard memory backuprefreshes them without executingcrushrcor configuration commands.
Known limitations
Section titled “Known limitations”- Crush stores the latest context and completion counts, not cumulative token usage. Its reported cost can include child work. These values remain source metadata and are excluded from accounting totals; model identity is retained.
- Unknown content parts are reported in session metadata and preserved in the raw snapshot. Malformed sessions are reported as import errors and do not replace an existing archive.
- Remote image URLs are retained; the importer does not fetch them. Embedded files use Hansard’s attachment size limits.
- Each session is limited to 250,000 message or file-version rows and 128 MB of combined message and file content. Discovery visits at most 20,000 directories.
- For other project roots, set
HANSARD_CRUSH_ROOTSto a path-separated list.HANSARD_CRUSH_DBselects explicit database paths;HANSARD_CRUSH_DATA_DIRselects one data directory. SetHANSARD_CRUSH_CWDwhen a custom data directory does not identify its project. - Crush does not record its application version or configured reasoning effort in these rows. Hansard does not infer them from the currently installed binary.
- Custom
context_pathsandglobal_context_pathsare not evaluated. Shared projectAGENTS.mdfiles use the regular project-instruction backup.
Refresh an existing archive
Section titled “Refresh an existing archive”hansard import --source crush --since allhansard index rebuild