Skip to content

Commit e85322d

Browse files
cdeustclaude
andcommitted
release: v3.19.4 — fix failing cortex MCP server in the plugin repo itself
Bumps manifest + marketplace + pyproject to 3.19.4, marks the CHANGELOG Unreleased section released, and adds release notes for the -32000 shadow-registration fix (405f557): the repo-root .mcp.json was double-read as project-scoped MCP config where ${CLAUDE_PLUGIN_ROOT} is never substituted, spawning a phantom failing `cortex` server next to the healthy plugin:cortex:cortex. Config is now inline in plugin.json mcpServers; .mcp.json is gone; the contract test pins its absence. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 405f557 commit e85322d

5 files changed

Lines changed: 60 additions & 4 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
},
77
"metadata": {
88
"description": "Persistent memory and cognitive profiling plugins for Claude Code",
9-
"version": "3.19.3"
9+
"version": "3.19.4"
1010
},
1111
"plugins": [
1212
{
1313
"name": "cortex",
1414
"source": "./",
1515
"description": "Persistent memory and cognitive profiling for Claude Code — thermodynamic memory with heat/decay, intent-aware retrieval, biological plasticity, codebase intelligence, and cognitive profiling. 49 MCP tools with enriched schemas. PostgreSQL + pgvector in CLI mode; automatic SQLite fallback in Cowork/sandboxed mode. v3.17.0 — autonomous per-project wiki: SessionStart auto-spawns a 6-hour consolidate cycle; a headless `claude -p` worker drains the curation-gap queue, calls codebase-intelligence MCP tools to ground each section in the real call graph, and authors missing anchor pages (architecture / services / api / data-flow / operations / decisions / PRD) per project from the source tree. 15 canonical scopes × 13 file sections; per-project dashboards under `wiki/_dashboards/`. Mermaid diagrams have a 🔍 lens with zoom + pan. Workflow graph with caller-qualified CALLS chains rendering full method-to-method dependencies (native tree-sitter, no AP required). Side panel humanized for non-technical users. Ingests codebase analysis (ai-automatised-pipeline) and PRDs (prd-spec-generator) into wiki + memory + knowledge graph. Docker image available.",
16-
"version": "3.19.3",
16+
"version": "3.19.4",
1717
"author": {
1818
"name": "Clement Deust",
1919
"email": "admin@ai-architect.tools"

.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "cortex",
33
"description": "Persistent memory for Claude Code — remembers across sessions automatically. Install and forget. Scientific retrieval backed by 41 published papers.",
4-
"version": "3.19.3",
4+
"version": "3.19.4",
55
"author": {
66
"name": "Clement Deust",
77
"email": "admin@ai-architect.tools"

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ adheres to [Semantic Versioning](https://semver.org/).
66

77
## [Unreleased]
88

9+
## [3.19.4] - 2026-06-12
10+
911
### Fixed
1012

1113
- **`/mcp` showed a failing `cortex` server (-32000) whenever the plugin

docs/release-notes/v3.19.4.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# v3.19.4 — fix failing `cortex` MCP server when working in the plugin repo
2+
3+
Fourth entry in the 3.19.x reliability series. This one fixes a confusing
4+
failure that only appeared when the Cortex plugin source repo itself was the
5+
working directory: `/mcp` showed a failing `cortex` server with
6+
"MCP error -32000: Connection closed", alongside the healthy
7+
`plugin:cortex:cortex` server.
8+
9+
## What it fixes
10+
11+
The repo-root `.mcp.json` served double duty:
12+
13+
1. **Plugin MCP config**`.claude-plugin/plugin.json` referenced it as
14+
`"mcpServers": "./.mcp.json"`.
15+
2. **Project-scoped MCP config** — unintentionally. Claude Code picks up a
16+
repo-root `.mcp.json` as project configuration whenever that repo is the
17+
working directory.
18+
19+
In project scope `${CLAUDE_PLUGIN_ROOT}` is never substituted (it is a
20+
plugin-scope-only variable), so the project-scoped registration spawned a
21+
literal `python3 '<repo>/${CLAUDE_PLUGIN_ROOT}/scripts/launcher.py'`
22+
ENOENT → -32000. The phantom `cortex` entry shadowed the healthy
23+
plugin-scoped server (which connected in ~1.7 s in the same session's logs)
24+
and made the plugin look broken to anyone developing it.
25+
26+
## The fix
27+
28+
- The MCP server config moved **inline** into `.claude-plugin/plugin.json`
29+
`mcpServers` (the documented object form) — inline plugin config is
30+
invisible to project-scope discovery.
31+
- The repo-root `.mcp.json` was **deleted**.
32+
- The contract test (`tests_py/scripts/test_mcp_json_contract.py`) now reads
33+
the inline object and pins the absence of a repo-root `.mcp.json` as a
34+
regression guard.
35+
36+
## Verification
37+
38+
- Post-restart, only `plugin:cortex:cortex` registers; the failing `cortex`
39+
log stream (`mcp-logs-cortex/`) received no new entries.
40+
- `pytest tests_py/scripts/` — 12 passed.
41+
- `claude plugin validate .` — passes.
42+
43+
## Diagnosis notes (for future -32000 triage)
44+
45+
Two distinct -32000 root causes are now on record:
46+
47+
- **2026-06-09:** stale `postmaster.pid` after unclean PostgreSQL shutdown.
48+
- **2026-06-12 (this release):** project-scope shadow registration of the
49+
plugin's `.mcp.json`.
50+
51+
Per-project MCP logs live at
52+
`~/Library/Caches/claude-cli-nodejs/<project>/mcp-logs-<server>/` (JSONL,
53+
parse per-line). Two log directories for one conceptual server = two
54+
registrations — check scope before debugging the server itself.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "neuro-cortex-memory"
7-
version = "3.19.3"
7+
version = "3.19.4"
88
description = "Scientifically-grounded memory system based on computational neuroscience research"
99
readme = "README.md"
1010
license = "MIT"

0 commit comments

Comments
 (0)