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 86cc69b
Browse filesBrowse the repository at this point in the historyBrowse files
Merge upstream DeusData/codebase-memory-mcp through ce0b4b2 (step 2 of upstream sync)
Brings upstream history from 13b7d06 (2026-09-04) through ce0b4b2
(2026-09-16) into the CLI fork. 52 files conflicted. Seven files the fork
deleted were modified upstream: src/mcp/{mcp.c,mcp.h,mcp_internal.h},
tests/test_mcp.c, src/cli/client_adapter.c,
tests/test_mcpb_bundle_contract.sh and tests/test_parent_watchdog.sh. They
stay deleted, and the upstream behaviour in them is moved to the CLI's
operation layer.
Moved from upstream MCP handlers into src/operations (CLI commands):
- index_status --diagnostics none|summary|full: coverage samples,
indexed_at, omitted counts.
- get_graph_schema: counts by default, with limit/offset paging and
properties under diagnostics=full.
- list_projects: limit up to 500, next_offset, detail=stats, branch shown.
- index: named failure causes (over_memory_budget with a suggested budget,
aborted_previous_preserved, persist_failed).
- coverage: parse_unusable files, truncated range markers, path paging.
- search_graph semantic hardening: fails closed on a bad vector scan,
semantic paging, deterministic BM25 window ordering.
- Non-UTF-8 identities encoded losslessly as @bytes:<hex> in every
operation payload (cbm_operation_json_write).
- search_code:
* BusyBox-compatible grep and streaming reads with exact totals.
* Fails closed on an incomplete scan.
* Result and raw paging with byte-exact previews.
- detect_changes: OID/merge-base resolution, -z git records, snapshot
cursors for the changed, impact and module tables.
- trace: test rows filtered before windowing, deterministic edge evidence,
bounded BFS with saturation flags, strict cursors.
- query_graph: snapshot cursors and offset paging (200 rows shown per
page by default).
- get_code_snippet: outline mode for large containers, start_line and
max_lines.
- manage_adr: outline by default, content required for update and store.
- get_architecture: heap-built lists, so long identifiers are not cut.
- Daemon: autoindex.skipped logs the normalized root (f6a2927).
Not moved yet: the max_output_tokens output budget and compact
re-encodings. They reduce output size and do not change correctness.
Dropped as MCP-protocol-only:
- JSON-RPC /rpc in the UI server.
- The stdio parent watchdog.
- MCP registration for OpenHands and the other installers.
- The opencode/pi plugin adapters.
- .mcpb bundle packaging.
- MCP smoke-script sections.
Other resolution notes:
- main.c: kept the fork's CLI dispatcher. Ported --quiet/--verbose and the
index-worker workspace scope fix (DeusData#2076), so a worker no longer inherits
the daemon's ambient CBM_ALLOWED_ROOT.
- application.c: worker memory slice is now budget / active jobs (upstream
DeusData#1997).
- cli.c: kept the fork's Codex instruction block and CLI naming. Ported the
Antigravity legacy SessionStart cleanup and upstream's tool-help schema
printing. Codex uninstall now also removes the block when hook preflight
fails.
- pipeline.c, pass_parallel.c, cbm.c: adopted upstream's spill/admission
control and parse budget. Kept the fork's stage-lock code and the
macro-line scan instrumentation.
- extract_imports.c and test_extraction.c: upstream's generic embedded
walker (Svelte, HTML, Astro), replacing the fork's Vue-only version.
- graph-ui lock regenerated. The fork's Dependabot bumps are kept, and
npm audit reports 0 vulnerabilities.
- Hand-ported code that git kept twice was deduplicated:
* pass_complexity.c comparators
* compat_fs.h mkdir_p_ex declaration
* main.c apply_ui_config
* application_internal.h declaration
* daemon and edge tests
- Vendored swift/scanner.c is byte-identical to upstream, and all vendored
checksums verify.
Known gaps:
- The Windows test that `daemon stop` refuses while a client is attached
is gone. It needed an MCP stdio session.
- The graph UI's /rpc calls (project list, schema, snippet) had no server
route on the fork before this merge. That needs a native /api endpoint
as a follow-up.
The production build and the test-runner compile are clean with -Werror.
Copy file name to clipboardExpand all lines: README.md
+2-1Lines changed: 2 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.
@@ -279,7 +280,7 @@ Important environment variables include:
|`CBM_RUNTIME_DIR`| Override the secure local coordination rendezvous parent. |
281
282
|`CBM_WORKERS`| Override indexing worker count. |
282
-
|`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`. |
283
284
284
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