Keep what your agent changes consistent with the code you have

An agent working from a partial view of a codebase writes code that drifts from its patterns, ignores decisions made for a reason, and misses the callers a change breaks. That is technical debt someone pays for later. NeuralMind gives the agent the project’s structure and history, and checks changes against them. Here is what does that, and what recent releases added.

Latest release

v4.24.0Released 2026-11-02

Guards against drift and debt

Each works on your machine, from your repository, and each has a command that shows it.

A change that skips its siblings’ pattern is flagged before commit

v3.2.0+

neuralmind drift maps your staged diff onto the code graph, groups each changed function with its siblings, and flags one that leaves out something most of them do: the tenth handler that forgot the auth check the other nine make. Only code in the diff is judged. neuralmind init-hook wires it into pre-commit; it warns by default, and --strict blocks.

$ neuralmind drift . --staged

Review before push

Decisions go stale when their code changes

v4.6.0+

Record why the code is the way it is, with the files the decision governs. When a commit changes one of those files the decision is marked STALE, and the agent is warned before it edits. A reversed decision can be retracted so it stops reaching the agent (v4.16.0+).

$ neuralmind decisions record --title "Hash tokens before storing" --rationale "Leaked DB dumps" --files auth/tokens.py

Decision memory across commits

See what a change touches before you make it

v0.52.0+

neuralmind impact lists every caller, importer and subclass of a symbol from the static code graph, so a rename or a signature change reaches all of them instead of breaking the ones nobody remembered.

$ neuralmind impact verify_session

Blast radius before a rename

The files you usually change together, before you push

v0.39.0+

neuralmind review reads your diff and lists files that have been edited together with the ones you changed but are not in this diff, from what the synapse layer learned on your project.

$ neuralmind review . --base main

Co-change review in the CLI reference

Context that says when it is out of date

v4.17.0+

Answers from a stale index carry one line saying so: when commits since the last build changed the project, or the background rebuild failed. Since v4.13.0 the index also rebuilds after pulls, merges, branch switches and rebases, not only after your own commits.

$ neuralmind init-hook .

Recover from a stale graph

Recent releases

v4.16 to v4.23 at a glance, then every release, newest first, with its full notes.

Large repositories: the same context, sooner

  • A Hermes session gets its own project’s context under Hermes 0.22’s gatewayv4.23.1
  • A first turn’s recap arrives within the Hermes plugin’s time limitv4.23.1
  • An upgrade keeps a large repository’s graph cachev4.23.2
  • An incremental build writes the graph a full build writesv4.23.3
  • A rebuild’s type pass parses only the files that changedv4.23.3

Timed on one machine, with the output checked byte for byte. The release notes give the numbers.

The prompt block points at the code

  • The code comes before its tests, unless the prompt names a testv4.23.0
  • A test that matches the prompt brings the code it testsv4.23.0
  • The prompt hook answers within the Hermes plugin’s time limit on a large indexv4.23.0

Measured offline, not in agent runs. The release notes give the numbers.

AI agents on CUI code

  • One setting for the hardened configuration: security.profile: cuiv4.16.0
  • Signed audit checkpointsv4.16.0
  • Audit records to syslog as they are writtenv4.19.0
  • neuralmind hardening checks a 17-rule baselinev4.19.0
  • neuralmind data-locations lists where the data isv4.18.0

These support controls in your system. Your assessor decides compliance.

Context you can trust

  • An answer from a stale index says sov4.17.0
  • A feature branch’s calls and memory stay on its branchv4.22.0
  • neuralmind doctor shows whether anything calls NeuralMindv4.22.0
  • neuralmind demo runs offline, straight after installv4.19.0

Evidence, not adjectives

40 of 40

public-benchmark queries where NeuralMind found the file the fix changed. Keyword search with ripgrep: 32 of 40.

Reproducible

0 of 60

pilot runs in which the agent called a NeuralMind tool. Cost per task showed no measurable difference: +0.0% (95% CI −5.2% to +8.6%).

Pilot

On a larger eval the right file is in the top five on 140 of 150 questions, and all 10 misses are published. Getting agents to use what NeuralMind finds is the work now.

