|
3 | 3 | [](https://github.com/DeusData/codebase-memory-mcp/releases/latest) |
4 | 4 | [](LICENSE) |
5 | 5 | [](https://github.com/DeusData/codebase-memory-mcp/actions/workflows/dry-run.yml) |
6 | | -[](https://github.com/DeusData/codebase-memory-mcp) |
| 6 | +[](https://github.com/DeusData/codebase-memory-mcp) |
7 | 7 | [](https://github.com/DeusData/codebase-memory-mcp) |
8 | 8 | [](#hybrid-lsp) |
9 | 9 | [](https://github.com/DeusData/codebase-memory-mcp) |
@@ -155,10 +155,22 @@ Watcher registration is controlled separately by `auto_watch` (default `true`). |
155 | 155 |
|
156 | 156 | ### Keeping Up to Date |
157 | 157 |
|
| 158 | +**macOS / Linux:** |
| 159 | + |
158 | 160 | ```bash |
159 | 161 | codebase-memory-mcp update |
160 | 162 | ``` |
161 | 163 |
|
| 164 | +**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: |
| 165 | + |
| 166 | +```powershell |
| 167 | +powershell -ExecutionPolicy Bypass -File "<install-dir>\install.ps1" |
| 168 | +``` |
| 169 | + |
| 170 | +`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. |
| 171 | + |
| 172 | +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`). |
| 173 | + |
162 | 174 | The MCP server also checks for updates on startup and notifies on the first tool call if a newer release is available. |
163 | 175 |
|
164 | 176 | ### Uninstall |
@@ -359,7 +371,23 @@ git clone https://github.com/DeusData/codebase-memory-mcp.git |
359 | 371 | cd codebase-memory-mcp |
360 | 372 | scripts/build.sh # standard binary |
361 | 373 | scripts/build.sh --with-ui # with graph visualization |
362 | | -# Binary at: build/c/codebase-memory-mcp |
| 374 | +# Binary at: build/c/codebase-memory-mcp (codebase-memory-mcp.exe on Windows) |
| 375 | +``` |
| 376 | + |
| 377 | +Every platform builds **one self-contained binary** — no runtime dependencies, no companion executables to keep alongside it. |
| 378 | + |
| 379 | +Run the test suite (6,768 tests across 120 suites): |
| 380 | + |
| 381 | +```bash |
| 382 | +scripts/test.sh # full: clean sanitizer build + all suites + guards |
| 383 | +scripts/test.sh --suites <name> # one suite, incremental, seconds |
| 384 | +build/c/test-runner --list-suites # what is available |
| 385 | +``` |
| 386 | + |
| 387 | +`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: |
| 388 | + |
| 389 | +```bash |
| 390 | +scripts/package-release.sh <linux|darwin|windows> <amd64|arm64> |
363 | 391 | ``` |
364 | 392 |
|
365 | 393 | ### Manual MCP Configuration |
|
0 commit comments