Deployment and documentation
What stays, what moves, and what we can honestly say about it
Documentation status
withdrawnThe previous site’s Getting started and API reference documented a pip package, a Docker image, a Python SDK, a REST API and a configuration file that do not exist; packaging and a documented API are unchecked roadmap items.2 Those pages were removed rather than corrected, because no command in them works.3
What to read instead:
- the engine section of the architecture page for what the engine does today,
- the benchmark page for what has been measured, and
- this page for how an evaluation is run.
Documentation that will exist when the roadmap items are done: a quick-start and a documented memory-graph API, both planned.3
Retired URLs redirect here; the withdrawal is recorded in the corrections log.
/docs/index.html/docs/getting-started.html/docs/api-reference.html
What stays, what moves
- solid: stays on the holder
- teal thread: evidence artifact, out after policy
- gold thread: question, in after policy
struck: never moves / does not exist- hatched: configuration
- Stays on the holder
- The raw memory graph, embeddings, transcripts and per-node storage.4
- Moves, and only after policy
- Typed, validated artifacts (claim envelopes, retrieval traces, evidence exports) and bounded questions, each carrying owner, scope, temporal validity, lineage and authorization.5
- Never moves
- Raw graph reads; and there is no global merged store.4
Mechanisms, where they live, and their evidence status
| Mechanism | What it does | Where implemented | Status | Source |
|---|---|---|---|---|
| No raw cross-graph edges | holders never read each other’s graphs | coordinator boundary validation (adapters) | implemented and tested | 6 |
| Typed artifacts only | ClaimEnvelope, RetrievalTrace, EvidenceExport are the entire trust boundary |
coordination/contracts.py frozen dataclasses | implemented and tested | 7 |
| Policy before propagation | a policy filter runs before any artifact leaves | coordinator policy filter | implemented and tested | 4 |
| Lineage roots on every claim | lineage_root_ids and claim_roots in output |
coordinator lineage analyser | implemented and tested | 8 |
| Trace log | a TraceEvent stream per coordinated retrieval |
coordinator TraceLogger |
implemented and tested | 8 |
| Reversible, payload-free failure injection | inject and undo failures without moving data | coordinator failure injector | implemented and tested | 4 |
| Lineage-aware repair | route to an independently rooted holder after a root fails | coordinator repair planner; Class B fixture | demonstrated in fixture | 9 |
| Per-stage retrieval attribution | candidate counts, latency, score components, evidence per stage | engine attribution | implemented | 10 |
| DLP: no text leaves a device | devices emit structured observations only | benchmark simulator | benchmark simulator | 11 |
| k-anonymity suppression | cells with fewer than k contributors are suppressed | benchmark simulator | benchmark simulator | 11 |
| Canary tokens | planted tokens measure leakage exactly | benchmark simulator | benchmark simulator | 12 |
| HMAC-signed claims and content-hash dedup | forged or duplicated claims are detected | benchmark simulator | benchmark simulator | 13 |
| Independent-support discount | copies and same-source evidence count less | benchmark simulator | benchmark simulator | 14 |
| Quarantine and supersession | claim status in {proposed, accepted, quarantined, superseded, unresolved}; withdrawal on re-test | benchmark simulator | benchmark simulator | 15 |
| Local model endpoints | the engine calls whatever base URL is configured; localhost is the documented case | engine llm_backend | configuration not a control | 16 |
| Open-domain fallback retriever | reaches outside local memory when enabled | engine external_retriever | configuration must be off for local-only operation | 17 |
| Session isolation | indexes partitioned by session key | engine storage | implemented data scoping, not a security boundary | 18 |
| Per-source-memory authorization | authorization at the granularity of a single memory | none | not implemented | 19 |
| Network transport between holders | durable, causally ordered transport | none | design only no deployed transport exists | 7 |
What we can assert and what we cannot
Can
- The coordinator’s boundary validation rejects raw graph access; policy runs before propagation; failure injection is reversible and payload-free.4
- Every coordinated claim carries lineage roots and every coordinated retrieval carries a trace.8
- The engine’s network endpoints are the model server you point it at and, only if you enable it, the open-domain fallback retriever.20
- The engine records per-stage retrieval attribution.10
Cannot, yet
- An independent security audit; a formal proof of non-leakage.
- Per-source-memory authorization (not implemented).19
- A telemetry statement: we make none until the code path has been reviewed independently.
- Enterprise-readiness, certification or compliance claims; SLAs.21
- Fair-baseline, Pareto, scale or generalisation evidence for the coordinator (Gates 2 to 6 not started).22
Lineage and audit trail
What exists
- lineage threads forming a derivation DAG;
- lineage root ids on every coordinated claim;
- a trace-event stream;
- per-stage retrieval attribution;
- in the benchmark,
LineageRecords with hashed root worker ids, paths and derivation operators, and HMAC-signed claims.23
What does not exist
- a user-facing export or purge-on-demand feature (the previous site’s claim is withdrawn);
- retention is governed by the engine’s automatic consolidation cycle unless configured.24
Threat models studied so far
- In the deterministic fixture
- node failure, memory deletion, lineage-root failure, authorization revoke, route removal, edge corruption, staleness, partition, worst single domain.25
- In the benchmark design
- eleven poisoning attack types and seven detectors, canary tokens for exact leakage measurement, k-anonymity suppression.26
- In symbolic simulation only
- a white-box attacker that knows each policy’s placement and greedily removes independent support (a lower bound on an optimal adversary); origin-source corruption; coordinated corruption; whole-domain, organisation and region loss; two- and four-way partitions.27
- In symbolic simulation only
- further threat models studied in symbolic simulation are described in the manuscript under review and are held back here until it is cleared.
None of these is a penetration test of running software.
Air-gapped operation
configuration, not a featureRunning the engine with a local model server on a network with no outbound route is consistent with design principle 5, “the system should run locally when possible”, and with the local-model backend; it is not a delivered or tested scenario.28 For it to hold, the optional open-domain fallback retriever must be switched off and the model base URL must point inside the network.29 The previous site’s “air-gapped deployments” claim is restated here as a configuration, not a feature.30
Hardware and models
The engine runs with local models through an OpenAI-compatible server such as LM Studio or through Ollama.31 We publish no minimum or recommended hardware because none has been measured; the only compute figures in the programme are simulator costs (benchmark tiers at 0.35 to 3.4 GB on a 4-vCPU container without a GPU; a symbolic 100,000-agent run in 97 CPU-minutes; and a symbolic-simulation cost reported in the manuscript under review), which say nothing about the engine’s requirements.3233 The previous site’s RAM, storage and CPU tables are withdrawn.34
How an evaluation runs
-
Scoping call
Your local model server (Ollama or OpenAI-compatible), the kind of memory you need, your constraints (air-gapped, policy).35
-
Metrics agreed before anything runs
Metrics, judge, prompt strictness and dataset slice are agreed in writing before anything runs, because identical answers score between 13.5% and 64.9% depending only on the grader.36
-
Written statement of status
A written statement of what is implemented, demonstrated and proposed for your scenario, using the ledger on the architecture page.
-
Local install and harness run
A local install on your hardware with your models; a LoCoMo-style harness run whose numbers name their judge.37
-
Read-out
A read-out including negative findings.38
No SLA and no price list; commercial terms are discussed directly. Commercial terms
For your security review
What an evaluation can include today
- A code walkthrough of the coordination contracts and boundary validation.7
- Running the 109 coordination tests and the benchmark’s no-cheating tests in your environment.39
- A DLP, k-anonymity and canary demonstration in the benchmark simulator.40
- A written data-flow description for your configuration (endpoints contacted, artifacts that can leave a holder, what the trace log records).
What it cannot include
- Certification.
- A third-party audit report.
- An SLA.
Questions to ask us (we answer each with file-and-line references)
- Which artifact types can leave a holder in my configuration?
- Which policy decisions are logged, and where?
- Is the open-domain fallback disabled, and how is that verified?
- Which model endpoints are contacted, and are they on my network?
- What does the trace log record per retrieval?
- Which of the six coordination gates will be complete before my evaluation?
- What is retained by the consolidation cycle, and how is retention configured?
What this website does
Static HTML, CSS and JavaScript. No cookies, no accounts, no first-party analytics, no server-side code. Fonts are loaded from one third-party host and can be blocked without loss of content. The theme preference is stored only in your browser. Contact is a mailto link; no form posts anywhere.
The previous site’s login, dashboard and authentication server were removed: they collected credentials into a users.json file on a server that exposed its own path, and no account or plan existed behind them.41
Request an evaluation or a security walkthrough
Sources
Paths are relative to the root of the NeuralGraph repository, which is public to read at github.com/anovruzov/NeuralGraph with no licence selected (all rights reserved); they are given as text, with line numbers checked against main on 2026-09-17, and files under mycelic-org-benchmark/ are on branch claude/mycelic-org-benchmark-9cnf35, not yet merged into main. “Manuscript” is the Mycelic research manuscript under review, cited by section and printed margin line number; entries marked gated are stripped from the deployed page until the authors clear publication. “website/” is the previous site, cited only for withdrawn claims and removed pages.
- Manuscript — §6.1, l.242
- website/docs/getting-started.html; website/docs/api-reference.html (removed pages); NeuralGraph/README.md — Roadmap, ll.131-139
- NeuralGraph/README.md — Roadmap, ll.131-139
- NeuralGraph/state.md — Non-negotiable invariants, ll.19-30
- NeuralGraph/state.md — contracts.py, ll.43-71; NeuralGraph/mycelic-org-benchmark/DESIGN.md — §4, ll.160-192
- NeuralGraph/state.md — ll.19-30, 43-71
- NeuralGraph/state.md — contracts.py, ll.43-71
- NeuralGraph/state.md — Gate 1, ll.195-197
- NeuralGraph/docs/BENCHMARKS.md — ll.16-62
- NeuralGraph/README.md — ll.49-50
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §3.6, ll.145-153
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §5, ll.199-202
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §4, ll.160-192; NeuralGraph/mycelic-org-benchmark/README.md — l.141
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §6 step 3, ll.238-242
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §4, ll.160-192; NeuralGraph/mycelic-org-benchmark/README.md — ll.155-157
- NeuralGraph/NeuralGraph/llm_backend.py — ll.1-24
- NeuralGraph/NeuralGraph/external_retriever.py — l.249; NeuralGraph/README.md — ll.39-47
- NeuralGraph/NeuralGraph_System_Architecture.md — §4.3
- NeuralGraph/state.md — Known Issues item 4, ll.270-278
- NeuralGraph/NeuralGraph/llm_backend.py — ll.1-24; NeuralGraph/NeuralGraph/external_retriever.py — l.249
- website/about.html — l.72 (withdrawn “Enterprise Ready”)
- NeuralGraph/state.md — ll.210-228
- NeuralGraph/state.md — ll.195-197; NeuralGraph/README.md — ll.49-50; NeuralGraph/mycelic-org-benchmark/DESIGN.md — §4, ll.160-192
- website/index.html — l.148 (withdrawn claim); NeuralGraph/NeuralGraph_System_Architecture.md — §3.4.3
- NeuralGraph/docs/BENCHMARKS.md — ll.27-36
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §3.6, ll.145-153; §5, ll.199-202; §10, ll.370-394
- Manuscript — ll.138-142; §6.1, l.237 (gated)
- NeuralGraph/README.md — Design Principles, ll.118-125; NeuralGraph/NeuralGraph/llm_backend.py — ll.1-14
- NeuralGraph/README.md — ll.39-47; NeuralGraph/NeuralGraph/external_retriever.py — l.249; NeuralGraph/NeuralGraph/llm_backend.py — ll.22-24
- website/index.html — “air-gapped deployments” (withdrawn wording)
- NeuralGraph/NeuralGraph/llm_backend.py — ll.1-14
- NeuralGraph/mycelic-org-benchmark/docs/EXPERIMENT_PLAN.md — ll.3-14
- Manuscript — ll.133-137 (gated)
- website/index.html — ll.234-241 (withdrawn hardware tables)
- NeuralGraph/README.md — ll.90-116
- NeuralGraph/docs/BENCHMARKS.md — Judge sensitivity, ll.121-131
- NeuralGraph/docs/BENCHMARKS.md — ll.70-72
- NeuralGraph/docs/BENCHMARKS.md — All 18 experiments, ll.101-119
- NeuralGraph/state.md — Test Status, ll.145-154; NeuralGraph/mycelic-org-benchmark/README.md — Honesty rules, ll.286-294
- NeuralGraph/mycelic-org-benchmark/DESIGN.md — §3.6, ll.145-153; §5, ll.199-202
- website/server/server.js — l.12; website/dashboard.html; website/login.html (removed)
Source ledger for this page: NeuralGraph/state.md; NeuralGraph/README.md; NeuralGraph/NeuralGraph/llm_backend.py, external_retriever.py; NeuralGraph/NeuralGraph_System_Architecture.md; NeuralGraph/docs/BENCHMARKS.md; NeuralGraph/mycelic-org-benchmark/DESIGN.md, README.md, docs/EXPERIMENT_PLAN.md; website/index.html, about.html, docs/*.html, login.html, dashboard.html, server/server.js (withdrawn); manuscript (gated).