1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# Microscope Memory Configuration Example
# Copy to config.toml and adjust paths.
[]
# Directory containing memory layer JSON files
= "./layers"
# Output directory for binary index files
= "./output"
# Temporary directory for processing
= "./tmp"
[]
# Block size in characters (fixed viewport)
= 256
# Maximum depth levels (0-8)
= 8
# Header size in bytes
= 32
# Automatically consolidate the hot append log into the main index.
= true
# Trigger consolidation after this many pending entries.
= 250
# Maximum source entries per layer. Zero preserves the complete history.
= 2000 # bound each layer file; oldest entries are trimmed past this
= 0 # 0 = unbounded; >0 evicts lowest-score blocks when the index exceeds this
= 8 # never evict blocks with importance >= this
= 0.35 # dream auto-promotes blocks whose recall energy reaches this
[]
# Default number of results
= 10
# Zoom weight for 4D search
= 2.0
# Keyword boost factor
= 0.1
# Semantic blending weight (0.0 = pure hash coords, 1.0 = pure embedding coords)
# NOTE: 0.0 disables semantic ranking in 'recall'. Set to > 0.0 to enable hybrid search.
= 0.0
# Emotional bias warp strength (0.0 = disabled, 0.0-1.0 = warp toward emotional centroid)
= 0.0
[]
# Configure which cognitive layers to include
= [
"long_term",
"short_term",
"associative",
"emotional",
"relational",
"reflections",
"crypto_chain",
"echo_cache",
"rust_state"
]
[]
# Use memory mapping
= true
# Cache size in MB
= 64
# Number of parallel workers for building
= 4
# Use GPU acceleration for soft search (requires --features gpu)
= false
# Zstd compression for data.bin (requires --features compression)
= false
# Query cache TTL in seconds
= 300
[]
# Provider: "mock" (hash-based), "candle" (BERT), or "onnx" (ONNX Runtime)
= "mock"
# Model name (for candle/onnx providers)
= "sentence-transformers/all-MiniLM-L6-v2"
# Embedding dimension
= 384
# Max depth to embed (deeper = more vectors, more disk).
# D5 holds 15..39 character statements (see auto_depth), which is exactly where
# short personal facts live, so it is included by default. Going deeper costs
# build time and disk for diminishing semantic value.
= 5
[]
# HTTP server port
= 6060
# Shared master secret for inbound HTTP auth. Empty = no auth (single-user
# localhost default). Required when binding on a non-loopback host.
# Two modes use the same secret:
# X-API-Key: <secret> — shared-key mode (trusted team)
# Authorization: Bearer <user_id>.<hmac> — per-user identity; generate with
# `microscope-mem token <user_id>` — the verified user_id is bound to the
# caller, so a user can never read another user's scoped memories.
= ""
# CORS origin
= "*"
[]
# Log level: trace, debug, info, warn, error
= "info"
# Log file path (optional)
= "microscope.log"
# ─── Federation (optional) ───────────────────────────
# Uncomment and configure to enable multi-index federated search.
# Each federated index gets its own section.
#
# [[federation.indices]]
# name = "project_a"
# config_path = "/path/to/project_a/config.toml"
# weight = 1.0
#
# [[federation.indices]]
# name = "project_b"
# config_path = "/path/to/project_b/config.toml"
# weight = 0.8