diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json
index c5b437c..2a6da8c 100644
--- a/.claude-plugin/marketplace.json
+++ b/.claude-plugin/marketplace.json
@@ -6,14 +6,14 @@
},
"metadata": {
"description": "Hypermnesia MCP Viz — the read-only visualization companion for Cortex",
- "version": "3.0.0"
+ "version": "3.1.0"
},
"plugins": [
{
"name": "hypermnesia-mcp-viz",
"source": "./",
"description": "Live memory galaxy, methodology map, workflow graph, wiki browser, and execution trace over the shared Cortex store.",
- "version": "3.0.0",
+ "version": "3.1.0",
"author": {
"name": "Clement Deust",
"email": "admin@ai-architect.tools"
diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json
index 926a97e..8638c18 100644
--- a/.claude-plugin/plugin.json
+++ b/.claude-plugin/plugin.json
@@ -1,7 +1,7 @@
{
"name": "hypermnesia-mcp-viz",
"description": "Standalone visualization MCP for Cortex — a live neural-graph galaxy of every project, file, symbol, memory, discussion and wiki page, plus a per-session execution trace. Read-only bridge over Cortex's shared PostgreSQL and the ~/.claude artifacts.",
- "version": "3.0.0",
+ "version": "3.1.0",
"author": {
"name": "Clement Deust",
"email": "admin@ai-architect.tools"
diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json
index ef2b3f9..c9d709f 100644
--- a/.codex-plugin/plugin.json
+++ b/.codex-plugin/plugin.json
@@ -1,6 +1,6 @@
{
"name": "hypermnesia-mcp-viz",
- "version": "3.0.0",
+ "version": "3.1.0",
"description": "Read-only visualization and graph MCP for Cortex, packaged for Codex.",
"author": {
"name": "Clement Deust",
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8a77761..0029229 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,35 @@ Releases before 2.7.0 were recorded as `chore(release)` / `release:` commits in
## [Unreleased]
+## [3.1.0] - 2026-08-10
+
+**Upgrading from 2.8.0:** this release carries a breaking distribution-identity
+rename that was cut into the tree as `3.0.0` but never tagged or published —
+see the `[3.0.0]` entry below for the full detail, and read it before you
+upgrade. In short: `hypermnesia-mcp-viz` is now the *only* Claude Code plugin,
+MCP server, Python distribution, and console identity; the `cortex-viz`
+plugin and console entry point are gone. Run
+`claude plugin uninstall cortex-viz@cortex-plugins`, refresh `cortex-plugins`,
+then `claude plugin install hypermnesia-mcp-viz@cortex-plugins`; a raw pip
+install upgrades with `python3 -m pip install --upgrade "hypermnesia-mcp-viz>=3.1.0"`.
+Tool/permission references change from
+`mcp__plugin_cortex-viz_cortex-viz__open_visualization` to
+`mcp__plugin_hypermnesia-mcp-viz_hypermnesia-mcp-viz__open_visualization` (and
+the same pattern for `get_methodology_graph`).
+
+### Changed
+- `trace_impact.py`'s query orchestration is split along its real seams
+ (rules/coding-standards.md §4.2, issue #85): the Cypher fetchers (presence
+ gate, members, file-to-file edges, entry-point processes — one query per
+ function, no shaping) move to `trace_impact_graph.py`; member-list shaping
+ moves to `trace_impact_directions.py` alongside its sibling helpers;
+ `trace_impact.py` keeps only the call order and the member-direction
+ typed/fallback decision. Behaviour-preserving — every await still fires in
+ the same sequence, and `git diff -w` confirms every moved Cypher string and
+ dict key is untouched. Adds `tests/test_trace_impact_graph_contracts.py`,
+ closing the "no test references this module" gap #85 left open for the
+ parts that previously had none.
+
### Added
- `--export
--per-domain` writes one self-contained bundle per wiki domain
plus a chooser `index.html` that links them. The single-file export is
@@ -144,7 +173,34 @@ Releases before 2.7.0 were recorded as `chore(release)` / `release:` commits in
introducer). Transitive under the JS test toolchain; it does not ship.
`npm audit --package-lock-only` now reports zero vulnerabilities.
-## [3.0.0] - 2026-08-04
+### Fixed
+- The codebase-intelligence bridge no longer fails silently on a clean
+ marketplace install. `ap_bridge`'s discovery filtered
+ `installed_plugins.json` on the retired `automatised-pipeline@` key, so a
+ host that only ever installed the canonical `cdeust/ai-architect-mcp-codebase`
+ (canonical since its own v0.9.0) never matched, `_resolve_command` returned
+ `None`, and the AST layer disappeared without a message — visible only to a
+ developer box carrying `CORTEX_AP_COMMAND` or a self-install symlink. The
+ resolver and the two callers that validate its output by basename
+ (`mcp_client_spawn`, `ap_bridge`) now both read a single source,
+ `cortex_viz/infrastructure/upstream_identity.py`, so they cannot drift
+ apart again; legacy registry keys and the upstream `automatised-pipeline`
+ binary alias remain resolvable but are never preferred. A new CI check
+ (`upstream-identity.yml`) pins the producer's `mcp-contract.json` at a
+ commit rather than a tag, and fails if a legacy identity ever equals the
+ canonical one.
+
+## [3.0.0] - 2026-08-04 — cut in the tree, never tagged or published
+
+**This version number never shipped.** `2026-08-04` is when this work landed
+on `main`, not a release date: no `v3.0.0` git tag, no PyPI upload, no GitHub
+release, no MCP Registry publication exist for it, and none ever will —
+PyPI's most recent published version stayed `2.8.0` throughout. The entries
+below are real and describe what actually changed; they are recorded here,
+under this heading, because that is when and where the work happened. Every
+one of them ships to users for the first time in **`3.1.0`**, the first
+version of this line that was actually tagged and published — see that
+section above, including the upgrade note, before you read further.
### Security
diff --git a/README.md b/README.md
index d921ac4..411ea1b 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@
-
+
@@ -170,7 +170,7 @@ Hypermnesia MCP Viz is a cross-platform MCP server with a Claude Code plugin. Po
**As a plugin**: ships the MCP server, the `/cortex-visualize` skill, and the live session-activity hooks. The bundled `scripts/launcher.py` bootstraps its own dependencies on first launch (no manual `pip` needed). Configure the DB via the plugin's `database_url` user-config (defaults to `postgresql://127.0.0.1:5432/cortex`).
-**As a raw MCP (v3.0.0 and later):**
+**As a raw MCP (v3.1.0 and later):**
```bash
pip install "hypermnesia-mcp-viz[data,viz-tile]" # optional PG and large-graph extras
@@ -180,10 +180,14 @@ hypermnesia-mcp-viz # or: python -m cortex_viz (stdio MCP transp
The published `2.8.0` `hypermnesia-mcp-viz` distribution owned the legacy
`cortex-viz` console shim; there was no separate Python distribution by that
name. Upgrade with the same interpreter/environment that installed it, and the
-installer removes the old distribution-owned shim while installing `3.0.0`:
+installer removes the old distribution-owned shim while installing `3.1.0`
+(the distribution-identity rename that removes the shim was cut into the tree
+as `3.0.0`, but that version was never tagged or published — see the
+CHANGELOG's `[3.0.0]` entry — so `3.1.0` is the first published release that
+carries it):
```bash
-python3 -m pip install --upgrade "hypermnesia-mcp-viz>=3.0.0"
+python3 -m pip install --upgrade "hypermnesia-mcp-viz>=3.1.0"
```
If `cortex-viz` still resolves, first locate every shim and ask Python which
diff --git a/cortex_viz/identity.py b/cortex_viz/identity.py
index 57477e8..94f25aa 100644
--- a/cortex_viz/identity.py
+++ b/cortex_viz/identity.py
@@ -7,4 +7,4 @@
DISTRIBUTION_NAME = "hypermnesia-mcp-viz"
MCP_REGISTRY_ID = "io.github.cdeust/hypermnesia-mcp-viz"
-VERSION = "3.0.0"
+VERSION = "3.1.0"
diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md
index dcbd5ae..2e4e402 100644
--- a/docs/ROADMAP.md
+++ b/docs/ROADMAP.md
@@ -1,6 +1,6 @@
# Roadmap
-_Last updated: 2026-08-04._
+_Last updated: 2026-08-10._
Hypermnesia MCP Viz is a single-maintainer project (see [GOVERNANCE.md](../GOVERNANCE.md)),
so this roadmap states direction and known gaps rather than dated commitments.
@@ -8,7 +8,7 @@ Anything with an issue number is tracked; anything without one is an intention.
## Where the project is
-Current version **3.0.0**. All six views (Graph, Brain, Trace, Knowledge, Wiki,
+Current version **3.1.0**. All six views (Graph, Brain, Trace, Knowledge, Wiki,
Board) are bridged to live data. The galaxy builds end to end at 75k+ nodes and
the 3D brain streams the full graph into a cortical mesh. Trace works with no
database at all. The supply-chain wave ([#37](https://github.com/cdeust/cortex-viz/issues/37))
@@ -66,9 +66,10 @@ remediation in #49 are complete; they are no longer listed as open work.
- **A separate legacy `cortex-viz` PyPI distribution.** The canonical PyPI and
MCP Registry name is `hypermnesia-mcp-viz`, matching the published sibling
- `hypermnesia-mcp`. Version 3.0.0 removes the legacy console shim that 2.8.0
- exposed; publishing a second distribution would split the release identity
- instead of completing the migration.
+ `hypermnesia-mcp`. The legacy console shim that 2.8.0 exposed is removed as
+ of 3.1.0 (the removal was cut into the tree as 3.0.0, which was never
+ tagged or published); publishing a second distribution would split the
+ release identity instead of completing the migration.
- **Writing to Cortex's memory tables.** Hypermnesia MCP Viz renders, it never
remembers. That boundary is the point of the extraction and is not up for
negotiation.
diff --git a/gemini-extension.json b/gemini-extension.json
index 60d978e..8d57c7a 100644
--- a/gemini-extension.json
+++ b/gemini-extension.json
@@ -1,6 +1,6 @@
{
"name": "hypermnesia-mcp-viz",
- "version": "3.0.0",
+ "version": "3.1.0",
"description": "Read-only visualization and graph MCP for Cortex, packaged for Gemini CLI.",
"mcpServers": {
"hypermnesia-mcp-viz": {
diff --git a/pyproject.toml b/pyproject.toml
index 0f07349..2ee63d0 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project]
name = "hypermnesia-mcp-viz"
-version = "3.0.0"
+version = "3.1.0"
description = "Visualization and graph MCP server for Cortex — neural graph, methodology map, workflow graph, and trace UI extracted from the Cortex memory engine"
readme = "README.md"
license = "MIT"
diff --git a/server.json b/server.json
index 79a4dfe..149c4eb 100644
--- a/server.json
+++ b/server.json
@@ -6,13 +6,13 @@
"url": "https://github.com/cdeust/cortex-viz",
"source": "github"
},
- "version": "3.0.0",
+ "version": "3.1.0",
"websiteUrl": "https://ai-architect.tools/cortex",
"packages": [
{
"registryType": "pypi",
"identifier": "hypermnesia-mcp-viz",
- "version": "3.0.0",
+ "version": "3.1.0",
"runtimeHint": "python",
"transport": {
"type": "stdio"
diff --git a/uv.lock b/uv.lock
index 5ffaf7c..9290804 100644
--- a/uv.lock
+++ b/uv.lock
@@ -770,7 +770,7 @@ wheels = [
[[package]]
name = "hypermnesia-mcp-viz"
-version = "3.0.0"
+version = "3.1.0"
source = { editable = "." }
dependencies = [
{ name = "fastmcp" },