diff --git a/README.md b/README.md
index 6f31b48b..00b743cd 100644
--- a/README.md
+++ b/README.md
@@ -157,7 +157,7 @@ selection, set `ENGRAPHIS_UPDATE_EXTRAS` to a comma-separated list (for example
`server,mcp`), or set it to `none` for the base package only.
> **Upgrading to 1.4:** `engraphis-mcp` now exposes the nine-tool Smart gateway. Integrations that
-> require the former 34 direct tool names should run `engraphis-mcp-classic`. The SQLite schema
+> require the former 35 direct tool names should run `engraphis-mcp-classic`. The SQLite schema
> in the 1.4.0 release was version 9. Existing v7-to-v8 databases already contain `confidence`
> and `pinned_at`/`unpinned_at`; v9 adds the `memory_tombstones` repository-scope column/table
> and performs a one-time entity-canonicalization repair, then migrates automatically on first
@@ -387,7 +387,7 @@ the indicated read or action executor; no profile selection is required. The gat
the discovered capability again before it runs it, and clients remain responsible for their
normal destructive-action approval boundary.
-Existing clients that pin the historical 34 named tools can use
+Existing clients that pin the historical 35 named tools can use
`engraphis-mcp-classic` (or `engraphis-mcp-http --classic`). The complete classic inventory,
including `engraphis_check_update`, is in the [MCP tool reference](https://github.com/Coding-Dev-Tools/engraphis/blob/main/docs/MCP_TOOLS.md).
@@ -562,7 +562,7 @@ when you are ready to evaluate the service boundary and billing options.
| | Free (available now) | Pro: $10/mo or $100/yr | Team: $20/seat/mo or $200/seat/yr |
|---|---|---|---|
| Dashboard WebUI (with built-in inspector) | ✓ | ✓ | ✓ |
-| Memory engine + Smart MCP (Classic 34-tool compatibility) | ✓ | ✓ | ✓ |
+| Memory engine + Smart MCP (Classic 35-tool compatibility) | ✓ | ✓ | ✓ |
| Version-chain diffs, offline knowledge graph | ✓ | ✓ | ✓ |
| Manual local consolidation (dry-run by default) | ✓ | ✓ | ✓ |
| Local workspace export (portable v2 JSON: memories, source manifests, graph/code evidence, sessions, audit, and receipts) | ✓ | ✓ | ✓ |
@@ -580,7 +580,7 @@ when you are ready to evaluate the service boundary and billing options.
## MCP tools
-Engraphis exposes a zero-configuration Smart MCP gateway plus a 34-tool Classic compatibility
+Engraphis exposes a zero-configuration Smart MCP gateway plus a 35-tool Classic compatibility
server across memory, recall, code graphs, governance, sessions, and privacy-safe audit receipts.
The focused [MCP tool reference](https://github.com/Coding-Dev-Tools/engraphis/blob/main/docs/MCP_TOOLS.md) is the source for
the full inventory and parameters.
@@ -758,7 +758,7 @@ engraphis/
│ ├── backends/ # pluggable embedder / vector index / reranker / codegraph / sync transports / encryption
│ ├── factory.py # outer v2 composition root; selects and injects concrete backends
│ ├── service.py # validated MemoryService facade
-│ ├── mcp_server.py # Smart MCP gateway + 34-tool Classic compatibility server
+│ ├── mcp_server.py # Smart MCP gateway + 35-tool Classic compatibility server
│ ├── dashboard_app.py # dashboard WebUI (FastAPI)
│ ├── dashboard_assets/ # primary Ledger interface + graph engine
│ ├── classic_assets/ # selectable full operator dashboard backup
diff --git a/docs/AGENT_CONNECT.md b/docs/AGENT_CONNECT.md
index a5bd0e1c..daa8d138 100644
--- a/docs/AGENT_CONNECT.md
+++ b/docs/AGENT_CONNECT.md
@@ -38,7 +38,7 @@ middleware. Do not expose it through a LAN address or proxy. For a remote deploy
`engraphis[all]`, set a strong `ENGRAPHIS_API_TOKEN`, terminate TLS, and use the dashboard's
authenticated `/mcp` endpoint instead.
-Use `engraphis-mcp-http --classic` only for an existing integration that requires the 34 direct
+Use `engraphis-mcp-http --classic` only for an existing integration that requires the 35 direct
tool names. New integrations should keep the nine-tool Smart default.
Engraphis documents and tests generic MCP transports; it does not claim client-specific support
diff --git a/docs/KILO_CODE_INTEGRATION.md b/docs/KILO_CODE_INTEGRATION.md
index 843ebd0b..dd1dfb45 100644
--- a/docs/KILO_CODE_INTEGRATION.md
+++ b/docs/KILO_CODE_INTEGRATION.md
@@ -223,7 +223,7 @@ class, and the appropriate executor revalidates all of it before running.
| `engraphis_conflict_review` | List pending/quarantined/conflicted records for review (read-only inbox). |
`engraphis-mcp-classic` is only for an existing configuration that pins direct tool names. It
-preserves the former 34-tool surface below; new Kilo Code installations should keep the zero-config
+preserves the former 35-tool surface below; new Kilo Code installations should keep the zero-config
Smart command shown above.
### Classic 35-tool inventory
diff --git a/engraphis/classic_assets/dashboard.js b/engraphis/classic_assets/dashboard.js
index b45e0720..2c76ed03 100644
--- a/engraphis/classic_assets/dashboard.js
+++ b/engraphis/classic_assets/dashboard.js
@@ -1227,7 +1227,7 @@ function loadAllGraphEngine(){
if(typeof EngraphisAllGraph!=='undefined')return Promise.resolve();
if(!ALL_GRAPH_ENGINE_LOADING){
ALL_GRAPH_ENGINE_LOADING=new Promise((resolve,reject)=>{
- const script=document.createElement('script');script.src='/v2-assets/engraphis-graph-all.js?v=20260814-all-controls-2';
+ const script=document.createElement('script');script.src='/v2-assets/engraphis-graph-all.js?v=20260817-all-nodes-lod-3';
script.onload=()=>{typeof EngraphisAllGraph==='undefined'?reject(new Error('All-node graph asset loaded without registering EngraphisAllGraph')):resolve()};
script.onerror=()=>reject(new Error('All-node graph asset could not load'));
document.head.appendChild(script);
@@ -1243,7 +1243,7 @@ function loadGraphEngine(loadAll=false){
if(!GRAPH_ENGINE_LOADING){
GRAPH_ENGINE_LOADING=new Promise((resolve,reject)=>{
const script=document.createElement('script');
- script.src='/v2-assets/engraphis-graph.js?v=20260814-galaxy-gravity-3';
+ script.src='/v2-assets/engraphis-graph.js?v=20260819-v24-physics-final';
/* A 200 that never registers the global is a corrupt/truncated asset, not a success —
resolving there would hand graphRenderEngine() an undefined EngraphisGraph. */
script.onload=()=>{typeof EngraphisGraph==='undefined'?reject(new Error('Graph engine asset loaded without registering EngraphisGraph')):resolve()};
diff --git a/engraphis/classic_assets/index.html b/engraphis/classic_assets/index.html
index a4bd65ed..e214c0a7 100644
--- a/engraphis/classic_assets/index.html
+++ b/engraphis/classic_assets/index.html
@@ -350,6 +350,6 @@
graph view. dashboard.js fetches both on demand from graphRender(); see loadForceGraph()
and loadGraphEngine(). scripts/externalize_dashboard_assets.py enforces both halves:
they stay out of this file, and the lazy references still have to resolve. -->
-
+