Architecture
Dimple turns notes, conversation turns, and source code into memory units. Each unit holds content, metadata, and an optional embedding. Search combines vector and keyword results to find relevant units.
The main parts
Section titled “The main parts”| Part | What it does | Learn more |
|---|---|---|
| Memory units | Store text, code, facts, and lifecycle state in one format. | Memory units |
| Topic tree | Group memories by embedding similarity and keep topic membership current. | Topic tree |
| Retrieval | Combine vector and keyword search, then rank the results. | Retrieval |
| Artifact graph | Record support, supersession, contradiction, and code calls between items. | Artifact graph |
| Concepts | Label clusters of related memories. | Concepts |
| Background jobs | Run structural work and retry it after a failure. | Durable jobs |
A query from start to finish
Section titled “A query from start to finish”- Dimple embeds the query with the selected embedding model.
- It searches the vector index and the full-text index with the same namespace, topic, and content-type filters.
- It combines the ranked lists and returns the requested number of memories.
The SDK query path uses explicit topic membership filters. It does not descend the tree to choose search leaves. It also does not add graph context to the fused results yet.
Storage
Section titled “Storage”The default setup stores data in local SQLite files:
| File | Contents |
|---|---|
dimple.db | Memories, topic tree, graph edges, concepts, and retrieval audit records. |
jobs.db | Durable job queue and workflow state. |
Both URLs can point to a remote libSQL database. A single remote database can hold both sets of tables. See the configuration reference for connection details.