Releases: raphasouthall/neurostack
v0.13.0 — Remove vault_capture
Breaking change
Removed vault_capture MCP tool and neurostack capture CLI command.
The tool wrote directly to {vault_root}/inbox/ without git tracking, indexing, or any path back to origin. In runtimes where the vault is a read-replica (e.g. an indexer container pulling from git), captured files were stranded on the replica's filesystem and invisible to every other tool — including NeuroStack's own search and ask. The architectural promise that your Markdown files are never modified had a single, surprising exception; this release restores it.
Migration
Drop captured thoughts into your vault using your editor, your shell, or any tool that produces Markdown. The inbox/ folder convention is unchanged — only the built-in writer is removed.
Removed surfaces
vault_capture(content, tags)MCP toolneurostack capture <thought>CLI subcommandcapture_thought()and_make_slug()library functions (src/neurostack/capture.pydeleted)CloudClient.vault_capture()vault_capturedispatch entry and manifest tool entrytests/test_capture.py
Tool count
NeuroStack now exposes 20 MCP tools (was 21).
Full changelog: https://github.com/raphasouthall/neurostack/blob/main/CHANGELOG.md
v0.11.1 — Critical Bugfix Release
Critical fixes from 10-agent stochastic audit
Security
- OAuth PKCE verification —
/oauth/tokennever verifiedcode_verifieragainst the storedcode_challenge, making PKCE completely broken. Auth codes are now opaque, PKCE-bound, one-time-use tokens with 10-minute TTL. Redirect URI validation added against registered clients.
Billing
- MCP rate limiting tier resolution — All MCP tool calls hardcoded
tier: "free", causing pro/team users to be incorrectly throttled. Tier is now resolved from Firestore for all 9 rate-limited tools.
Data Integrity
- Cloud sync
_merge_memoriesdata loss —INSERT OR REPLACEsilently deleted embeddings, revision counts, and merge history on UUID conflict. Replaced withINSERT ... ON CONFLICT DO UPDATE SETto preserve existing fields. Fixedttl_hours→expires_atcolumn mismatch. Switched from rawsqlite3.connect()toget_db()for proper WAL mode and busy timeout.
Developer Experience
embed_urldefault port — Default was11435(off-by-one from Ollama's standard11434), causing embeddings to silently fail. Fixed in config, install scripts, and docs.vault-templatenot packaged in wheel —neurostack demo,neurostack init, and all profession packs were broken on pip installs. Templates now ship inside the package with a fallback to repo root for dev checkouts.
Housekeeping
- Synced
server.jsonandmanifest.jsonversions to0.11.1
Full Changelog: v0.11.0...v0.11.1
v0.11.0
Full Changelog: v0.10.4...v0.11.0
v0.10.4 — Phase 1 Cloud Sync Foundation
Phase 1: Cloud Sync Foundation
Client-side infrastructure for the sync pipeline.
Bug Fixes
- Fixed ghost entries —
push()now transmitsdiff.removedfile list to the server, so deleted vault files are purged from the cloud index
New Features
- CloudClient 21-tool parity — all MCP tools now work in cloud mode via REST dispatch
- Cloud dispatch layer — automatic mode-based routing (local SQLite vs cloud API)
- Init default flipped to cloud mode — new users default to cloud; existing users unaffected
- API contract v2 spec — full specification for 9 sync endpoints (upload, sync, query, delete, download, memories, artifacts, push-lock, db-version)
Stats
- 9 new tests (299 total, 0 regressions)
- ~1,800 new LOC across 9 files
- Requires neurostack-cloud
>=0.9.1for full sync features (backwards-compatible with v0.9.0)
v0.10.3 — Windows support
New Features
- Windows support — NeuroStack can now be installed and run on Windows via
npm install -g neurostack
Installation layer (npm)
- Added
win32to supported platforms - uv auto-install uses
.zipdownload + PowerShellExpand-Archiveon Windows - Fallback installer uses PowerShell (
irm | iex) instead ofsh command -vreplaced withwherefor command lookup- CLI wrappers created as
.cmdbatch files instead of bash scripts - Platform-aware PATH separator, config directories, and setup instructions
Python runtime
- Config and data directories use
AppData\Local\neurostackon Windows - CLI wrapper creation produces
.cmdfiles on Windows - VS Code session harvesting uses
%APPDATA%\Roaming\Code\Useron Windows
Bug Fixes
- vault_search depth="full" validation error fixed (from v0.10.2)
Full Changelog
v0.10.2 — Fix vault_search full-depth validation
Bug Fixes
- fix(mcp): wrap vault_search full-depth return in dict — The
depth="full"code path returned a list instead of a dict, causing Pydantic output validation to fail. This was the last remaining case missed by the list-to-dict fix in v0.10.1 (commit 0d6a751). All other depth modes (auto,triples,summaries) were unaffected.
Full MCP Tool Audit
All 21 MCP tools tested end-to-end. 20/21 passed — the only failure was the bug fixed above.
v0.10.1 — Unified init command
What's New
One-command setup
neurostack init now handles the entire onboarding flow:
npm install -g neurostack
neurostack init
The interactive wizard walks through:
- Cloud or Local? — cloud uses Gemini, local uses Ollama
- Lite or Full? — lite = FTS5 only, full = embeddings + summaries + communities
- Ollama models — choose embedding and LLM models, auto-pull
- Vault path + profession pack — point to existing notes or start fresh
- LLM endpoint config — works with any OpenAI-compatible provider
- Full index pipeline — automatically runs summaries, triples, and community detection
Non-interactive mode for scripted use:
neurostack init --mode full --pull-models ~/brain
neurostack init --cloud ~/brainneurostack install deprecated
Still works but prints a notice pointing to neurostack init.
Bug fixes from v0.10.0
- Fixed Pydantic validation errors in
vault_triples,vault_memories, andvault_relatedMCP tools (wrapped list returns in dict)
Full Changelog: v0.10.0...v0.10.1
v0.10.0 — Neuroscience-grounded ranking & community detection
What's New
Neuroscience-grounded reranking (replaces cross-encoder)
Three new scoring signals in hybrid_search, using only existing embeddings in SQLite — zero external models, zero network calls:
- Energy landscape convergence confidence — measures how representative the matched chunk is of its note's overall embedding distribution. Based on Hopfield attractor basin dynamics: deep narrow wells (low chunk variance) score higher than broad shallow ones.
- Lateral inhibition — winner-take-all diversity penalty. Higher-ranked results suppress semantically similar competitors, promoting result diversity. Mirrors PV+/SOM+ inhibitory interneuron function during engram allocation.
- Prediction error demotion — notes with unresolved prediction errors (previously observed poor semantic fit) are demoted. Closes the predictive-coding feedback loop: errors logged at retrieval time now influence future ranking.
Attractor basin community detection (replaces Leiden)
Hopfield-style attractor dynamics replace the Leiden algorithm for community detection:
- Blended similarity matrix:
S = 0.6·cosine + 0.25·co-occurrence + 0.15·wikilinks— richer signal than Leiden's entity co-occurrence alone - Inverse temperature β controls granularity: β=0.5 for coarse themes, β=2.0 for fine sub-themes
- Lateral inhibition merges singleton communities into nearest neighbours
Dependencies removed
| Dependency | License | Why removed |
|---|---|---|
sentence-transformers |
MS MARCO (non-commercial) | Replaced by native scoring signals |
leidenalg |
GPL-3.0 | Replaced by attractor basin clustering |
python-igraph |
GPL-2.0+ | No longer needed |
The [community] optional dependency tier is eliminated — communities now work with just [full] (numpy only).
Install mode simplification
neurostack install now offers two modes instead of three:
- Lite — FTS5 search + graph, no ML
- Full — + embeddings, summaries, communities
Full Changelog: v0.9.5...v0.10.0
v0.9.5
Full Changelog: v0.9.4...v0.9.5
v0.9.4
Full Changelog: v0.9.2...v0.9.4