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 f4f9870
Browse filesBrowse the repository at this point in the historyBrowse files
Merge upstream DeusData/codebase-memory-mcp through 13b7d06 (step 1 of upstream sync)
First of several real merges of upstream into the CLI fork. Earlier
"milestone" integrations hand-ported upstream changes without recording
upstream ancestry, so GitHub's behind count never moved. This merge brings
97 upstream commits (2026-09-02 .. 2026-09-04) into history.
Conflict resolution (28 files):
- extract_defs.c, language.c, pass_route_nodes.c, registry.c, cypher.c and
their tests: the fork had hand-ported the same upstream fixes (Razor/Blazor
@page routes, DeusData#1893 receiver-chain guard, RETURN * dedup, WITH width bound).
Took upstream's wording where code was equivalent so later merges conflict
less. Kept fork-only tests (wide-pattern cypher refusals, indented @page,
await-generic TS calls).
- src/mcp/{mcp.c,mcp.h,mcp_internal.h}, tests/test_mcp.c stay deleted. The
upstream changes in them were moved to the CLI operation layer:
* trace: an unreadable edge confidence is reported as not recorded instead
of 0.0 (62b4451)
* search_code: Windows suffix-glob prefilter applied while building the
scoped file list rather than in the PowerShell pipeline (2f37f61)
* read ops: new cbm_store_host_open_query helper opens stores query-only,
never creates or rebuilds them, and reports a corrupt store as
"project store is corrupt (left untouched); run 'codebase-memory-cli
index .' to rebuild it" instead of "project not found" (93d2ee5).
Wired into query, schema, architecture, file_outline, coverage, snippet,
trace, status, search, changes and source search. adr keeps autorecovery.
* daemon: CBM_INDEX_MAX_RESTARTS accepts 0 (no recovery rounds) and warns
on unreadable or out-of-range values (6b801ee)
MCP-protocol-only pieces (tool annotations, notification handling, MCP
stdio smoke script) were dropped.
- cli.c: kept CLI binary naming; added upstream's FreeBSD pkg upgrade hint as
`pkg upgrade codebase-memory-cli`.
- application.c: kept fork session-context API; removed a duplicate
application_canonical_directory_exists introduced by the merge.
- http_server.c: /api/ui-config returns lang, version and the fork's
issues URL.
- test_cli.c: kept fork install-plan assertions and added upstream's check
that nothing is planned under Qoder/Pi plugins/.
- Windows python tests: kept fork CLI drivers; adopted upstream timeout
handling. Dropped section_stop_refuses_busy, which needs an attached MCP
stdio session the CLI does not have (coverage gap noted).
- Dockerfile.msan: upstream retry hardening, fork's LLVM 21 pin kept.
- README: fork content kept; added a short shared-graph-artifact section.
- vendored-checksums.txt recomputed; sha256sum -c passes.
Copy file name to clipboardExpand all lines: README.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -247,6 +247,18 @@ The upstream indexing engine is intentionally preserved through the CLI-first mi
247
247
248
248
The first vertical slice does **not** rewrite the graph schema, parser pipeline, store format, or existing indexes.
249
249
250
+
### Shared graph artifact
251
+
252
+
`.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.
253
+
254
+
-**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.
255
+
-**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.
260
+
-**Optional.** Add `.codebase-memory/` to `.gitignore` if everyone should reindex from scratch.
0 commit comments