neuralmind.uk / NeuralMind v4.22.0 — a feature branch’s calls stay on the branch Edit this page on GitHub ↗

NeuralMind v4.22.0 — a feature branch’s calls stay on the branch

Type: Minor release Theme: the call graph each build seeds follows the checkout, so a branch’s calls no longer reach the default branch’s recall

Every build seeds the call and import edges it finds into the synapse layer, so recall can follow the code’s structure from the first query. Those seeds went into the shared baseline, which every branch reads and nothing cleared. A call you added on a feature branch was seeded there by the branch’s build, and after you switched back to main it was still recalled, at half weight, until it decayed on the shared 60-day half-life. The same went for a call deleted from the code.

Associations learned from use were never affected: they go into the branch’s own branch:<name> namespace, as they have since v0.24.0.


What changed

Call-graph seeds live in a structural namespace each build replaces

Seeds now go into a structural namespace that every build replaces with the graph of the code checked out. After the post-checkout hook’s rebuild (or any build) on main, a feature branch’s calls are gone from recall, and so is a call deleted from the code.

Old copies in shared

The seeds earlier releases wrote to shared are left there. Their rows look like team memory (an edge approved with neuralmind memory review-approve or imported from a bundle is a single-activation shared row too), so deleting them would delete approved memory. Builds no longer refresh them, so they fade on the 60-day shared half-life. Until then, a call still in the code is counted in both shared and structural, and a branch-only call already in shared is still recalled.

Still open

The SYNAPSE_MEMORY.md file written for Claude Code at session start lists the strongest associations from every namespace, other branches’ included. Recall doesn’t read them; the agent does see the file.


What the agent sees

Agent Before (to v4.21.0) After
Claude Code (hooks + MCP) Prompt-time recall on main could name a file linked only by a call that exists on a feature branch, until it decayed Recall follows the call graph of the code checked out
Cursor / Cline / generic MCP The same, in neuralmind_query and search results The same fix
Hermes-Agent plugin The same, in the per-turn block The same fix

Upgrading

pip install -U neuralmind, then build once (neuralmind build .) to fill the structural namespace. Nothing else to change.

Tests