v4.16 to v4.22 as 20 slides, October 2026 (PDF)

  1. v4.23.3

    A rebuild gives the graph a full build gives, and redoes less

    • An incremental build now writes the same graph.json a full build writes, byte for byte. Before, a rebuild could link a call to a different function of the same name, and files .gitignore and .neuralmindignore exclude counted as new on every build.
    • A rebuild re-extracts only the files a change can affect, and neuralmind watch --reindex follows the same rules.
    • The build’s type pass keeps each file’s results in .neuralmind/type_cache.json, keyed by a hash of its text, so a rebuild parses only the files that changed, with the same type edges.
    • The first build after upgrading extracts the whole graph once. Timed on one machine; the release notes give the numbers.
    v4.23.3 release notes
  2. v4.23.2

    The same block, sooner, and an upgrade that keeps the graph cache

    • The prompt hook no longer frees its graph at exit or counts every row of the index before loading it. The block it gives is the same, checked byte for byte.
    • The build’s type pass reads each file once, in one thread, with the same type edges.
    • An upgrade no longer throws away a large repository’s graph cache, so the first prompt after it keeps its recall within the Hermes plugin’s time limit.
    • Timed on one machine; the release notes give the numbers.
    v4.23.2 release notes
  3. v4.23.1

    The Hermes plugin serves each session’s own project

    • Since Hermes 0.22.2 every local session’s hooks run in one gateway process. The plugin now asks Hermes for the session’s working directory (ctx.session_cwd()), so a session in a built checkout gets its context. Older Hermes is unchanged.
    • Under the gateway, NEURALMIND_PROJECT counts only in the gateway’s own environment, where it applies to every session like a pin.
    • On a large synapse store the session-start hook returns its recap at once and finishes its housekeeping in the background, so a first turn gets the previous session’s recap within the plugin’s time limit.
    v4.23.1 release notes
  4. v4.23.0

    The prompt block points at the code, not its tests

    • The block an agent gets with each prompt lists the code before its tests, unless the prompt names a test, and its excerpt quotes code. A prompt that only says how to run the tests no longer puts test files first.
    • A test file that matches the prompt brings the code it tests into the block, found by name: test_x.py tests x.py.
    • On a large index the prompt hook now answers within the Hermes plugin’s time limit. The loaded graph is cached, so a turn no longer reloads it from scratch.
    • Measured offline, not in agent runs: the block by replaying it on held-out tasks, the hook by timing it. The release notes give the numbers, including where the change didn’t help.
    v4.23.0 release notes
  5. v4.22.0

    Doctor says whether anything calls NeuralMind

    • neuralmind doctor opens with a Wiring section (daemon, Git hooks, Hermes plugin, MCP registration per client), and each warning carries the command that fixes it.
    • neuralmind install-mcp --client hermes registers the MCP server with Hermes-Agent, and a build ends with the commands for whatever isn’t wired yet.
    • The call and import edges a build finds, and the memory file Claude Code loads, now follow the checkout. A feature branch’s calls no longer show up in recall on main.
    v4.22.0 release notes
  6. v4.21.0

    The MCP server says what it’s for

    • The server’s initialize reply tells the agent when to call neuralmind_search before Grep, and tools/list offers six tools by default instead of 28.
    • The prompt block an agent gets includes the leading file’s code when one file clearly leads the match.
    • An exploratory rerun of the pilot’s 20 tasks with this release found the agent’s behaviour unchanged: it still called no NeuralMind tool. The release notes say what it does and doesn’t change.
    • Intel macOS works again with the default backend; installing there compiles cryptography. On Windows on ARM, use WSL 2 or the container image.
    v4.21.0 release notes
  7. v4.20.0

    Every number on this site, with its evidence

    • One proof page lists every figure the site quotes, where it was measured and the command that reproduces it, including where NeuralMind loses.
    • /security starts with verifying a release: signed images, build-provenance attestations, SBOM and VEX.
    v4.20.0 release notes
  8. v4.19.0

    Audit records to your SIEM as they are written

    • Every audit record goes to syslog right after it is written, with an alert when one can’t be written.
    • An OSCAL component definition for SP 800-53, and neuralmind hardening, which checks a host against a 17-rule baseline.
    • neuralmind demo runs offline, straight after pip install.
    v4.19.0 release notes
  9. v4.18.0

    Every place NeuralMind keeps data

    • neuralmind data-locations lists everything NeuralMind writes for a project, in it and outside it, with the command that removes each.
    v4.18.0 release notes
  10. v4.17.0

    An answer from a stale index says so

    • Query, search and prompt context carry one line when the index is behind the code.
    v4.17.0 release notes
  11. v4.16.0

    The CUI-enclave posture as one setting

    • security.profile: cui turns on OS-account identity, encrypted-storage checks and loopback-only serving together, and signed checkpoints make an audit log you can’t silently shorten.
    • A reversed decision can be retracted so it stops reaching the agent.
    v4.16.0 release notes
  12. v4.14.0

    Check the learning on your own repo, and verify what you install

    • neuralmind eval . --synapse-ab runs your own questions with the synapse layer on and off and reports what it moved.
    • Container images are signed, and the image, wheel and sdist carry build-provenance attestations.
    v4.14.0 release notes
  13. v4.13.0

    The index stays fresh after pulls, merges and rebases

    • Git hooks rebuild in the background after a pull, merge, branch switch or rebase, so the agent isn’t working from yesterday’s code.
    v4.13.0 release notes

Older releases: the full history.

What’s measured, and what isn’t

Every number, with its source and the command that reproduces it

Try it on your repo

Free at one seat, local, and no account. Build the index, wire the hooks, and the guards above run on your next commit.

$ pip install neuralmind

$ neuralmind build .

$ neuralmind init-hook .