From 395f6efa420da24810503e71053caa7db6f04b2a Mon Sep 17 00:00:00 2001 From: Martin Vogel Date: Tue, 28 Jul 2026 17:34:07 +0200 Subject: [PATCH] docs(readme): single-binary layout, Windows update flow, current test count - Windows updates run from install.ps1, not the running binary: a running executable cannot replace its own image on Windows. Document the exact command, that re-running the script IS the update, and the Unblock-File caveat for Mark-of-the-Web. npm/pip users keep updating via their package manager on every platform. - Build from source: state that every platform produces ONE self-contained binary with no companion executables, and document how to run the suite (scripts/test.sh, the same entry the CI gates use) and how to package an archive locally with the canonical script. - Test badge 5604 -> 6768, the current count from build/c/test-runner. Signed-off-by: Martin Vogel --- README.md | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e16d173101..da8f24ba56 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![GitHub Release](https://img.shields.io/github/v/release/DeusData/codebase-memory-mcp?style=flat&color=blue)](https://github.com/DeusData/codebase-memory-mcp/releases/latest) [![License](https://img.shields.io/badge/license-MIT-green)](LICENSE) [![CI](https://img.shields.io/github/actions/workflow/status/DeusData/codebase-memory-mcp/dry-run.yml?label=CI)](https://github.com/DeusData/codebase-memory-mcp/actions/workflows/dry-run.yml) -[![Tests](https://img.shields.io/badge/tests-5604_passing-brightgreen)](https://github.com/DeusData/codebase-memory-mcp) +[![Tests](https://img.shields.io/badge/tests-6768_passing-brightgreen)](https://github.com/DeusData/codebase-memory-mcp) [![Languages](https://img.shields.io/badge/languages-158-orange)](https://github.com/DeusData/codebase-memory-mcp) [![Hybrid LSP](https://img.shields.io/badge/Hybrid_LSP-10_languages-blue)](#hybrid-lsp) [![Agents](https://img.shields.io/badge/agent_surfaces-43-purple)](https://github.com/DeusData/codebase-memory-mcp) @@ -155,10 +155,22 @@ Watcher registration is controlled separately by `auto_watch` (default `true`). ### Keeping Up to Date +**macOS / Linux:** + ```bash codebase-memory-mcp update ``` +**Windows** — updates run from `install.ps1`, not from the running binary, because a running executable cannot replace its own image on Windows. `codebase-memory-mcp update` prints the exact command; it is: + +```powershell +powershell -ExecutionPolicy Bypass -File "\install.ps1" +``` + +`install.ps1` is idempotent, so re-running it *is* the update: it stops the daemon, retires the running binary, installs the new one, and cleans up. `install.ps1` sits next to the binary in your install directory. If PowerShell refuses to run it because the file came from the internet, `Unblock-File` it first. + +Installed through **npm or pip**? Update with your package manager on every platform (`npm install -g codebase-memory-mcp@latest` / `pip install -U codebase-memory-mcp`). + The MCP server also checks for updates on startup and notifies on the first tool call if a newer release is available. ### Uninstall @@ -359,7 +371,23 @@ git clone https://github.com/DeusData/codebase-memory-mcp.git cd codebase-memory-mcp scripts/build.sh # standard binary scripts/build.sh --with-ui # with graph visualization -# Binary at: build/c/codebase-memory-mcp +# Binary at: build/c/codebase-memory-mcp (codebase-memory-mcp.exe on Windows) +``` + +Every platform builds **one self-contained binary** — no runtime dependencies, no companion executables to keep alongside it. + +Run the test suite (6,768 tests across 120 suites): + +```bash +scripts/test.sh # full: clean sanitizer build + all suites + guards +scripts/test.sh --suites # one suite, incremental, seconds +build/c/test-runner --list-suites # what is available +``` + +`scripts/test.sh` is the same entry the CI gates run, so a local pass means the same thing a CI pass does. Packaging a release archive locally uses the same canonical script the release pipeline calls: + +```bash +scripts/package-release.sh ``` ### Manual MCP Configuration