You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 71e1712
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: README.md
+14-1Lines changed: 14 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -221,6 +221,7 @@ Design rules:
221
221
222
222
- stdout is reserved for command results;
223
223
- progress and diagnostics belong on stderr;
224
+
-`cli --progress` forces lifecycle progress when stderr is redirected, `cli --quiet` disables automatic terminal progress and ordinary diagnostics while keeping errors (it cannot be combined with `--progress` or `cli --verbose`), and `cli --verbose` includes routine informational logs;
224
225
- errors produce non-zero exit codes;
225
226
- canonical JSON hides the historical transport envelope;
226
227
- result ordering/pagination remain explicit where the underlying operation supports them.
@@ -247,6 +248,18 @@ The upstream indexing engine is intentionally preserved through the CLI-first mi
247
248
248
249
The first vertical slice does **not** rewrite the graph schema, parser pipeline, store format, or existing indexes.
249
250
251
+
### Shared graph artifact
252
+
253
+
`.codebase-memory/graph.db.zst` is an optional zstd-compressed snapshot of the graph that sits next to the source. `codebase-memory-cli index` writes or refreshes it (the watcher refreshes it with a faster, lower-compression tier), and a first `index` on a clone with no local database imports it before running incremental indexing. A `.codebase-memory/.gitattributes` line with `merge=ours` is created on first export so concurrent edits do not conflict on the binary file.
254
+
255
+
-**Commit it deliberately.** The artifact is rewritten on every index, including the watcher's fast tier, and git stores each rewrite as a full new blob. Committing every refresh turns a 20 MB file into gigabytes of history. Pick a cadence (a release, a milestone, a nightly job) rather than committing every save.
256
+
-**Git LFS, if it must move on every commit.** Track it from the repo-root `.gitattributes` and leave the auto-created `.codebase-memory/.gitattributes` in place; the nearer file keeps supplying `merge=ours`, and only `filter` comes from the root:
Track only the `.zst`; `artifact.json` is small and carries the schema version. The attribute applies to future commits only, so a repo that already has the blobs in history needs `git-filter-repo` first. GitHub meters LFS storage and bandwidth, and every teammate needs `git lfs install`; without it the checkout leaves a pointer file, the integrity-checked import refuses it, and they fall back to a full reindex.
261
+
-**Optional.** Add `.codebase-memory/` to `.gitignore` if everyone should reindex from scratch.
262
+
250
263
## Configuration
251
264
252
265
Common commands:
@@ -267,7 +280,7 @@ Important environment variables include:
|`CBM_RUNTIME_DIR`| Override the secure local coordination rendezvous parent. |
269
282
|`CBM_WORKERS`| Override indexing worker count. |
270
-
|`CBM_LOG_LEVEL`| Control runtime logging. |
283
+
|`CBM_LOG_LEVEL`| Control runtime logging. One-shot CLI and hook commands default to `warn`; the detached daemon and supervised index workers default to `info`. |
271
284
272
285
See [`docs/CONFIGURATION.md`](docs/CONFIGURATION.md) for the full reference.
Copy file name to clipboardExpand all lines: docs/CONFIGURATION.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -133,7 +133,7 @@ These environment variables affect runtime behavior:
133
133
|`CBM_CACHE_DIR`|`~/.cache/codebase-memory-cli`| Override the cache directory used for indexes, `_config.db`, and UI `config.json`. |
134
134
|`CBM_DIAGNOSTICS`|`false`| Enable periodic `snapshot.json` and retained `trajectory.ndjson` below a fresh owner-private directory in the system temp directory. The daemon records the randomized paths in the `diagnostics.start` discovery record (a single JSON line) in `${CBM_CACHE_DIR}/logs/cbm-daemon.log`; that one record is emitted even when `CBM_LOG_LEVEL` suppresses ordinary logging, so the paths always remain discoverable. |
135
135
|`CBM_DOWNLOAD_URL`| GitHub releases | Override the update download URL. |
136
-
|`CBM_LOG_LEVEL`|`info`| Set the log level to `debug`, `info`, `warn`, `error`, or `none` (or `0`-`4`). One-shot CLImessages use that command's stderr; retained detached-runtime events use `${CBM_CACHE_DIR}/logs/cbm-daemon.log`. |
136
+
|`CBM_LOG_LEVEL`|role-aware| Set the log level to `debug`, `info`, `warn`, `error`, or `none` (or `0`-`4`). Thin CLI/hook frontends default to `warn`; the detached daemon and supervised index workers default to `info`. Physical workers retain INFO liveness records because their private logs drive the supervisor's no-progress timeout. Frontend messages use that command's stderr; detached daemon events use `${CBM_CACHE_DIR}/logs/cbm-daemon.log`. |
137
137
|`CBM_RUNTIME_DIR`|`%LOCALAPPDATA%` (Windows), `/private/tmp` (macOS), `/tmp` (other) | Parent directory for the daemon/CLI rendezvous directory, which CBM creates inside it as `cbm-daemon-<uid>` (`cbm-daemon-<key>` on Windows). When an explicitly configured parent is missing, CBM creates it owner-private before use; existing parents are never modified and must pass the private-directory check. Set it when the default ancestry cannot pass that check — see below. `CBM_CACHE_DIR` does **not** move the rendezvous. |
138
138
|`CBM_WORKERS`| auto-detected | Override the indexing worker count. |
0 commit comments